@@ -109,6 +109,12 @@ def requests(self, *, no_packet_loss: bool = False, used_cloud_vars: list[str] =
109109 def storage (self , * , no_packet_loss : bool = False , used_cloud_vars : list [str ] = ["1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" ]) -> CloudStorage :
110110 return CloudStorage (self , used_cloud_vars = used_cloud_vars , no_packet_loss = no_packet_loss )
111111
112+ def shortterm_ratelimit_hint (self ) -> float :
113+ return 0.06667
114+
115+ def longterm_ratelimit_hint (self ) -> float :
116+ return 0.1
117+
112118 @abstractmethod
113119 def create_event_stream (self ) -> EventStream :
114120 pass
@@ -121,7 +127,7 @@ def __init__(self, cloud: BaseCloud):
121127 super ().__init__ ()
122128 # NOTE: maybe consider using copy.copy here (copy.deepcopy doesn't work as you cannot deepcopy a Thread)
123129 cloud_type = type (cloud )
124- if cloud_type is cloud_module .CustomCloud :
130+ if issubclass ( cloud_type , cloud_module .CustomCloud ) :
125131 self .source_cloud = cloud_type (project_id = cloud .project_id , cloud_host = cloud .cloud_host )
126132 else :
127133 self .source_cloud = cloud_type (project_id = cloud .project_id )
@@ -247,6 +253,7 @@ class BaseCloud(AnyCloud[Union[str, int]]):
247253 ws_timeout : Optional [int ]
248254 websocket : websocket .WebSocket
249255 event_stream : Optional [EventStream ] = None
256+ recorder : Optional [cloud_recorder .CloudRecorder ]
250257
251258 def __init__ (self , * , project_id : Optional [Union [int , str ]] = None , _session = None ):
252259
@@ -276,6 +283,16 @@ def __init__(self, *, project_id: Optional[Union[int, str]] = None, _session=Non
276283 self .print_connect_message = False
277284
278285 self .project_id = project_id
286+
287+ def shortterm_ratelimit_hint (self ) -> float :
288+ return self .ws_shortterm_ratelimit
289+
290+ def longterm_ratelimit_hint (self ) -> float :
291+ return self .ws_longterm_ratelimit
292+
293+ @property
294+ def var_sets_since_first (self ) -> int :
295+ return self .var_stets_since_first
279296
280297 def _assert_auth (self ):
281298 if self ._session is None :
@@ -462,7 +479,7 @@ def set_vars(self, var_value_dict, *, intelligent_waits=True):
462479 self ._send_packet_list (packet_list )
463480 self .last_var_set = time .time ()
464481
465- def get_var (self , var , * , recorder_initial_values = {} ):
482+ def get_var (self , var , * , recorder_initial_values : Optional [ dict ] = None ):
466483 var = "☁ " + var .removeprefix ("☁ " )
467484 if self .recorder is None :
468485 self .recorder = cloud_recorder .CloudRecorder (self , initial_values = recorder_initial_values )
@@ -472,7 +489,7 @@ def get_var(self, var, *, recorder_initial_values={}):
472489 time .sleep (0.01 )
473490 return self .recorder .get_var (var )
474491
475- def get_all_vars (self , * , recorder_initial_values = {} ):
492+ def get_all_vars (self , * , recorder_initial_values : Optional [ dict ] = None ):
476493 if self .recorder is None :
477494 self .recorder = cloud_recorder .CloudRecorder (self , initial_values = recorder_initial_values )
478495 self .recorder .start ()
0 commit comments