1313from queue import Queue as NormalQueue
1414
1515from delfick_project .logging import lc
16- from photons_app .errors import PhotonsAppError
1716from photons_messages import fields
1817
18+ from photons_app .errors import PhotonsAppError
19+
1920log = logging .getLogger ("photons_app.helpers" )
2021
2122# Make vim be quiet
@@ -69,7 +70,7 @@ def __eq__(self, other):
6970
7071 other = Color (* other )
7172
72- if not isinstance (other , ( fields .Color , dict ) ) and not hasattr (other , "as_dict" ):
73+ if not isinstance (other , dict | fields .Color ) and not hasattr (other , "as_dict" ):
7374 return False
7475
7576 if not isinstance (other , fields .Color ):
@@ -120,11 +121,7 @@ def __eq__(self, other):
120121 if isinstance (other , tuple ) and len (other ) == 2 :
121122 return (self .major , self .minor ) == other
122123 elif isinstance (other , Firmware ):
123- return (
124- self .major == other .major
125- and self .minor == other .minor
126- and self .build == other .build
127- )
124+ return self .major == other .major and self .minor == other .minor and self .build == other .build
128125 else :
129126 raise ValueError (f"Can't compare firmware with { type (other )} : { other } " )
130127
@@ -181,7 +178,7 @@ async def ensure_aexit_cm():
181178 exc_info = None
182179 try :
183180 yield
184- except :
181+ except Exception :
185182 exc_info = sys .exc_info ()
186183
187184 if exc_info is not None :
@@ -355,8 +352,7 @@ def __init__(
355352
356353 self .waiter = ResettableFuture (name = f"ATicker({ self .name } )::__init__[waiter]" )
357354 self .final_future = ChildOfFuture (
358- final_future
359- or create_future (name = f"ATicker({ self .name } )::__init__[owned_final_future]" ),
355+ final_future or create_future (name = f"ATicker({ self .name } )::__init__[owned_final_future]" ),
360356 name = f"ATicker({ self .name } )::__init__[final_future]" ,
361357 )
362358
@@ -366,17 +362,13 @@ async def start(self):
366362
367363 def __aiter__ (self ):
368364 if not hasattr (self , "gen" ):
369- raise Exception (
370- "The ticker must be used as a context manager before being used as an async iterator"
371- )
365+ raise Exception ("The ticker must be used as a context manager before being used as an async iterator" )
372366 return self .gen
373367
374368 async def finish (self , exc_typ = None , exc = None , tb = None ):
375369 if hasattr (self , "gen" ):
376370 try :
377- await stop_async_generator (
378- self .gen , exc = exc or self .Stop (), name = f"ATicker({ self .name } )::stop[stop_gen]"
379- )
371+ await stop_async_generator (self .gen , exc = exc or self .Stop (), name = f"ATicker({ self .name } )::stop[stop_gen]" )
380372 except self .Stop :
381373 pass
382374
@@ -440,9 +432,7 @@ async def pause():
440432 async with self .pauser :
441433 pass
442434
443- ts_final_future = ChildOfFuture (
444- self .final_future , name = f"ATicker({ self .name } )::_wait_for_next[with_pause]"
445- )
435+ ts_final_future = ChildOfFuture (self .final_future , name = f"ATicker({ self .name } )::_wait_for_next[with_pause]" )
446436
447437 async with TaskHolder (ts_final_future ) as ts :
448438 ts .add (pause ())
@@ -605,14 +595,10 @@ def __init__(self, final_future, *, name=None):
605595 self .name = name
606596
607597 self .ts = []
608- self .final_future = ChildOfFuture (
609- final_future , name = f"TaskHolder({ self .name } )::__init__[final_future]"
610- )
598+ self .final_future = ChildOfFuture (final_future , name = f"TaskHolder({ self .name } )::__init__[final_future]" )
611599
612600 self ._cleaner = None
613- self ._cleaner_waiter = ResettableFuture (
614- name = f"TaskHolder({ self .name } )::__init__[cleaner_waiter]"
615- )
601+ self ._cleaner_waiter = ResettableFuture (name = f"TaskHolder({ self .name } )::__init__[cleaner_waiter]" )
616602
617603 def add (self , coro , * , silent = False ):
618604 return self .add_task (async_as_background (coro , silent = silent ))
@@ -674,9 +660,7 @@ async def finish(self, exc_typ=None, exc=None, tb=None):
674660 async def _final (self ):
675661 if self ._cleaner :
676662 self ._cleaner .cancel ()
677- await wait_for_all_futures (
678- self ._cleaner , name = f"TaskHolder({ self .name } )::finish[finally_wait_for_cleaner]"
679- )
663+ await wait_for_all_futures (self ._cleaner , name = f"TaskHolder({ self .name } )::finish[finally_wait_for_cleaner]" )
680664
681665 await wait_for_all_futures (
682666 async_as_background (self .clean ()),
@@ -708,9 +692,7 @@ async def clean(self):
708692 else :
709693 remaining .append (t )
710694
711- await wait_for_all_futures (
712- * destroyed , name = f"TaskHolder({ self .name } )::clean[wait_for_destroyed]"
713- )
695+ await wait_for_all_futures (* destroyed , name = f"TaskHolder({ self .name } )::clean[wait_for_destroyed]" )
714696 self .ts = remaining + [t for t in self .ts if t not in destroyed and t not in remaining ]
715697
716698
@@ -841,19 +823,13 @@ def __repr__(self):
841823 status = "success" if self .successful else "failed"
842824 return f"<Result { status } : { self .value } : { self .context } >"
843825
844- def __init__ (
845- self , final_future , * , error_catcher = None , exceptions_only_to_error_catcher = False , name = None
846- ):
826+ def __init__ (self , final_future , * , error_catcher = None , exceptions_only_to_error_catcher = False , name = None ):
847827 self .name = name
848- self .final_future = ChildOfFuture (
849- final_future , name = f"ResultStreamer({ self .name } )::__init__[final_future]"
850- )
828+ self .final_future = ChildOfFuture (final_future , name = f"ResultStreamer({ self .name } )::__init__[final_future]" )
851829 self .error_catcher = error_catcher
852830 self .exceptions_only_to_error_catcher = exceptions_only_to_error_catcher
853831
854- self .queue_future = ChildOfFuture (
855- final_future , name = f"ResultStreamer({ self .name } )::__init__[queue_future]"
856- )
832+ self .queue_future = ChildOfFuture (final_future , name = f"ResultStreamer({ self .name } )::__init__[queue_future]" )
857833 self .queue = Queue (
858834 self .queue_future ,
859835 empty_on_finished = True ,
@@ -896,9 +872,7 @@ async def run():
896872 task .gen = gen
897873
898874 if self .final_future .done ():
899- await cancel_futures_and_wait (
900- task , name = f"ResultStreamer({ self .name } )::add_generator[already_stopped_task]"
901- )
875+ await cancel_futures_and_wait (task , name = f"ResultStreamer({ self .name } )::add_generator[already_stopped_task]" )
902876 await wait_for_first_future (
903877 async_as_background (gen .aclose ()),
904878 name = f"ResultStreamer({ self .name } )::add_generator[already_stopped_gen]" ,
@@ -924,13 +898,9 @@ async def return_value():
924898 async def add_task (self , task , * , context = None , on_done = None , force = False ):
925899 if self .final_future .done ():
926900 if force :
927- await wait_for_all_futures (
928- task , name = f"ResultStreamer({ self .name } )::add_task[force_already_stopped]"
929- )
901+ await wait_for_all_futures (task , name = f"ResultStreamer({ self .name } )::add_task[force_already_stopped]" )
930902 else :
931- await cancel_futures_and_wait (
932- task , name = f"ResultStreamer({ self .name } )::add_task[already_stopped]"
933- )
903+ await cancel_futures_and_wait (task , name = f"ResultStreamer({ self .name } )::add_task[already_stopped]" )
934904 return task
935905
936906 def add_to_queue (res ):
@@ -1296,9 +1266,7 @@ async def cancel_futures_and_wait(*futs, name=None):
12961266 fut .cancel ()
12971267 waiting .append (fut )
12981268
1299- await wait_for_all_futures (
1300- * waiting , name = f"||cancel_futures_and_wait({ name } )[wait_for_everything]"
1301- )
1269+ await wait_for_all_futures (* waiting , name = f"||cancel_futures_and_wait({ name } )[wait_for_everything]" )
13021270
13031271
13041272class memoized_property (tp .Generic [T ]):
@@ -1339,7 +1307,7 @@ def __init__(self, func):
13391307 self .func = func
13401308 self .name = func .__name__
13411309 self .__doc__ = func .__doc__
1342- self .cache_name = "_{0}" . format ( self .name )
1310+ self .cache_name = f "_{ self .name } "
13431311
13441312 def __get__ (self , instance : object = None , owner : object = None ) -> T :
13451313 if instance is None :
@@ -1790,9 +1758,7 @@ def __init__(self, final_future, *, timeout=0.05, empty_on_finished=False, name=
17901758 self .name = name
17911759 self .timeout = timeout
17921760 self .collection = NormalQueue ()
1793- self .final_future = ChildOfFuture (
1794- final_future , name = f"SyncQueue({ self .name } )::__init__[final_future]"
1795- )
1761+ self .final_future = ChildOfFuture (final_future , name = f"SyncQueue({ self .name } )::__init__[final_future]" )
17961762 self .empty_on_finished = empty_on_finished
17971763
17981764 def append (self , item ):
@@ -1865,9 +1831,7 @@ def __init__(self, final_future, *, empty_on_finished=False, name=None):
18651831 self .name = name
18661832 self .waiter = ResettableFuture (name = f"Queue({ self .name } )::__init__[waiter]" )
18671833 self .collection = deque ()
1868- self .final_future = ChildOfFuture (
1869- final_future , name = f"Queue({ self .name } )::__init__[final_future]"
1870- )
1834+ self .final_future = ChildOfFuture (final_future , name = f"Queue({ self .name } )::__init__[final_future]" )
18711835 self .empty_on_finished = empty_on_finished
18721836
18731837 self .stop = False
0 commit comments