flwr-nightly 1.9.0.dev20240609__tar.gz → 1.10.0.dev20240611__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.dev20240609 → flwr_nightly-1.10.0.dev20240611}/PKG-INFO +1 -1
  2. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/pyproject.toml +3 -3
  3. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/pyproject.hf.toml.tpl +1 -1
  4. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
  5. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +1 -1
  6. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
  7. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +1 -1
  8. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +1 -1
  9. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +1 -1
  10. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/app.py +20 -8
  11. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/grpc_rere_client/connection.py +0 -2
  12. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/LICENSE +0 -0
  13. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/README.md +0 -0
  14. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/__init__.py +0 -0
  15. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/__init__.py +0 -0
  16. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/app.py +0 -0
  17. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/build.py +0 -0
  18. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/config_utils.py +0 -0
  19. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/example.py +0 -0
  20. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/__init__.py +0 -0
  21. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/new.py +0 -0
  22. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/__init__.py +0 -0
  23. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/.gitignore.tpl +0 -0
  24. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/README.md.tpl +0 -0
  25. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/__init__.py +0 -0
  26. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/__init__.py +0 -0
  27. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/__init__.py.tpl +0 -0
  28. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/client.hf.py.tpl +0 -0
  29. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/client.jax.py.tpl +0 -0
  30. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/client.mlx.py.tpl +0 -0
  31. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/client.numpy.py.tpl +0 -0
  32. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/client.pytorch.py.tpl +0 -0
  33. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/client.sklearn.py.tpl +0 -0
  34. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/client.tensorflow.py.tpl +0 -0
  35. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/server.hf.py.tpl +0 -0
  36. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/server.jax.py.tpl +0 -0
  37. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/server.mlx.py.tpl +0 -0
  38. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/server.numpy.py.tpl +0 -0
  39. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/server.pytorch.py.tpl +0 -0
  40. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/server.sklearn.py.tpl +0 -0
  41. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/server.tensorflow.py.tpl +0 -0
  42. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/task.hf.py.tpl +0 -0
  43. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/task.jax.py.tpl +0 -0
  44. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/task.mlx.py.tpl +0 -0
  45. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/task.pytorch.py.tpl +0 -0
  46. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/new/templates/app/code/task.tensorflow.py.tpl +0 -0
  47. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/run/__init__.py +0 -0
  48. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/run/run.py +0 -0
  49. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/cli/utils.py +0 -0
  50. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/__init__.py +0 -0
  51. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/client.py +0 -0
  52. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/client_app.py +0 -0
  53. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  54. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/grpc_client/__init__.py +0 -0
  55. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/grpc_client/connection.py +0 -0
  56. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  57. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/grpc_rere_client/client_interceptor.py +0 -0
  58. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/heartbeat.py +0 -0
  59. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/message_handler/__init__.py +0 -0
  60. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/message_handler/message_handler.py +0 -0
  61. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/message_handler/task_handler.py +0 -0
  62. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/mod/__init__.py +0 -0
  63. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/mod/centraldp_mods.py +0 -0
  64. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/mod/comms_mods.py +0 -0
  65. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/mod/localdp_mod.py +0 -0
  66. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/mod/secure_aggregation/__init__.py +0 -0
  67. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/mod/secure_aggregation/secagg_mod.py +0 -0
  68. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/mod/secure_aggregation/secaggplus_mod.py +0 -0
  69. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/mod/utils.py +0 -0
  70. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/node_state.py +0 -0
  71. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/node_state_tests.py +0 -0
  72. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/numpy_client.py +0 -0
  73. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/rest_client/__init__.py +0 -0
  74. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/rest_client/connection.py +0 -0
  75. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/supernode/__init__.py +0 -0
  76. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/supernode/app.py +0 -0
  77. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/client/typing.py +0 -0
  78. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/__init__.py +0 -0
  79. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/address.py +0 -0
  80. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/constant.py +0 -0
  81. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/context.py +0 -0
  82. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/date.py +0 -0
  83. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/differential_privacy.py +0 -0
  84. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/differential_privacy_constants.py +0 -0
  85. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/dp.py +0 -0
  86. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/exit_handlers.py +0 -0
  87. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/grpc.py +0 -0
  88. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/logger.py +0 -0
  89. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/message.py +0 -0
  90. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/object_ref.py +0 -0
  91. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/parameter.py +0 -0
  92. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/pyproject.py +0 -0
  93. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/record/__init__.py +0 -0
  94. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/record/configsrecord.py +0 -0
  95. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/record/conversion_utils.py +0 -0
  96. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/record/metricsrecord.py +0 -0
  97. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/record/parametersrecord.py +0 -0
  98. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/record/recordset.py +0 -0
  99. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/record/typeddict.py +0 -0
  100. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/recordset_compat.py +0 -0
  101. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/retry_invoker.py +0 -0
  102. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
  103. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  104. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  105. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  106. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  107. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
  108. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  109. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  110. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/serde.py +0 -0
  111. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/telemetry.py +0 -0
  112. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/typing.py +0 -0
  113. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/common/version.py +0 -0
  114. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/__init__.py +0 -0
  115. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/driver_pb2.py +0 -0
  116. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/driver_pb2.pyi +0 -0
  117. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
  118. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
  119. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/error_pb2.py +0 -0
  120. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/error_pb2.pyi +0 -0
  121. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/error_pb2_grpc.py +0 -0
  122. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/error_pb2_grpc.pyi +0 -0
  123. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/fleet_pb2.py +0 -0
  124. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
  125. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  126. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  127. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/grpcadapter_pb2.py +0 -0
  128. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/grpcadapter_pb2.pyi +0 -0
  129. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/grpcadapter_pb2_grpc.py +0 -0
  130. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/grpcadapter_pb2_grpc.pyi +0 -0
  131. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/node_pb2.py +0 -0
  132. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/node_pb2.pyi +0 -0
  133. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
  134. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  135. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/recordset_pb2.py +0 -0
  136. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/recordset_pb2.pyi +0 -0
  137. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/recordset_pb2_grpc.py +0 -0
  138. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/recordset_pb2_grpc.pyi +0 -0
  139. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/task_pb2.py +0 -0
  140. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/task_pb2.pyi +0 -0
  141. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
  142. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
  143. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/transport_pb2.py +0 -0
  144. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/transport_pb2.pyi +0 -0
  145. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
  146. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  147. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/py.typed +0 -0
  148. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/__init__.py +0 -0
  149. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/app.py +0 -0
  150. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/client_manager.py +0 -0
  151. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/client_proxy.py +0 -0
  152. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/compat/__init__.py +0 -0
  153. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/compat/app.py +0 -0
  154. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/compat/app_utils.py +0 -0
  155. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/compat/driver_client_proxy.py +0 -0
  156. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/compat/legacy_context.py +0 -0
  157. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/criterion.py +0 -0
  158. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/driver/__init__.py +0 -0
  159. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/driver/driver.py +0 -0
  160. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/driver/grpc_driver.py +0 -0
  161. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/driver/inmemory_driver.py +0 -0
  162. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/history.py +0 -0
  163. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/run_serverapp.py +0 -0
  164. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/server.py +0 -0
  165. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/server_app.py +0 -0
  166. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/server_config.py +0 -0
  167. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/__init__.py +0 -0
  168. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/aggregate.py +0 -0
  169. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/bulyan.py +0 -0
  170. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/dp_adaptive_clipping.py +0 -0
  171. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/dp_fixed_clipping.py +0 -0
  172. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  173. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  174. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  175. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
  176. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/fedadam.py +0 -0
  177. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/fedavg.py +0 -0
  178. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
  179. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/fedavgm.py +0 -0
  180. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/fedmedian.py +0 -0
  181. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/fedopt.py +0 -0
  182. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/fedprox.py +0 -0
  183. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  184. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  185. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  186. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  187. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/fedyogi.py +0 -0
  188. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/krum.py +0 -0
  189. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/qfedavg.py +0 -0
  190. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/strategy/strategy.py +0 -0
  191. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/__init__.py +0 -0
  192. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/driver/__init__.py +0 -0
  193. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/driver/driver_grpc.py +0 -0
  194. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/driver/driver_servicer.py +0 -0
  195. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/__init__.py +0 -0
  196. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/grpc_bidi/__init__.py +0 -0
  197. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  198. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py +0 -0
  199. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  200. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/grpc_bidi/grpc_server.py +0 -0
  201. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/grpc_rere/__init__.py +0 -0
  202. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +0 -0
  203. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/grpc_rere/server_interceptor.py +0 -0
  204. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/message_handler/__init__.py +0 -0
  205. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/message_handler/message_handler.py +0 -0
  206. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/rest_rere/__init__.py +0 -0
  207. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/rest_rere/rest_api.py +0 -0
  208. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/vce/__init__.py +0 -0
  209. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/vce/backend/__init__.py +0 -0
  210. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/vce/backend/backend.py +0 -0
  211. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/vce/backend/raybackend.py +0 -0
  212. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/fleet/vce/vce_api.py +0 -0
  213. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/state/__init__.py +0 -0
  214. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/state/in_memory_state.py +0 -0
  215. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/state/sqlite_state.py +0 -0
  216. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/state/state.py +0 -0
  217. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/state/state_factory.py +0 -0
  218. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/superlink/state/utils.py +0 -0
  219. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/typing.py +0 -0
  220. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/utils/__init__.py +0 -0
  221. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/utils/tensorboard.py +0 -0
  222. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/utils/validator.py +0 -0
  223. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/workflow/__init__.py +0 -0
  224. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/workflow/constant.py +0 -0
  225. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/workflow/default_workflows.py +0 -0
  226. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/workflow/secure_aggregation/__init__.py +0 -0
  227. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/workflow/secure_aggregation/secagg_workflow.py +0 -0
  228. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +0 -0
  229. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/simulation/__init__.py +0 -0
  230. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/simulation/app.py +0 -0
  231. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
  232. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  233. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  234. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
  235. {flwr_nightly-1.9.0.dev20240609 → flwr_nightly-1.10.0.dev20240611}/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.dev20240609
3
+ Version: 1.10.0.dev20240611
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.dev20240609"
7
+ version = "1.10.0.dev20240611"
8
8
  description = "Flower: A Friendly Federated Learning Framework"
9
9
  license = "Apache-2.0"
10
10
  authors = ["The Flower Authors <hello@flower.ai>"]
@@ -105,7 +105,7 @@ jupyterlab = "==4.0.12"
105
105
  rope = "==1.11.0"
106
106
  semver = "==3.0.2"
107
107
  sphinx = "==6.2.1"
108
- sphinx-intl = "==2.1.0"
108
+ sphinx-intl = "==2.2.0"
109
109
  myst-parser = "==1.0.0"
110
110
  sphinx-design = "==0.5.0"
111
111
  sphinx-copybutton = "==0.5.2"
@@ -113,7 +113,7 @@ sphinxcontrib-mermaid = "==0.9.2"
113
113
  sphinxcontrib-youtube = "==1.4.1"
114
114
  furo = "==2023.9.10"
115
115
  sphinx-reredirects = "==0.1.3"
116
- nbsphinx = "==0.9.3"
116
+ nbsphinx = "==0.9.4"
117
117
  nbstripout = "==0.6.1"
118
118
  ruff = "==0.1.9"
119
119
  sphinx-argparse = "==0.4.0"
@@ -11,7 +11,7 @@ authors = [
11
11
  ]
12
12
  license = { text = "Apache License (2.0)" }
13
13
  dependencies = [
14
- "flwr[simulation]>=1.8.0,<2.0",
14
+ "flwr[simulation]>=1.9.0,<2.0",
15
15
  "flwr-datasets>=0.0.2,<1.0.0",
16
16
  "torch==2.2.1",
17
17
  "transformers>=4.30.0,<5.0"
@@ -11,7 +11,7 @@ authors = [
11
11
  ]
12
12
  license = {text = "Apache License (2.0)"}
13
13
  dependencies = [
14
- "flwr[simulation]>=1.8.0,<2.0",
14
+ "flwr[simulation]>=1.9.0,<2.0",
15
15
  "jax==0.4.26",
16
16
  "jaxlib==0.4.26",
17
17
  "scikit-learn==1.4.2",
@@ -11,7 +11,7 @@ authors = [
11
11
  ]
12
12
  license = { text = "Apache License (2.0)" }
13
13
  dependencies = [
14
- "flwr[simulation]>=1.8.0,<2.0",
14
+ "flwr[simulation]>=1.9.0,<2.0",
15
15
  "flwr-datasets[vision]>=0.0.2,<1.0.0",
16
16
  "mlx==0.10.0",
17
17
  "numpy==1.24.4",
@@ -11,7 +11,7 @@ authors = [
11
11
  ]
12
12
  license = { text = "Apache License (2.0)" }
13
13
  dependencies = [
14
- "flwr[simulation]>=1.8.0,<2.0",
14
+ "flwr[simulation]>=1.9.0,<2.0",
15
15
  "numpy>=1.21.0",
16
16
  ]
17
17
 
@@ -11,7 +11,7 @@ authors = [
11
11
  ]
12
12
  license = { text = "Apache License (2.0)" }
13
13
  dependencies = [
14
- "flwr[simulation]>=1.8.0,<2.0",
14
+ "flwr[simulation]>=1.9.0,<2.0",
15
15
  "flwr-datasets[vision]>=0.0.2,<1.0.0",
16
16
  "torch==2.2.1",
17
17
  "torchvision==0.17.1",
@@ -11,7 +11,7 @@ authors = [
11
11
  ]
12
12
  license = { text = "Apache License (2.0)" }
13
13
  dependencies = [
14
- "flwr[simulation]>=1.8.0,<2.0",
14
+ "flwr[simulation]>=1.9.0,<2.0",
15
15
  "flwr-datasets[vision]>=0.0.2,<1.0.0",
16
16
  "scikit-learn>=1.1.1",
17
17
  ]
@@ -11,7 +11,7 @@ authors = [
11
11
  ]
12
12
  license = { text = "Apache License (2.0)" }
13
13
  dependencies = [
14
- "flwr[simulation]>=1.8.0,<2.0",
14
+ "flwr[simulation]>=1.9.0,<2.0",
15
15
  "flwr-datasets[vision]>=0.0.2,<1.0.0",
16
16
  "tensorflow>=2.11.1",
17
17
  ]
@@ -265,10 +265,10 @@ def _start_client_internal(
265
265
  transport, server_address
266
266
  )
267
267
 
268
- run_tracker = _RunTracker()
269
- _ = run_tracker
268
+ app_state_tracker = _AppStateTracker()
270
269
 
271
270
  def _on_sucess(retry_state: RetryState) -> None:
271
+ app_state_tracker.is_connected = True
272
272
  if retry_state.tries > 1:
273
273
  log(
274
274
  INFO,
@@ -278,6 +278,7 @@ def _start_client_internal(
278
278
  )
279
279
 
280
280
  def _on_backoff(retry_state: RetryState) -> None:
281
+ app_state_tracker.is_connected = False
281
282
  if retry_state.tries == 1:
282
283
  log(WARN, "Connection attempt failed, retrying...")
283
284
  else:
@@ -308,7 +309,7 @@ def _start_client_internal(
308
309
 
309
310
  node_state = NodeState()
310
311
 
311
- while True:
312
+ while not app_state_tracker.interrupt:
312
313
  sleep_duration: int = 0
313
314
  with connection(
314
315
  address,
@@ -325,8 +326,9 @@ def _start_client_internal(
325
326
  if create_node is not None:
326
327
  create_node() # pylint: disable=not-callable
327
328
 
328
- while True:
329
- if True: # pylint: disable=using-constant-test
329
+ app_state_tracker.register_signal_handler()
330
+ while not app_state_tracker.interrupt:
331
+ try:
330
332
  # Receive
331
333
  message = receive()
332
334
  if message is None:
@@ -397,7 +399,10 @@ def _start_client_internal(
397
399
  e_code = ErrorCode.LOAD_CLIENT_APP_EXCEPTION
398
400
  exc_entity = "SuperNode"
399
401
 
400
- log(ERROR, "%s raised an exception", exc_entity, exc_info=ex)
402
+ if not app_state_tracker.interrupt:
403
+ log(
404
+ ERROR, "%s raised an exception", exc_entity, exc_info=ex
405
+ )
401
406
 
402
407
  # Create error message
403
408
  reply_message = message.create_error_reply(
@@ -414,13 +419,19 @@ def _start_client_internal(
414
419
  send(reply_message)
415
420
  log(INFO, "Sent reply")
416
421
 
422
+ except StopIteration:
423
+ sleep_duration = 0
424
+ break
425
+
417
426
  # Unregister node
418
- if delete_node is not None:
427
+ if delete_node is not None and app_state_tracker.is_connected:
419
428
  delete_node() # pylint: disable=not-callable
420
429
 
421
430
  if sleep_duration == 0:
422
431
  log(INFO, "Disconnect and shut down")
432
+ del app_state_tracker
423
433
  break
434
+
424
435
  # Sleep and reconnect afterwards
425
436
  log(
426
437
  INFO,
@@ -592,8 +603,9 @@ def _init_connection(transport: Optional[str], server_address: str) -> Tuple[
592
603
 
593
604
 
594
605
  @dataclass
595
- class _RunTracker:
606
+ class _AppStateTracker:
596
607
  interrupt: bool = False
608
+ is_connected: bool = False
597
609
 
598
610
  def register_signal_handler(self) -> None:
599
611
  """Register handlers for exit signals."""
@@ -193,8 +193,6 @@ def grpc_request_response( # pylint: disable=R0913, R0914, R0915
193
193
 
194
194
  # Stop the ping-loop thread
195
195
  ping_stop_event.set()
196
- if ping_thread is not None:
197
- ping_thread.join()
198
196
 
199
197
  # Call FleetAPI
200
198
  delete_node_request = DeleteNodeRequest(node=node)