flwr-nightly 1.7.0.dev20240118__tar.gz → 1.7.0.dev20240119__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/PKG-INFO +1 -1
  2. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/pyproject.toml +2 -2
  3. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/configsrecord.py +14 -5
  4. flwr_nightly-1.7.0.dev20240119/src/py/flwr/common/flowercontext.py +77 -0
  5. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/metricsrecord.py +17 -6
  6. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/parametersrecord.py +12 -5
  7. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/typing.py +2 -2
  8. flwr_nightly-1.7.0.dev20240119/src/py/flwr/proto/task_pb2.py +54 -0
  9. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/task_pb2.pyi +4 -1
  10. flwr_nightly-1.7.0.dev20240118/src/py/flwr/proto/task_pb2.py +0 -54
  11. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/LICENSE +0 -0
  12. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/README.md +0 -0
  13. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/__init__.py +0 -0
  14. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/__init__.py +0 -0
  15. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/app.py +0 -0
  16. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/client.py +0 -0
  17. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/dpfedavg_numpy_client.py +0 -0
  18. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/flower.py +0 -0
  19. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/grpc_client/__init__.py +0 -0
  20. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/grpc_client/connection.py +0 -0
  21. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/grpc_rere_client/__init__.py +0 -0
  22. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/grpc_rere_client/connection.py +0 -0
  23. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/message_handler/__init__.py +0 -0
  24. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/message_handler/message_handler.py +0 -0
  25. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/message_handler/task_handler.py +0 -0
  26. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/middleware/__init__.py +0 -0
  27. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/middleware/utils.py +0 -0
  28. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/node_state.py +0 -0
  29. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/node_state_tests.py +0 -0
  30. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/numpy_client.py +0 -0
  31. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/rest_client/__init__.py +0 -0
  32. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/rest_client/connection.py +0 -0
  33. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/run_state.py +0 -0
  34. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/secure_aggregation/__init__.py +0 -0
  35. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/secure_aggregation/handler.py +0 -0
  36. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/secure_aggregation/secaggplus_handler.py +0 -0
  37. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/client/typing.py +0 -0
  38. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/__init__.py +0 -0
  39. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/address.py +0 -0
  40. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/constant.py +0 -0
  41. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/date.py +0 -0
  42. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/dp.py +0 -0
  43. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/grpc.py +0 -0
  44. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/logger.py +0 -0
  45. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/parameter.py +0 -0
  46. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/recordset.py +0 -0
  47. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/recordset_utils.py +0 -0
  48. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/retry_invoker.py +0 -0
  49. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/__init__.py +0 -0
  50. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/crypto/__init__.py +0 -0
  51. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/crypto/shamir.py +0 -0
  52. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/crypto/symmetric_encryption.py +0 -0
  53. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/ndarrays_arithmetic.py +0 -0
  54. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/quantization.py +0 -0
  55. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/secaggplus_constants.py +0 -0
  56. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/secure_aggregation/secaggplus_utils.py +0 -0
  57. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/serde.py +0 -0
  58. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/telemetry.py +0 -0
  59. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/common/version.py +0 -0
  60. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/driver/__init__.py +0 -0
  61. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/driver/app.py +0 -0
  62. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/driver/driver.py +0 -0
  63. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/driver/driver_client_proxy.py +0 -0
  64. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/driver/grpc_driver.py +0 -0
  65. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/flower/__init__.py +0 -0
  66. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/__init__.py +0 -0
  67. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/driver_pb2.py +0 -0
  68. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/driver_pb2.pyi +0 -0
  69. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/driver_pb2_grpc.py +0 -0
  70. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/driver_pb2_grpc.pyi +0 -0
  71. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/fleet_pb2.py +0 -0
  72. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/fleet_pb2.pyi +0 -0
  73. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/fleet_pb2_grpc.py +0 -0
  74. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/fleet_pb2_grpc.pyi +0 -0
  75. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/node_pb2.py +0 -0
  76. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/node_pb2.pyi +0 -0
  77. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/node_pb2_grpc.py +0 -0
  78. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/node_pb2_grpc.pyi +0 -0
  79. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/task_pb2_grpc.py +0 -0
  80. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/task_pb2_grpc.pyi +0 -0
  81. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/transport_pb2.py +0 -0
  82. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/transport_pb2.pyi +0 -0
  83. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/transport_pb2_grpc.py +0 -0
  84. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/proto/transport_pb2_grpc.pyi +0 -0
  85. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/py.typed +0 -0
  86. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/__init__.py +0 -0
  87. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/app.py +0 -0
  88. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/client_manager.py +0 -0
  89. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/client_proxy.py +0 -0
  90. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/criterion.py +0 -0
  91. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/driver/__init__.py +0 -0
  92. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/driver/driver_servicer.py +0 -0
  93. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/__init__.py +0 -0
  94. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_bidi/__init__.py +0 -0
  95. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_bidi/driver_client_manager.py +0 -0
  96. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_bidi/flower_service_servicer.py +0 -0
  97. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_bidi/grpc_bridge.py +0 -0
  98. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_bidi/grpc_client_proxy.py +0 -0
  99. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_bidi/grpc_server.py +0 -0
  100. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_bidi/ins_scheduler.py +0 -0
  101. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_rere/__init__.py +0 -0
  102. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/grpc_rere/fleet_servicer.py +0 -0
  103. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/message_handler/__init__.py +0 -0
  104. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/message_handler/message_handler.py +0 -0
  105. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/rest_rere/__init__.py +0 -0
  106. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/fleet/rest_rere/rest_api.py +0 -0
  107. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/history.py +0 -0
  108. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/server.py +0 -0
  109. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/state/__init__.py +0 -0
  110. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/state/in_memory_state.py +0 -0
  111. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/state/sqlite_state.py +0 -0
  112. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/state/state.py +0 -0
  113. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/state/state_factory.py +0 -0
  114. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/__init__.py +0 -0
  115. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/aggregate.py +0 -0
  116. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/bulyan.py +0 -0
  117. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/dpfedavg_adaptive.py +0 -0
  118. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/dpfedavg_fixed.py +0 -0
  119. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fault_tolerant_fedavg.py +0 -0
  120. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedadagrad.py +0 -0
  121. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedadam.py +0 -0
  122. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedavg.py +0 -0
  123. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedavg_android.py +0 -0
  124. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedavgm.py +0 -0
  125. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedmedian.py +0 -0
  126. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedopt.py +0 -0
  127. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedprox.py +0 -0
  128. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedtrimmedavg.py +0 -0
  129. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedxgb_bagging.py +0 -0
  130. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedxgb_cyclic.py +0 -0
  131. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedxgb_nn_avg.py +0 -0
  132. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/fedyogi.py +0 -0
  133. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/krum.py +0 -0
  134. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/qfedavg.py +0 -0
  135. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/strategy/strategy.py +0 -0
  136. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/utils/__init__.py +0 -0
  137. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/utils/tensorboard.py +0 -0
  138. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/server/utils/validator.py +0 -0
  139. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/simulation/__init__.py +0 -0
  140. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/simulation/app.py +0 -0
  141. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/simulation/ray_transport/__init__.py +0 -0
  142. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/simulation/ray_transport/ray_actor.py +0 -0
  143. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +0 -0
  144. {flwr_nightly-1.7.0.dev20240118 → flwr_nightly-1.7.0.dev20240119}/src/py/flwr/simulation/ray_transport/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flwr-nightly
3
- Version: 1.7.0.dev20240118
3
+ Version: 1.7.0.dev20240119
4
4
  Summary: Flower: A Friendly Federated Learning Framework
5
5
  Home-page: https://flower.dev
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.7.0-dev20240118"
7
+ version = "1.7.0-dev20240119"
8
8
  description = "Flower: A Friendly Federated Learning Framework"
9
9
  license = "Apache-2.0"
10
10
  authors = ["The Flower Authors <hello@flower.dev>"]
@@ -87,7 +87,7 @@ clang-format = "==17.0.4"
87
87
  isort = "==5.13.2"
88
88
  black = { version = "==23.10.1", extras = ["jupyter"] }
89
89
  docformatter = "==1.7.5"
90
- mypy = "==1.6.1"
90
+ mypy = "==1.8.0"
91
91
  pylint = "==3.0.3"
92
92
  flake8 = "==5.0.4"
93
93
  pytest = "==7.4.4"
@@ -25,7 +25,6 @@ from .typing import ConfigsRecordValues, ConfigsScalar
25
25
  class ConfigsRecord:
26
26
  """Configs record."""
27
27
 
28
- keep_input: bool
29
28
  data: Dict[str, ConfigsRecordValues] = field(default_factory=dict)
30
29
 
31
30
  def __init__(
@@ -47,12 +46,13 @@ class ConfigsRecord:
47
46
  to True, the data is duplicated in memory. If memory is a concern, set
48
47
  it to False.
49
48
  """
50
- self.keep_input = keep_input
51
49
  self.data = {}
52
50
  if configs_dict:
53
- self.set_configs(configs_dict)
51
+ self.set_configs(configs_dict, keep_input=keep_input)
54
52
 
55
- def set_configs(self, configs_dict: Dict[str, ConfigsRecordValues]) -> None:
53
+ def set_configs(
54
+ self, configs_dict: Dict[str, ConfigsRecordValues], keep_input: bool = True
55
+ ) -> None:
56
56
  """Add configs to the record.
57
57
 
58
58
  Parameters
@@ -61,6 +61,11 @@ class ConfigsRecord:
61
61
  A dictionary that stores basic types (i.e. `str`,`int`, `float`, `bytes` as
62
62
  defined in `ConfigsRecordValues`) and list of such types (see
63
63
  `ConfigsScalarList`).
64
+ keep_input : bool (default: True)
65
+ A boolean indicating whether config passed should be deleted from the input
66
+ dictionary immediately after adding them to the record. When set
67
+ to True, the data is duplicated in memory. If memory is a concern, set
68
+ it to False.
64
69
  """
65
70
  if any(not isinstance(k, str) for k in configs_dict.keys()):
66
71
  raise TypeError(f"Not all keys are of valid type. Expected {str}")
@@ -88,7 +93,7 @@ class ConfigsRecord:
88
93
  is_valid(value)
89
94
 
90
95
  # Add configs to record
91
- if self.keep_input:
96
+ if keep_input:
92
97
  # Copy
93
98
  self.data = configs_dict.copy()
94
99
  else:
@@ -96,3 +101,7 @@ class ConfigsRecord:
96
101
  for key in list(configs_dict.keys()):
97
102
  self.data[key] = configs_dict[key]
98
103
  del configs_dict[key]
104
+
105
+ def __getitem__(self, key: str) -> ConfigsRecordValues:
106
+ """Retrieve an element stored in record."""
107
+ return self.data[key]
@@ -0,0 +1,77 @@
1
+ # Copyright 2024 Flower Labs GmbH. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ==============================================================================
15
+ """FlowerContext and Metadata."""
16
+
17
+
18
+ from dataclasses import dataclass
19
+
20
+ from .recordset import RecordSet
21
+
22
+
23
+ @dataclass
24
+ class Metadata:
25
+ """A dataclass holding metadata associated with the current task.
26
+
27
+ Parameters
28
+ ----------
29
+ run_id : int
30
+ An identifier for the current run.
31
+ task_id : str
32
+ An identifier for the current task.
33
+ group_id : str
34
+ An identifier for grouping tasks. In some settings
35
+ this is used as the FL round.
36
+ ttl : str
37
+ Time-to-live for this task.
38
+ task_type : str
39
+ A string that encodes the action to be executed on
40
+ the receiving end.
41
+ """
42
+
43
+ run_id: int
44
+ task_id: str
45
+ group_id: str
46
+ ttl: str
47
+ task_type: str
48
+
49
+
50
+ @dataclass
51
+ class FlowerContext:
52
+ """State of your application from the viewpoint of the entity using it.
53
+
54
+ Parameters
55
+ ----------
56
+ in_message : RecordSet
57
+ Holds records sent by another entity (e.g. sent by the server-side
58
+ logic to a client, or vice-versa)
59
+ out_message : RecordSet
60
+ Holds records added by the current entity. This `RecordSet` will
61
+ be sent out (e.g. back to the server-side for aggregation of
62
+ parameter, or to the client to perform a certain task)
63
+ local : RecordSet
64
+ Holds record added by the current entity and that will stay local.
65
+ This means that the data it holds will never leave the system it's running from.
66
+ This can be used as an intermediate storage or scratchpad when
67
+ executing middleware layers. It can also be used as a memory to access
68
+ at different points during the lifecycle of this entity (e.g. across
69
+ multiple rounds)
70
+ metadata : Metadata
71
+ A dataclass including information about the task to be executed.
72
+ """
73
+
74
+ in_message: RecordSet
75
+ out_message: RecordSet
76
+ local: RecordSet
77
+ metadata: Metadata
@@ -25,7 +25,6 @@ from .typing import MetricsRecordValues, MetricsScalar
25
25
  class MetricsRecord:
26
26
  """Metrics record."""
27
27
 
28
- keep_input: bool
29
28
  data: Dict[str, MetricsRecordValues] = field(default_factory=dict)
30
29
 
31
30
  def __init__(
@@ -46,12 +45,13 @@ class MetricsRecord:
46
45
  to True, the data is duplicated in memory. If memory is a concern, set
47
46
  it to False.
48
47
  """
49
- self.keep_input = keep_input
50
48
  self.data = {}
51
49
  if metrics_dict:
52
- self.set_metrics(metrics_dict)
50
+ self.set_metrics(metrics_dict, keep_input=keep_input)
53
51
 
54
- def set_metrics(self, metrics_dict: Dict[str, MetricsRecordValues]) -> None:
52
+ def set_metrics(
53
+ self, metrics_dict: Dict[str, MetricsRecordValues], keep_input: bool = True
54
+ ) -> None:
55
55
  """Add metrics to the record.
56
56
 
57
57
  Parameters
@@ -59,13 +59,20 @@ class MetricsRecord:
59
59
  metrics_dict : Dict[str, MetricsRecordValues]
60
60
  A dictionary that stores basic types (i.e. `int`, `float` as defined
61
61
  in `MetricsScalar`) and list of such types (see `MetricsScalarList`).
62
+ keep_input : bool (default: True)
63
+ A boolean indicating whether metrics should be deleted from the input
64
+ dictionary immediately after adding them to the record. When set
65
+ to True, the data is duplicated in memory. If memory is a concern, set
66
+ it to False.
62
67
  """
63
68
  if any(not isinstance(k, str) for k in metrics_dict.keys()):
64
69
  raise TypeError(f"Not all keys are of valid type. Expected {str}.")
65
70
 
66
71
  def is_valid(value: MetricsScalar) -> None:
67
72
  """Check if value is of expected type."""
68
- if not isinstance(value, get_args(MetricsScalar)):
73
+ if not isinstance(value, get_args(MetricsScalar)) or isinstance(
74
+ value, bool
75
+ ):
69
76
  raise TypeError(
70
77
  "Not all values are of valid type."
71
78
  f" Expected {MetricsRecordValues} but you passed {type(value)}."
@@ -86,7 +93,7 @@ class MetricsRecord:
86
93
  is_valid(value)
87
94
 
88
95
  # Add metrics to record
89
- if self.keep_input:
96
+ if keep_input:
90
97
  # Copy
91
98
  self.data = metrics_dict.copy()
92
99
  else:
@@ -94,3 +101,7 @@ class MetricsRecord:
94
101
  for key in list(metrics_dict.keys()):
95
102
  self.data[key] = metrics_dict[key]
96
103
  del metrics_dict[key]
104
+
105
+ def __getitem__(self, key: str) -> MetricsRecordValues:
106
+ """Retrieve an element stored in record."""
107
+ return self.data[key]
@@ -59,7 +59,6 @@ class ParametersRecord:
59
59
  PyTorch's state_dict, but holding serialised tensors instead.
60
60
  """
61
61
 
62
- keep_input: bool
63
62
  data: OrderedDict[str, Array] = field(default_factory=OrderedDict[str, Array])
64
63
 
65
64
  def __init__(
@@ -82,25 +81,29 @@ class ParametersRecord:
82
81
  parameters after adding it to the record, set this flag to True. When set
83
82
  to True, the data is duplicated in memory.
84
83
  """
85
- self.keep_input = keep_input
86
84
  self.data = OrderedDict()
87
85
  if array_dict:
88
- self.set_parameters(array_dict)
86
+ self.set_parameters(array_dict, keep_input=keep_input)
89
87
 
90
- def set_parameters(self, array_dict: OrderedDict[str, Array]) -> None:
88
+ def set_parameters(
89
+ self, array_dict: OrderedDict[str, Array], keep_input: bool = False
90
+ ) -> None:
91
91
  """Add parameters to record.
92
92
 
93
93
  Parameters
94
94
  ----------
95
95
  array_dict : OrderedDict[str, Array]
96
96
  A dictionary that stores serialized array-like or tensor-like objects.
97
+ keep_input : bool (default: False)
98
+ A boolean indicating whether parameters should be deleted from the input
99
+ dictionary immediately after adding them to the record.
97
100
  """
98
101
  if any(not isinstance(k, str) for k in array_dict.keys()):
99
102
  raise TypeError(f"Not all keys are of valid type. Expected {str}")
100
103
  if any(not isinstance(v, Array) for v in array_dict.values()):
101
104
  raise TypeError(f"Not all values are of valid type. Expected {Array}")
102
105
 
103
- if self.keep_input:
106
+ if keep_input:
104
107
  # Copy
105
108
  self.data = OrderedDict(array_dict)
106
109
  else:
@@ -108,3 +111,7 @@ class ParametersRecord:
108
111
  for key in list(array_dict.keys()):
109
112
  self.data[key] = array_dict[key]
110
113
  del array_dict[key]
114
+
115
+ def __getitem__(self, key: str) -> Array:
116
+ """Retrieve an element stored in record."""
117
+ return self.data[key]
@@ -50,8 +50,8 @@ MetricsScalar = Union[int, float]
50
50
  MetricsScalarList = Union[List[int], List[float]]
51
51
  MetricsRecordValues = Union[MetricsScalar, MetricsScalarList]
52
52
  # Value types for common.ConfigsRecord
53
- ConfigsScalar = Union[MetricsScalar, str, bytes]
54
- ConfigsScalarList = Union[MetricsScalarList, List[str], List[bytes]]
53
+ ConfigsScalar = Union[MetricsScalar, str, bytes, bool]
54
+ ConfigsScalarList = Union[MetricsScalarList, List[str], List[bytes], List[bool]]
55
55
  ConfigsRecordValues = Union[ConfigsScalar, ConfigsScalarList]
56
56
 
57
57
  Metrics = Dict[str, Scalar]
@@ -0,0 +1,54 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: flwr/proto/task.proto
4
+ # Protobuf Python Version: 4.25.0
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
16
+ from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
17
+
18
+
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/task.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xd1\x02\n\x04Task\x12\"\n\x08producer\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\"\n\x08\x63onsumer\x18\x02 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x12\n\ncreated_at\x18\x03 \x01(\t\x12\x14\n\x0c\x64\x65livered_at\x18\x04 \x01(\t\x12\x0b\n\x03ttl\x18\x05 \x01(\t\x12\x10\n\x08\x61ncestry\x18\x06 \x03(\t\x12\x11\n\ttask_type\x18\x07 \x01(\t\x12)\n\x02sa\x18\x08 \x01(\x0b\x32\x1d.flwr.proto.SecureAggregation\x12<\n\x15legacy_server_message\x18\x65 \x01(\x0b\x32\x19.flwr.proto.ServerMessageB\x02\x18\x01\x12<\n\x15legacy_client_message\x18\x66 \x01(\x0b\x32\x19.flwr.proto.ClientMessageB\x02\x18\x01\"\\\n\x07TaskIns\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x10\n\x08group_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x12\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Task\"\\\n\x07TaskRes\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x10\n\x08group_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x12\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Task\"\xf3\x03\n\x05Value\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x0e\n\x04\x62ool\x18\x03 \x01(\x08H\x00\x12\x10\n\x06string\x18\x04 \x01(\tH\x00\x12\x0f\n\x05\x62ytes\x18\x05 \x01(\x0cH\x00\x12\x33\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x1c.flwr.proto.Value.DoubleListH\x00\x12\x33\n\x0bsint64_list\x18\x16 \x01(\x0b\x32\x1c.flwr.proto.Value.Sint64ListH\x00\x12/\n\tbool_list\x18\x17 \x01(\x0b\x32\x1a.flwr.proto.Value.BoolListH\x00\x12\x33\n\x0bstring_list\x18\x18 \x01(\x0b\x32\x1c.flwr.proto.Value.StringListH\x00\x12\x31\n\nbytes_list\x18\x19 \x01(\x0b\x32\x1b.flwr.proto.Value.BytesListH\x00\x1a\x1a\n\nDoubleList\x12\x0c\n\x04vals\x18\x01 \x03(\x01\x1a\x1a\n\nSint64List\x12\x0c\n\x04vals\x18\x01 \x03(\x12\x1a\x18\n\x08\x42oolList\x12\x0c\n\x04vals\x18\x01 \x03(\x08\x1a\x1a\n\nStringList\x12\x0c\n\x04vals\x18\x01 \x03(\t\x1a\x19\n\tBytesList\x12\x0c\n\x04vals\x18\x01 \x03(\x0c\x42\x07\n\x05value\"\xa0\x01\n\x11SecureAggregation\x12\x44\n\x0cnamed_values\x18\x01 \x03(\x0b\x32..flwr.proto.SecureAggregation.NamedValuesEntry\x1a\x45\n\x10NamedValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12 \n\x05value\x18\x02 \x01(\x0b\x32\x11.flwr.proto.Value:\x02\x38\x01\x62\x06proto3')
20
+
21
+ _globals = globals()
22
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
23
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.task_pb2', _globals)
24
+ if _descriptor._USE_C_DESCRIPTORS == False:
25
+ DESCRIPTOR._options = None
26
+ _globals['_TASK'].fields_by_name['legacy_server_message']._options = None
27
+ _globals['_TASK'].fields_by_name['legacy_server_message']._serialized_options = b'\030\001'
28
+ _globals['_TASK'].fields_by_name['legacy_client_message']._options = None
29
+ _globals['_TASK'].fields_by_name['legacy_client_message']._serialized_options = b'\030\001'
30
+ _globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._options = None
31
+ _globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_options = b'8\001'
32
+ _globals['_TASK']._serialized_start=89
33
+ _globals['_TASK']._serialized_end=426
34
+ _globals['_TASKINS']._serialized_start=428
35
+ _globals['_TASKINS']._serialized_end=520
36
+ _globals['_TASKRES']._serialized_start=522
37
+ _globals['_TASKRES']._serialized_end=614
38
+ _globals['_VALUE']._serialized_start=617
39
+ _globals['_VALUE']._serialized_end=1116
40
+ _globals['_VALUE_DOUBLELIST']._serialized_start=972
41
+ _globals['_VALUE_DOUBLELIST']._serialized_end=998
42
+ _globals['_VALUE_SINT64LIST']._serialized_start=1000
43
+ _globals['_VALUE_SINT64LIST']._serialized_end=1026
44
+ _globals['_VALUE_BOOLLIST']._serialized_start=1028
45
+ _globals['_VALUE_BOOLLIST']._serialized_end=1052
46
+ _globals['_VALUE_STRINGLIST']._serialized_start=1054
47
+ _globals['_VALUE_STRINGLIST']._serialized_end=1080
48
+ _globals['_VALUE_BYTESLIST']._serialized_start=1082
49
+ _globals['_VALUE_BYTESLIST']._serialized_end=1107
50
+ _globals['_SECUREAGGREGATION']._serialized_start=1119
51
+ _globals['_SECUREAGGREGATION']._serialized_end=1279
52
+ _globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_start=1210
53
+ _globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_end=1279
54
+ # @@protoc_insertion_point(module_scope)
@@ -21,6 +21,7 @@ class Task(google.protobuf.message.Message):
21
21
  DELIVERED_AT_FIELD_NUMBER: builtins.int
22
22
  TTL_FIELD_NUMBER: builtins.int
23
23
  ANCESTRY_FIELD_NUMBER: builtins.int
24
+ TASK_TYPE_FIELD_NUMBER: builtins.int
24
25
  SA_FIELD_NUMBER: builtins.int
25
26
  LEGACY_SERVER_MESSAGE_FIELD_NUMBER: builtins.int
26
27
  LEGACY_CLIENT_MESSAGE_FIELD_NUMBER: builtins.int
@@ -33,6 +34,7 @@ class Task(google.protobuf.message.Message):
33
34
  ttl: typing.Text
34
35
  @property
35
36
  def ancestry(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
37
+ task_type: typing.Text
36
38
  @property
37
39
  def sa(self) -> global___SecureAggregation: ...
38
40
  @property
@@ -47,12 +49,13 @@ class Task(google.protobuf.message.Message):
47
49
  delivered_at: typing.Text = ...,
48
50
  ttl: typing.Text = ...,
49
51
  ancestry: typing.Optional[typing.Iterable[typing.Text]] = ...,
52
+ task_type: typing.Text = ...,
50
53
  sa: typing.Optional[global___SecureAggregation] = ...,
51
54
  legacy_server_message: typing.Optional[flwr.proto.transport_pb2.ServerMessage] = ...,
52
55
  legacy_client_message: typing.Optional[flwr.proto.transport_pb2.ClientMessage] = ...,
53
56
  ) -> None: ...
54
57
  def HasField(self, field_name: typing_extensions.Literal["consumer",b"consumer","legacy_client_message",b"legacy_client_message","legacy_server_message",b"legacy_server_message","producer",b"producer","sa",b"sa"]) -> builtins.bool: ...
55
- def ClearField(self, field_name: typing_extensions.Literal["ancestry",b"ancestry","consumer",b"consumer","created_at",b"created_at","delivered_at",b"delivered_at","legacy_client_message",b"legacy_client_message","legacy_server_message",b"legacy_server_message","producer",b"producer","sa",b"sa","ttl",b"ttl"]) -> None: ...
58
+ def ClearField(self, field_name: typing_extensions.Literal["ancestry",b"ancestry","consumer",b"consumer","created_at",b"created_at","delivered_at",b"delivered_at","legacy_client_message",b"legacy_client_message","legacy_server_message",b"legacy_server_message","producer",b"producer","sa",b"sa","task_type",b"task_type","ttl",b"ttl"]) -> None: ...
56
59
  global___Task = Task
57
60
 
58
61
  class TaskIns(google.protobuf.message.Message):
@@ -1,54 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: flwr/proto/task.proto
4
- # Protobuf Python Version: 4.25.0
5
- """Generated protocol buffer code."""
6
- from google.protobuf import descriptor as _descriptor
7
- from google.protobuf import descriptor_pool as _descriptor_pool
8
- from google.protobuf import symbol_database as _symbol_database
9
- from google.protobuf.internal import builder as _builder
10
- # @@protoc_insertion_point(imports)
11
-
12
- _sym_db = _symbol_database.Default()
13
-
14
-
15
- from flwr.proto import node_pb2 as flwr_dot_proto_dot_node__pb2
16
- from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
17
-
18
-
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/task.proto\x12\nflwr.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xbe\x02\n\x04Task\x12\"\n\x08producer\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\"\n\x08\x63onsumer\x18\x02 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x12\n\ncreated_at\x18\x03 \x01(\t\x12\x14\n\x0c\x64\x65livered_at\x18\x04 \x01(\t\x12\x0b\n\x03ttl\x18\x05 \x01(\t\x12\x10\n\x08\x61ncestry\x18\x06 \x03(\t\x12)\n\x02sa\x18\x07 \x01(\x0b\x32\x1d.flwr.proto.SecureAggregation\x12<\n\x15legacy_server_message\x18\x65 \x01(\x0b\x32\x19.flwr.proto.ServerMessageB\x02\x18\x01\x12<\n\x15legacy_client_message\x18\x66 \x01(\x0b\x32\x19.flwr.proto.ClientMessageB\x02\x18\x01\"\\\n\x07TaskIns\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x10\n\x08group_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x12\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Task\"\\\n\x07TaskRes\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x10\n\x08group_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\x12\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Task\"\xf3\x03\n\x05Value\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x0e\n\x04\x62ool\x18\x03 \x01(\x08H\x00\x12\x10\n\x06string\x18\x04 \x01(\tH\x00\x12\x0f\n\x05\x62ytes\x18\x05 \x01(\x0cH\x00\x12\x33\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x1c.flwr.proto.Value.DoubleListH\x00\x12\x33\n\x0bsint64_list\x18\x16 \x01(\x0b\x32\x1c.flwr.proto.Value.Sint64ListH\x00\x12/\n\tbool_list\x18\x17 \x01(\x0b\x32\x1a.flwr.proto.Value.BoolListH\x00\x12\x33\n\x0bstring_list\x18\x18 \x01(\x0b\x32\x1c.flwr.proto.Value.StringListH\x00\x12\x31\n\nbytes_list\x18\x19 \x01(\x0b\x32\x1b.flwr.proto.Value.BytesListH\x00\x1a\x1a\n\nDoubleList\x12\x0c\n\x04vals\x18\x01 \x03(\x01\x1a\x1a\n\nSint64List\x12\x0c\n\x04vals\x18\x01 \x03(\x12\x1a\x18\n\x08\x42oolList\x12\x0c\n\x04vals\x18\x01 \x03(\x08\x1a\x1a\n\nStringList\x12\x0c\n\x04vals\x18\x01 \x03(\t\x1a\x19\n\tBytesList\x12\x0c\n\x04vals\x18\x01 \x03(\x0c\x42\x07\n\x05value\"\xa0\x01\n\x11SecureAggregation\x12\x44\n\x0cnamed_values\x18\x01 \x03(\x0b\x32..flwr.proto.SecureAggregation.NamedValuesEntry\x1a\x45\n\x10NamedValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12 \n\x05value\x18\x02 \x01(\x0b\x32\x11.flwr.proto.Value:\x02\x38\x01\x62\x06proto3')
20
-
21
- _globals = globals()
22
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
23
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.task_pb2', _globals)
24
- if _descriptor._USE_C_DESCRIPTORS == False:
25
- DESCRIPTOR._options = None
26
- _globals['_TASK'].fields_by_name['legacy_server_message']._options = None
27
- _globals['_TASK'].fields_by_name['legacy_server_message']._serialized_options = b'\030\001'
28
- _globals['_TASK'].fields_by_name['legacy_client_message']._options = None
29
- _globals['_TASK'].fields_by_name['legacy_client_message']._serialized_options = b'\030\001'
30
- _globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._options = None
31
- _globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_options = b'8\001'
32
- _globals['_TASK']._serialized_start=89
33
- _globals['_TASK']._serialized_end=407
34
- _globals['_TASKINS']._serialized_start=409
35
- _globals['_TASKINS']._serialized_end=501
36
- _globals['_TASKRES']._serialized_start=503
37
- _globals['_TASKRES']._serialized_end=595
38
- _globals['_VALUE']._serialized_start=598
39
- _globals['_VALUE']._serialized_end=1097
40
- _globals['_VALUE_DOUBLELIST']._serialized_start=953
41
- _globals['_VALUE_DOUBLELIST']._serialized_end=979
42
- _globals['_VALUE_SINT64LIST']._serialized_start=981
43
- _globals['_VALUE_SINT64LIST']._serialized_end=1007
44
- _globals['_VALUE_BOOLLIST']._serialized_start=1009
45
- _globals['_VALUE_BOOLLIST']._serialized_end=1033
46
- _globals['_VALUE_STRINGLIST']._serialized_start=1035
47
- _globals['_VALUE_STRINGLIST']._serialized_end=1061
48
- _globals['_VALUE_BYTESLIST']._serialized_start=1063
49
- _globals['_VALUE_BYTESLIST']._serialized_end=1088
50
- _globals['_SECUREAGGREGATION']._serialized_start=1100
51
- _globals['_SECUREAGGREGATION']._serialized_end=1260
52
- _globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_start=1191
53
- _globals['_SECUREAGGREGATION_NAMEDVALUESENTRY']._serialized_end=1260
54
- # @@protoc_insertion_point(module_scope)