flwr-nightly 1.9.0.dev20240608__tar.gz → 1.9.0.dev20240609__tar.gz

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.

Files changed (235) hide show
  1. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/PKG-INFO +1 -1
  2. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/pyproject.toml +1 -1
  3. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/app.py +80 -79
  4. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/LICENSE +0 -0
  5. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/README.md +0 -0
  6. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/__init__.py +0 -0
  7. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/__init__.py +0 -0
  8. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/app.py +0 -0
  9. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/build.py +0 -0
  10. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/config_utils.py +0 -0
  11. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/example.py +0 -0
  12. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/__init__.py +0 -0
  13. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/new.py +0 -0
  14. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/__init__.py +0 -0
  15. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  16. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  17. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
  18. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  19. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  20. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/client.hf.py.tpl +0 -0
  21. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  22. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  23. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  24. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  25. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  26. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  27. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/server.hf.py.tpl +0 -0
  28. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  29. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  30. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  31. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  32. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  33. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  34. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/task.hf.py.tpl +0 -0
  35. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  36. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  37. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  38. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  39. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/pyproject.hf.toml.tpl +0 -0
  40. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +0 -0
  41. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +0 -0
  42. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +0 -0
  43. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +0 -0
  44. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +0 -0
  45. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +0 -0
  46. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/run/__init__.py +0 -0
  47. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/run/run.py +0 -0
  48. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/cli/utils.py +0 -0
  49. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/__init__.py +0 -0
  50. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/client.py +0 -0
  51. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/client_app.py +0 -0
  52. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  53. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/grpc_client/__init__.py +0 -0
  54. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/grpc_client/connection.py +0 -0
  55. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  56. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
  57. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
  58. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/heartbeat.py +0 -0
  59. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/message_handler/__init__.py +0 -0
  60. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/message_handler/message_handler.py +0 -0
  61. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/message_handler/task_handler.py +0 -0
  62. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/mod/__init__.py +0 -0
  63. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
  64. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/mod/comms_mods.py +0 -0
  65. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/mod/localdp_mod.py +0 -0
  66. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  67. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  68. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  69. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/mod/utils.py +0 -0
  70. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/node_state.py +0 -0
  71. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/node_state_tests.py +0 -0
  72. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/numpy_client.py +0 -0
  73. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/rest_client/__init__.py +0 -0
  74. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/rest_client/connection.py +0 -0
  75. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/supernode/__init__.py +0 -0
  76. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/supernode/app.py +0 -0
  77. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/client/typing.py +0 -0
  78. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/__init__.py +0 -0
  79. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/address.py +0 -0
  80. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/constant.py +0 -0
  81. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/context.py +0 -0
  82. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/date.py +0 -0
  83. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/differential_privacy.py +0 -0
  84. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/differential_privacy_constants.py +0 -0
  85. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/dp.py +0 -0
  86. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/exit_handlers.py +0 -0
  87. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/grpc.py +0 -0
  88. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/logger.py +0 -0
  89. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/message.py +0 -0
  90. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/object_ref.py +0 -0
  91. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/parameter.py +0 -0
  92. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/pyproject.py +0 -0
  93. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/record/__init__.py +0 -0
  94. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/record/configsrecord.py +0 -0
  95. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/record/conversion_utils.py +0 -0
  96. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/record/metricsrecord.py +0 -0
  97. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/record/parametersrecord.py +0 -0
  98. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/record/recordset.py +0 -0
  99. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/record/typeddict.py +0 -0
  100. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/recordset_compat.py +0 -0
  101. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/retry_invoker.py +0 -0
  102. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
  103. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  104. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  105. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  106. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  107. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
  108. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  109. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  110. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/serde.py +0 -0
  111. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/telemetry.py +0 -0
  112. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/typing.py +0 -0
  113. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/common/version.py +0 -0
  114. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/__init__.py +0 -0
  115. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/driver_pb2.py +0 -0
  116. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/driver_pb2.pyi +0 -0
  117. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
  118. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
  119. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/error_pb2.py +0 -0
  120. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/error_pb2.pyi +0 -0
  121. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
  122. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  123. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/fleet_pb2.py +0 -0
  124. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
  125. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  126. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  127. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/grpcadapter_pb2.py +0 -0
  128. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  129. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  130. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  131. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/node_pb2.py +0 -0
  132. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/node_pb2.pyi +0 -0
  133. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
  134. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  135. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/recordset_pb2.py +0 -0
  136. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
  137. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
  138. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
  139. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/task_pb2.py +0 -0
  140. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/task_pb2.pyi +0 -0
  141. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
  142. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
  143. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/transport_pb2.py +0 -0
  144. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/transport_pb2.pyi +0 -0
  145. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
  146. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  147. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/py.typed +0 -0
  148. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/__init__.py +0 -0
  149. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/app.py +0 -0
  150. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/client_manager.py +0 -0
  151. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/client_proxy.py +0 -0
  152. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/compat/__init__.py +0 -0
  153. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/compat/app.py +0 -0
  154. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/compat/app_utils.py +0 -0
  155. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
  156. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/compat/legacy_context.py +0 -0
  157. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/criterion.py +0 -0
  158. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/driver/__init__.py +0 -0
  159. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/driver/driver.py +0 -0
  160. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/driver/grpc_driver.py +0 -0
  161. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/driver/inmemory_driver.py +0 -0
  162. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/history.py +0 -0
  163. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/run_serverapp.py +0 -0
  164. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/server.py +0 -0
  165. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/server_app.py +0 -0
  166. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/server_config.py +0 -0
  167. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/__init__.py +0 -0
  168. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/aggregate.py +0 -0
  169. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/bulyan.py +0 -0
  170. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  171. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  172. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  173. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  174. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  175. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
  176. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/fedadam.py +0 -0
  177. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/fedavg.py +0 -0
  178. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
  179. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/fedavgm.py +0 -0
  180. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/fedmedian.py +0 -0
  181. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/fedopt.py +0 -0
  182. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/fedprox.py +0 -0
  183. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  184. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  185. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  186. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  187. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/fedyogi.py +0 -0
  188. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/krum.py +0 -0
  189. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/qfedavg.py +0 -0
  190. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/strategy/strategy.py +0 -0
  191. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/__init__.py +0 -0
  192. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/driver/__init__.py +0 -0
  193. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/driver/driver_grpc.py +0 -0
  194. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/driver/driver_servicer.py +0 -0
  195. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
  196. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  197. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  198. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  199. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  200. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  201. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  202. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
  203. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
  204. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  205. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  206. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  207. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  208. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  209. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  210. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  211. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  212. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  213. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/state/__init__.py +0 -0
  214. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/state/in_memory_state.py +0 -0
  215. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/state/sqlite_state.py +0 -0
  216. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/state/state.py +0 -0
  217. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/state/state_factory.py +0 -0
  218. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/superlink/state/utils.py +0 -0
  219. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/typing.py +0 -0
  220. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/utils/__init__.py +0 -0
  221. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/utils/tensorboard.py +0 -0
  222. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/utils/validator.py +0 -0
  223. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/workflow/__init__.py +0 -0
  224. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/workflow/constant.py +0 -0
  225. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/workflow/default_workflows.py +0 -0
  226. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  227. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  228. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  229. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/simulation/__init__.py +0 -0
  230. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/simulation/app.py +0 -0
  231. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
  232. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  233. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  234. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
  235. {flwr_nightly-1.9.0.dev20240608 → flwr_nightly-1.9.0.dev20240609}/src/py/flwr/simulation/run_simulation.py +0 -0
@@ -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
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "flwr-nightly"
7
- version = "1.9.0.dev20240608"
7
+ version = "1.9.0.dev20240609"
8
8
  description = "Flower: A Friendly Federated Learning Framework"
9
9
  license = "Apache-2.0"
10
10
  authors = ["The Flower Authors <hello@flower.ai>"]
@@ -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: