flwr-nightly 1.9.0.dev20240608__py3-none-any.whl → 1.9.0.dev20240609__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of flwr-nightly might be problematic. Click here for more details.

flwr/client/app.py CHANGED
@@ -266,6 +266,7 @@ def _start_client_internal(
266
266
  )
267
267
 
268
268
  run_tracker = _RunTracker()
269
+ _ = run_tracker
269
270
 
270
271
  def _on_sucess(retry_state: RetryState) -> None:
271
272
  if retry_state.tries > 1:
@@ -275,8 +276,6 @@ def _start_client_internal(
275
276
  retry_state.elapsed_time,
276
277
  retry_state.tries,
277
278
  )
278
- if run_tracker.create_node:
279
- run_tracker.create_node()
280
279
 
281
280
  def _on_backoff(retry_state: RetryState) -> None:
282
281
  if retry_state.tries == 1:
@@ -327,90 +326,93 @@ def _start_client_internal(
327
326
  create_node() # pylint: disable=not-callable
328
327
 
329
328
  while True:
330
- # Receive
331
- message = receive()
332
- if message is None:
333
- time.sleep(3) # Wait for 3s before asking again
334
- continue
335
-
336
- log(INFO, "")
337
- if len(message.metadata.group_id) > 0:
329
+ if True: # pylint: disable=using-constant-test
330
+ # Receive
331
+ message = receive()
332
+ if message is None:
333
+ time.sleep(3) # Wait for 3s before asking again
334
+ continue
335
+
336
+ log(INFO, "")
337
+ if len(message.metadata.group_id) > 0:
338
+ log(
339
+ INFO,
340
+ "[RUN %s, ROUND %s]",
341
+ message.metadata.run_id,
342
+ message.metadata.group_id,
343
+ )
338
344
  log(
339
345
  INFO,
340
- "[RUN %s, ROUND %s]",
341
- message.metadata.run_id,
342
- message.metadata.group_id,
346
+ "Received: %s message %s",
347
+ message.metadata.message_type,
348
+ message.metadata.message_id,
343
349
  )
344
- log(
345
- INFO,
346
- "Received: %s message %s",
347
- message.metadata.message_type,
348
- message.metadata.message_id,
349
- )
350
-
351
- # Handle control message
352
- out_message, sleep_duration = handle_control_message(message)
353
- if out_message:
354
- send(out_message)
355
- break
356
-
357
- # Register context for this run
358
- node_state.register_context(run_id=message.metadata.run_id)
359
-
360
- # Retrieve context for this run
361
- context = node_state.retrieve_context(run_id=message.metadata.run_id)
362
-
363
- # Create an error reply message that will never be used to prevent
364
- # the used-before-assignment linting error
365
- reply_message = message.create_error_reply(
366
- error=Error(code=ErrorCode.UNKNOWN, reason="Unknown")
367
- )
368
-
369
- # Handle app loading and task message
370
- try:
371
- # Load ClientApp instance
372
- client_app: ClientApp = load_client_app_fn()
373
-
374
- # Execute ClientApp
375
- reply_message = client_app(message=message, context=context)
376
- except Exception as ex: # pylint: disable=broad-exception-caught
377
-
378
- # Legacy grpc-bidi
379
- if transport in ["grpc-bidi", None]:
380
- log(ERROR, "Client raised an exception.", exc_info=ex)
381
- # Raise exception, crash process
382
- raise ex
383
-
384
- # Don't update/change NodeState
385
-
386
- e_code = ErrorCode.CLIENT_APP_RAISED_EXCEPTION
387
- # Reason example: "<class 'ZeroDivisionError'>:<'division by zero'>"
388
- reason = str(type(ex)) + ":<'" + str(ex) + "'>"
389
- exc_entity = "ClientApp"
390
- if isinstance(ex, LoadClientAppError):
391
- reason = (
392
- "An exception was raised when attempting to load "
393
- "`ClientApp`"
394
- )
395
- e_code = ErrorCode.LOAD_CLIENT_APP_EXCEPTION
396
- exc_entity = "SuperNode"
397
350
 
398
- log(ERROR, "%s raised an exception", exc_entity, exc_info=ex)
351
+ # Handle control message
352
+ out_message, sleep_duration = handle_control_message(message)
353
+ if out_message:
354
+ send(out_message)
355
+ break
399
356
 
400
- # Create error message
401
- reply_message = message.create_error_reply(
402
- error=Error(code=e_code, reason=reason)
357
+ # Register context for this run
358
+ node_state.register_context(run_id=message.metadata.run_id)
359
+
360
+ # Retrieve context for this run
361
+ context = node_state.retrieve_context(
362
+ run_id=message.metadata.run_id
403
363
  )
404
- else:
405
- # No exception, update node state
406
- node_state.update_context(
407
- run_id=message.metadata.run_id,
408
- context=context,
364
+
365
+ # Create an error reply message that will never be used to prevent
366
+ # the used-before-assignment linting error
367
+ reply_message = message.create_error_reply(
368
+ error=Error(code=ErrorCode.UNKNOWN, reason="Unknown")
409
369
  )
410
370
 
411
- # Send
412
- send(reply_message)
413
- log(INFO, "Sent reply")
371
+ # Handle app loading and task message
372
+ try:
373
+ # Load ClientApp instance
374
+ client_app: ClientApp = load_client_app_fn()
375
+
376
+ # Execute ClientApp
377
+ reply_message = client_app(message=message, context=context)
378
+ except Exception as ex: # pylint: disable=broad-exception-caught
379
+
380
+ # Legacy grpc-bidi
381
+ if transport in ["grpc-bidi", None]:
382
+ log(ERROR, "Client raised an exception.", exc_info=ex)
383
+ # Raise exception, crash process
384
+ raise ex
385
+
386
+ # Don't update/change NodeState
387
+
388
+ e_code = ErrorCode.CLIENT_APP_RAISED_EXCEPTION
389
+ # Ex fmt: "<class 'ZeroDivisionError'>:<'division by zero'>"
390
+ reason = str(type(ex)) + ":<'" + str(ex) + "'>"
391
+ exc_entity = "ClientApp"
392
+ if isinstance(ex, LoadClientAppError):
393
+ reason = (
394
+ "An exception was raised when attempting to load "
395
+ "`ClientApp`"
396
+ )
397
+ e_code = ErrorCode.LOAD_CLIENT_APP_EXCEPTION
398
+ exc_entity = "SuperNode"
399
+
400
+ log(ERROR, "%s raised an exception", exc_entity, exc_info=ex)
401
+
402
+ # Create error message
403
+ reply_message = message.create_error_reply(
404
+ error=Error(code=e_code, reason=reason)
405
+ )
406
+ else:
407
+ # No exception, update node state
408
+ node_state.update_context(
409
+ run_id=message.metadata.run_id,
410
+ context=context,
411
+ )
412
+
413
+ # Send
414
+ send(reply_message)
415
+ log(INFO, "Sent reply")
414
416
 
415
417
  # Unregister node
416
418
  if delete_node is not None:
@@ -591,7 +593,6 @@ def _init_connection(transport: Optional[str], server_address: str) -> Tuple[
591
593
 
592
594
  @dataclass
593
595
  class _RunTracker:
594
- create_node: Optional[Callable[[], None]] = None
595
596
  interrupt: bool = False
596
597
 
597
598
  def register_signal_handler(self) -> None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.9.0.dev20240608
3
+ Version: 1.9.0.dev20240609
4
4
  Summary: Flower: A Friendly Federated Learning Framework
5
5
  Home-page: https://flower.ai
6
6
  License: Apache-2.0
@@ -42,7 +42,7 @@ flwr/cli/run/__init__.py,sha256=oCd6HmQDx-sqver1gecgx-uMA38BLTSiiKpl7RGNceg,789
42
42
  flwr/cli/run/run.py,sha256=Oadt7JsJX549JG-2P1UPdF11vnblLWS8uGvuVx0modA,2687
43
43
  flwr/cli/utils.py,sha256=px-M-IlBLu6Ez-Sc9tWhsJRjWurRaZTmxB9ASz8wurk,4119
44
44
  flwr/client/__init__.py,sha256=tcgMyAW8brnmAIk4NmXkonVjYV3lafQJD4vfZ3OJ6kA,1279
45
- flwr/client/app.py,sha256=FjCJ6_ORVeDgfB0NDLg-mBOPvz1eUbZbatPvCaePRrw,23035
45
+ flwr/client/app.py,sha256=_xRNFCNWTJKuWfMd-9KYnJUWJ-gQ3yHaqsVgNqLGpvM,23306
46
46
  flwr/client/client.py,sha256=Vp9UkOkoHdNfn6iMYZsj_5m_GICiFfUlKEVaLad-YhM,8183
47
47
  flwr/client/client_app.py,sha256=2jyVTzu8pwDtg66z4FjAa_kPzg31Q8-hx-RkDhguIqw,8635
48
48
  flwr/client/dpfedavg_numpy_client.py,sha256=9Tnig4iml2J88HBKNahegjXjbfvIQyBtaIQaqjbeqsA,7435
@@ -229,8 +229,8 @@ flwr/simulation/ray_transport/ray_actor.py,sha256=_wv2eP7qxkCZ-6rMyYWnjLrGPBZRxj
229
229
  flwr/simulation/ray_transport/ray_client_proxy.py,sha256=oDu4sEPIOu39vrNi-fqDAe10xtNUXMO49bM2RWfRcyw,6738
230
230
  flwr/simulation/ray_transport/utils.py,sha256=TYdtfg1P9VfTdLMOJlifInGpxWHYs9UfUqIv2wfkRLA,2392
231
231
  flwr/simulation/run_simulation.py,sha256=Jmc6DyN5UCY1U1PcDvL04NgYmEQ6ufJ1JisjG5yqfY8,15098
232
- flwr_nightly-1.9.0.dev20240608.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
233
- flwr_nightly-1.9.0.dev20240608.dist-info/METADATA,sha256=3gY0CsNjHke3Kro6kPrXoQBFbkPH4zcuXV4LoGKWV44,15517
234
- flwr_nightly-1.9.0.dev20240608.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
235
- flwr_nightly-1.9.0.dev20240608.dist-info/entry_points.txt,sha256=8JJPfpqMnXz9c5V_FSt07Xwd-wCWbAO3MFUDXQ5ZGsI,378
236
- flwr_nightly-1.9.0.dev20240608.dist-info/RECORD,,
232
+ flwr_nightly-1.9.0.dev20240609.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
233
+ flwr_nightly-1.9.0.dev20240609.dist-info/METADATA,sha256=HMIPVBE1wkae0qgkZMAqtigNP4Ahuxi9LElonFBah-Q,15517
234
+ flwr_nightly-1.9.0.dev20240609.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
235
+ flwr_nightly-1.9.0.dev20240609.dist-info/entry_points.txt,sha256=8JJPfpqMnXz9c5V_FSt07Xwd-wCWbAO3MFUDXQ5ZGsI,378
236
+ flwr_nightly-1.9.0.dev20240609.dist-info/RECORD,,