flwr 1.15.2__py3-none-any.whl → 1.16.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. flwr/cli/build.py +2 -0
  2. flwr/cli/log.py +20 -21
  3. flwr/cli/new/templates/app/pyproject.baseline.toml.tpl +1 -1
  4. flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl +1 -1
  5. flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl +1 -1
  6. flwr/cli/new/templates/app/pyproject.jax.toml.tpl +1 -1
  7. flwr/cli/new/templates/app/pyproject.mlx.toml.tpl +1 -1
  8. flwr/cli/new/templates/app/pyproject.numpy.toml.tpl +1 -1
  9. flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl +1 -1
  10. flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl +1 -1
  11. flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl +1 -1
  12. flwr/client/client_app.py +147 -36
  13. flwr/client/clientapp/app.py +4 -0
  14. flwr/client/message_handler/message_handler.py +1 -1
  15. flwr/client/rest_client/connection.py +4 -6
  16. flwr/client/supernode/__init__.py +0 -2
  17. flwr/client/supernode/app.py +1 -11
  18. flwr/common/address.py +35 -0
  19. flwr/common/args.py +8 -2
  20. flwr/common/auth_plugin/auth_plugin.py +2 -1
  21. flwr/common/constant.py +16 -0
  22. flwr/common/event_log_plugin/__init__.py +22 -0
  23. flwr/common/event_log_plugin/event_log_plugin.py +60 -0
  24. flwr/common/grpc.py +1 -1
  25. flwr/common/message.py +18 -7
  26. flwr/common/object_ref.py +0 -10
  27. flwr/common/record/conversion_utils.py +8 -17
  28. flwr/common/record/parametersrecord.py +151 -16
  29. flwr/common/record/recordset.py +95 -88
  30. flwr/common/secure_aggregation/quantization.py +5 -1
  31. flwr/common/serde.py +8 -126
  32. flwr/common/telemetry.py +0 -10
  33. flwr/common/typing.py +36 -0
  34. flwr/server/app.py +18 -2
  35. flwr/server/compat/app.py +4 -1
  36. flwr/server/compat/app_utils.py +10 -2
  37. flwr/server/compat/driver_client_proxy.py +2 -2
  38. flwr/server/driver/driver.py +1 -1
  39. flwr/server/driver/grpc_driver.py +10 -1
  40. flwr/server/driver/inmemory_driver.py +17 -20
  41. flwr/server/run_serverapp.py +2 -13
  42. flwr/server/server_app.py +93 -20
  43. flwr/server/superlink/driver/serverappio_servicer.py +25 -27
  44. flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py +2 -2
  45. flwr/server/superlink/fleet/message_handler/message_handler.py +8 -12
  46. flwr/server/superlink/fleet/vce/backend/backend.py +1 -1
  47. flwr/server/superlink/fleet/vce/vce_api.py +32 -35
  48. flwr/server/superlink/linkstate/in_memory_linkstate.py +140 -126
  49. flwr/server/superlink/linkstate/linkstate.py +47 -60
  50. flwr/server/superlink/linkstate/sqlite_linkstate.py +210 -276
  51. flwr/server/superlink/linkstate/utils.py +91 -119
  52. flwr/server/utils/__init__.py +2 -2
  53. flwr/server/utils/validator.py +53 -68
  54. flwr/server/workflow/default_workflows.py +4 -1
  55. flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +3 -3
  56. flwr/superexec/app.py +0 -14
  57. flwr/superexec/exec_servicer.py +4 -4
  58. flwr/superexec/exec_user_auth_interceptor.py +5 -3
  59. {flwr-1.15.2.dist-info → flwr-1.16.0.dist-info}/METADATA +4 -4
  60. {flwr-1.15.2.dist-info → flwr-1.16.0.dist-info}/RECORD +63 -66
  61. {flwr-1.15.2.dist-info → flwr-1.16.0.dist-info}/entry_points.txt +0 -3
  62. flwr/client/message_handler/task_handler.py +0 -37
  63. flwr/proto/task_pb2.py +0 -33
  64. flwr/proto/task_pb2.pyi +0 -100
  65. flwr/proto/task_pb2_grpc.py +0 -4
  66. flwr/proto/task_pb2_grpc.pyi +0 -4
  67. {flwr-1.15.2.dist-info → flwr-1.16.0.dist-info}/LICENSE +0 -0
  68. {flwr-1.15.2.dist-info → flwr-1.16.0.dist-info}/WHEEL +0 -0
@@ -3,13 +3,13 @@ flwr/cli/__init__.py,sha256=cZJVgozlkC6Ni2Hd_FAIrqefrkCGOV18fikToq-6iLw,720
3
3
  flwr/cli/app.py,sha256=UeXrW5gxrUnFViDjAMIxGNZZKwu3a1oAj83v53IWIWM,1382
4
4
  flwr/cli/auth_plugin/__init__.py,sha256=FyaoqPzcxlBTFfJ2sBRC5USwQLmAhFr5KuBwfMO4bmo,1052
5
5
  flwr/cli/auth_plugin/oidc_cli_plugin.py,sha256=gIhW6Jg9QAo-jL43LYPpw_kn7pdUZZae0s0H8dEgjLM,5384
6
- flwr/cli/build.py,sha256=4P70i_FnUs0P21aTwjTXtFQSAfY-C04hUDF-2npfJdo,6345
6
+ flwr/cli/build.py,sha256=BbS6yrBz0Q0PkNqaEk_VD261iRMfMmkEuQ3GdJpZW54,6375
7
7
  flwr/cli/cli_user_auth_interceptor.py,sha256=aZepPA298s-HjGmkJGMvI_uZe72O5aLC3jri-ilG53o,3126
8
8
  flwr/cli/config_utils.py,sha256=LelRR960I36n1IPw7BIu79fKoOh0JePA58kAtoXSTH0,7518
9
9
  flwr/cli/constant.py,sha256=g7Ad7o3DJDkJNrWS0T3SSJETWSTkkVJWGpLM8zlbpcY,1289
10
10
  flwr/cli/example.py,sha256=uk5CoD0ZITgpY_ffsTbEKf8XOOCSUzByjHPcMSPqV18,2216
11
11
  flwr/cli/install.py,sha256=-RnrYGejN_zyXXp_CoddSQwoQfRTWWyt9WYlxphJzyU,8180
12
- flwr/cli/log.py,sha256=vcO-r5EIc127mOQ26uxKVITX-w_Zib7AxSVuuN70_JY,6671
12
+ flwr/cli/log.py,sha256=Huy02o2xGbbBVIBZhcC18qXEo_IUvPcVas77MnDE9Vo,6529
13
13
  flwr/cli/login/__init__.py,sha256=6_9zOzbPOAH72K2wX3-9dXTAbS7Mjpa5sEn2lA6eHHI,800
14
14
  flwr/cli/login/login.py,sha256=iNnNF1bvV0n8Z-vNc89azFNA73JqKZlO1s5OF2atsTc,3917
15
15
  flwr/cli/ls.py,sha256=cm3NuY1sFq51xVRhUG0MbAfVTrRSjJ1HMIubde80LuY,11433
@@ -58,15 +58,15 @@ flwr/cli/new/templates/app/code/task.pytorch.py.tpl,sha256=XlJqA4Ix_PloO_zJLhjiN
58
58
  flwr/cli/new/templates/app/code/task.sklearn.py.tpl,sha256=SeIIo0rr_6ffn4Qx2xELD18jYXCkcW__NWtYEDXCICM,1843
59
59
  flwr/cli/new/templates/app/code/task.tensorflow.py.tpl,sha256=SKXAZdgBnPpbAbJ90Rb7oQ5ilnopBx_j_JNFoUDeEAI,1732
60
60
  flwr/cli/new/templates/app/code/utils.baseline.py.tpl,sha256=YkHAgppUeD2BnBoGfVB6dEvBfjuIPGsU1gw4CiUi3qA,40
61
- flwr/cli/new/templates/app/pyproject.baseline.toml.tpl,sha256=KaRdKS6Um_7_BwaC2JyPVssvO0XoqugXr3uScQW_gmQ,2666
62
- flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=V0ARllDsjHQU7PkgsPk2wQKmcWkbiTYNnDzrQaH8PX8,1873
63
- flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=-br1AywMPM2TdOKwooz_jotI4iUoqLMmDkdVIV5txYM,1143
64
- flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=p8v65ymJtY50uh8kSyzAOYN34mvf2oQti2yN8d4T_gM,673
65
- flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=faz_lde3WU4HAJK_3h2SDR8Kejsv9P1jUHQQKyKdyZM,744
66
- flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=xP-U8w8_qim3BS5pTa9QYj38H2DfdcY24mKOdZRqkus,611
67
- flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=wLYfJlglT6k3Q5t3PGC43H5eVNouDnEqwK19KHUEj8o,710
68
- flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=9p0NzvIHoM0ZvlDUpa1lBMwIY_kpigmNCM7-5r3xWcg,686
69
- flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=C_kmVlZ-kqzcBJfMzsimE0voz1UbJMQqO_hfZQjMmg0,710
61
+ flwr/cli/new/templates/app/pyproject.baseline.toml.tpl,sha256=66VcEv65u2o9P0N8Ys2DLA1C7hoviC7ItjRJGGXHYfk,2666
62
+ flwr/cli/new/templates/app/pyproject.flowertune.toml.tpl,sha256=aMGH_6H4Ki8bCTyfB2tlChCe-_LUPIVqgrRYvPXMGok,1873
63
+ flwr/cli/new/templates/app/pyproject.huggingface.toml.tpl,sha256=A5NfTb5imtwdAxIg5Og-cZnM8tPpFLqeI_LVJxu49pE,1143
64
+ flwr/cli/new/templates/app/pyproject.jax.toml.tpl,sha256=Sq6WZ2rSVaCh0jVxKekPTTZAhBKhGi-SHELyFwe-Z4E,673
65
+ flwr/cli/new/templates/app/pyproject.mlx.toml.tpl,sha256=qDRaAmfibfIhbf43-j1kjJwpVAb-nd9o9N6KfWsyFZw,744
66
+ flwr/cli/new/templates/app/pyproject.numpy.toml.tpl,sha256=_gOb3yv8XuiYNaOVY0uEO6KNoshFE8ZLvlDgbPxkqS4,611
67
+ flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=TNfLYgCA5vVNcmqbV2G2dsHeNjx4dXiDIcD8mNoxUMI,710
68
+ flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=hVII9kdYRx_sbKhQC5WHDvhPhOdO5JW-JO9CNQc-hr0,686
69
+ flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=ctdB84ZADY3LH6f88SX-iCSzRTDh_1vjSv-v2Oa5cgo,710
70
70
  flwr/cli/run/__init__.py,sha256=cCsKVB0SFzh2b3QmGba6BHckB85xlhjh3mh4pBpACtY,790
71
71
  flwr/cli/run/run.py,sha256=kEOYKin9qPJy8SODxcAvIWk-OskKPsxvcbvhDhf2VD4,8299
72
72
  flwr/cli/stop.py,sha256=E4TGynmYQss5iWJ_fjSdYIW8nrNta2KOiK4sfvHKO_g,4976
@@ -74,9 +74,9 @@ flwr/cli/utils.py,sha256=D9XcpxzwkGPNdwX16o0kI-sYnRDMlWYyKNIpz6npRhQ,11236
74
74
  flwr/client/__init__.py,sha256=DGDoO0AEAfz-0CUFmLdyUUweAS64-07AOnmDfWUefK4,1192
75
75
  flwr/client/app.py,sha256=tNnef5wGVfqMiiGiWzAuULyy1QpvCKukiRmNi_a2cQc,34261
76
76
  flwr/client/client.py,sha256=8o58nd9o6ZFcMIaVYPGcV4MSjBG4H0oFgWiv8ZEO3oA,7895
77
- flwr/client/client_app.py,sha256=cTig-N00YzTucbo9zNi6I21J8PlbflU_8J_f5CI-Wpw,10390
77
+ flwr/client/client_app.py,sha256=mRj5AXokCV9WYivgkNEdBPUHXjNr_ZOQ50Dou0REhkw,14481
78
78
  flwr/client/clientapp/__init__.py,sha256=kZqChGnTChQ1WGSUkIlW2S5bc0d0mzDubCAmZUGRpEY,800
79
- flwr/client/clientapp/app.py,sha256=Us5Mw3wvGd_6P1zHOf3TNcRGBBulVZDo3LuZOs17WgM,8963
79
+ flwr/client/clientapp/app.py,sha256=B3GrIMP8BMvltYf4n4xbtlRR1jEPT5-F93KnBCPuPJM,9069
80
80
  flwr/client/clientapp/clientappio_servicer.py,sha256=5L6bjw_j3Mnx9kRFwYwxDNABKurBO5q1jZOWE_X11wQ,8522
81
81
  flwr/client/clientapp/utils.py,sha256=qqTw9PKPCldGnnbAbMhtS-Qs_GcqADE1eOtVPXeKYAo,4344
82
82
  flwr/client/dpfedavg_numpy_client.py,sha256=4KsEvzavDKyVDU1V0kMqffTwu1lNdUCYQN-i0DTYVN8,7404
@@ -90,8 +90,7 @@ flwr/client/grpc_rere_client/connection.py,sha256=CHC5ssg7SMIN78JsWFKHg2P_fT2G_N
90
90
  flwr/client/grpc_rere_client/grpc_adapter.py,sha256=4EixBCeceM-nLu-eqB1jr0pXaGdkvoSbKmrY1ushQok,5601
91
91
  flwr/client/heartbeat.py,sha256=cx37mJBH8LyoIN4Lks85wtqT1mnU5GulQnr4pGCvAq0,2404
92
92
  flwr/client/message_handler/__init__.py,sha256=QxxQuBNpFPTHx3KiUNvQSlqMKlEnbRR1kFfc1KVje08,719
93
- flwr/client/message_handler/message_handler.py,sha256=s7FEfYJp5QB259Pj1L94_9AC24Kh5JyKC2U-E6eNkkY,6492
94
- flwr/client/message_handler/task_handler.py,sha256=zr5H2jJNKBTSI4hNGpMxbBAKUP0wSdHCJPAYjQYCxDw,1310
93
+ flwr/client/message_handler/message_handler.py,sha256=FspUe8JmH8pROpANZVjNtxHX-07yi9A6poLZ9Ro7WK4,6492
95
94
  flwr/client/mod/__init__.py,sha256=37XeXZLFq_tzFVKVtC9JaigM2bSAU7BrGQvMPCE3Q28,1159
96
95
  flwr/client/mod/centraldp_mods.py,sha256=UGwNuqpmOWfLdfJITFgdi1TG-nLjuSb-cbEyoyfDgxQ,5415
97
96
  flwr/client/mod/comms_mods.py,sha256=s_H57ZXUPaWFifodCbRCOZW06IZRsilcOr9F-yWBtxg,2625
@@ -106,39 +105,41 @@ flwr/client/nodestate/nodestate.py,sha256=CmHZdR6kVO8tkffg42W0Yb9JdRmrUonZ9deXfU
106
105
  flwr/client/nodestate/nodestate_factory.py,sha256=apUbcJG0a_FUVsc0TkNN3q9yovc9u_J34u9iuLFKTLQ,1430
107
106
  flwr/client/numpy_client.py,sha256=chTkL9dOtK_wgUoYtzp5mfDOC1k8xPAd1qPIsB3hcjA,9581
108
107
  flwr/client/rest_client/__init__.py,sha256=5KGlp7pjc1dhNRkKlaNtUfQmg8wrRFh9lS3P3uRS-7Q,735
109
- flwr/client/rest_client/connection.py,sha256=9_JDGHkmaiPgk6CmcQId56Ia1ucQfrqcpNOUObdZaZU,13008
108
+ flwr/client/rest_client/connection.py,sha256=c0mHsNXHAsbX4zNelbGd2qrV3vj90FfNE6FsiD6JzuY,12904
110
109
  flwr/client/run_info_store.py,sha256=ZN2Phi4DSLbSyzg8RmzJcVYh1g6eurHOmWRCT7GMtw4,4040
111
- flwr/client/supernode/__init__.py,sha256=SUhWOzcgXRNXk1V9UgB5-FaWukqqrOEajVUHEcPkwyQ,865
112
- flwr/client/supernode/app.py,sha256=oBbggh56HoieksBkTdDHAJC8VUFbrmGOP0-D9wdcZek,9265
110
+ flwr/client/supernode/__init__.py,sha256=D5swXxemuRbA2rB_T9B8LwJW-_PucXwmlFQQerwIUv0,793
111
+ flwr/client/supernode/app.py,sha256=W1VAgvjdSgrKKgjyM04Hx5XIUGxK2Oouuh0LjavZB9E,8975
113
112
  flwr/client/typing.py,sha256=dxoTBnTMfqXr5J7G3y-uNjqxYCddvxhu89spfj4Lm2U,1048
114
113
  flwr/common/__init__.py,sha256=TVaoFEJE158aui1TPZQiJCDZX4RNHRyI8I55VC80HhI,3901
115
- flwr/common/address.py,sha256=9KNYE69WW_QVcyumsux3Qn1wmn4J7f13Y9nHASpvzbA,3018
116
- flwr/common/args.py,sha256=MgkTUXACuySHyNdxrb7-pK0_R-S2Q7W5MnE3onYUf5I,5183
114
+ flwr/common/address.py,sha256=rRaN1JpiCJnit7ImEqZVxURQ69dPihRoyyWn_3I2wh4,4119
115
+ flwr/common/args.py,sha256=2gGT2a3SPJ0-LTNKnhBsZ-ESIoW9FGpw-9xkUSs8qwk,5417
117
116
  flwr/common/auth_plugin/__init__.py,sha256=1Y8Oj3iB49IHDu9tvDih1J74Ygu7k85V9s2A4WORPyA,887
118
- flwr/common/auth_plugin/auth_plugin.py,sha256=wgDorBUB4IkK6twQ8vNawRVz7BDPmKdXZBNLqhU9RSs,3871
117
+ flwr/common/auth_plugin/auth_plugin.py,sha256=dQU5U4uJIA5XqgOJ3PankHWq-uXCaMvO74khaMPGdiU,3938
119
118
  flwr/common/config.py,sha256=SAkG3BztnA6iupXxF3GAIpGmWVVCH0ptyMpC9yjr_14,13965
120
- flwr/common/constant.py,sha256=AdNCrHi4sgMCecdX7hHWxMFz3y9pWsjSGU25mA4OJyE,6619
119
+ flwr/common/constant.py,sha256=6NtDbh_RgQebtPfn01a8yN_7poMOuwy6jbtVLQdBbQc,7026
121
120
  flwr/common/context.py,sha256=uJ-mnoC_8y_udEb3kAX-r8CPphNTWM72z1AlsvQEu54,2403
122
121
  flwr/common/date.py,sha256=NHHpESce5wYqEwoDXf09gp9U9l_5Bmlh2BsOcwS-kDM,1554
123
122
  flwr/common/differential_privacy.py,sha256=YA01NqjddKNAEVmf7hXmOVxOjhekgzvJudk3mBGq-2k,6148
124
123
  flwr/common/differential_privacy_constants.py,sha256=c7b7tqgvT7yMK0XN9ndiTBs4mQf6d3qk6K7KBZGlV4Q,1074
125
124
  flwr/common/dp.py,sha256=vddkvyjV2FhRoN4VuU2LeAM1UBn7dQB8_W-Qdiveal8,1978
125
+ flwr/common/event_log_plugin/__init__.py,sha256=ts3VAL3Fk6Grp1EK_1Qg_V-BfOof9F86iBx4rbrEkyo,838
126
+ flwr/common/event_log_plugin/event_log_plugin.py,sha256=PyNdJglG-A2VAH0gTXQO7TMImr24uAHMzNBXwnFmnmE,2022
126
127
  flwr/common/exit/__init__.py,sha256=-ZOJYLaNnR729a7VzZiFsLiqngzKQh3xc27svYStZ_Q,826
127
128
  flwr/common/exit/exit.py,sha256=DmZFyksp-w1sFDQekq5Z-qfnr-ivCAv78aQkqj-TDps,3458
128
129
  flwr/common/exit/exit_code.py,sha256=PNEnCrZfOILjfDAFu5m-2YWEJBrk97xglq4zCUlqV7E,3470
129
130
  flwr/common/exit_handlers.py,sha256=yclujry30954o0lI7vtknTajskPCvK8TXw2V3RdldXU,3174
130
- flwr/common/grpc.py,sha256=K60AIvIqH0CvkkiqBfw5HoxQfbFOL2DrhKPjbZ8raIE,9786
131
+ flwr/common/grpc.py,sha256=7sHNP34LcNZv7J1GewJxXh509XTEbYvoHvXL5tQ3tcw,9798
131
132
  flwr/common/logger.py,sha256=Hund1C6bEhMw3GemlzuFK22tXZ27YeHLrFB0b4LP5f8,13041
132
- flwr/common/message.py,sha256=Zv4ID2BLQsbff0F03DI_MeFoHbSqVZAdDD9NcKYv6Zo,13832
133
- flwr/common/object_ref.py,sha256=Mv8OE6f9wmLs_KQWt8aPV5aw-g6fgWDfj28L2b8Jl-Y,9514
133
+ flwr/common/message.py,sha256=rWH_JIPnIo263-pC6Ps6XWmIgakRJA_AMBYwhE0qHcQ,14251
134
+ flwr/common/object_ref.py,sha256=DXL8NtbN17DSYaR-Zc8WYhaG8rv0_D_cclvP7Sa66So,9134
134
135
  flwr/common/parameter.py,sha256=-bFAUayToYDF50FZGrBC1hQYJCQDtB2bbr3ZuVLMtdE,2095
135
136
  flwr/common/pyproject.py,sha256=vEAxl800XiJ1JNJDui8vuVV-08msnB6hLt7o95viZl0,1386
136
137
  flwr/common/record/__init__.py,sha256=LUixpq0Z-lMJwCIu1-4u5HfvRPjRMRgoAc6YJQ6UEOs,1055
137
138
  flwr/common/record/configsrecord.py,sha256=i40jOzBx04ysZKECwaw4FdUXMdY9HgdY8GAqKdTO1Lw,6486
138
- flwr/common/record/conversion_utils.py,sha256=n3I3SI2P6hUjyxbWNc0QAch-SEhfMK6Hm-UUaplAlUc,1393
139
+ flwr/common/record/conversion_utils.py,sha256=ZcsM-vTm_rVtLXLFD2RY3N47V_hUr3ywTdtnpVXnOGU,1202
139
140
  flwr/common/record/metricsrecord.py,sha256=UywkEPbifiu_IyPUFoDJCi8WEVLujlqZERUWAWpc3vs,5752
140
- flwr/common/record/parametersrecord.py,sha256=SasHn35JRHsj8G1UT76FgRjaP4ZJasejvgjBV6HnaTg,7748
141
- flwr/common/record/recordset.py,sha256=qqIFdRZ0ivQhUhztpdxNIvCRDZQXY_zX0kKDEU9mhfM,8319
141
+ flwr/common/record/parametersrecord.py,sha256=rR0LbeNrKrdK37CiAA56Z5WBq-ZzZ2YNSUkcmr5i2lI,12950
142
+ flwr/common/record/recordset.py,sha256=ambtB74uF1pooQTfcBt1_xWsjvyDjGMc6awEt20ur2A,8547
142
143
  flwr/common/record/typeddict.py,sha256=q5hL2xkXymuiCprHWb69mUmLpWQk_XXQq0hGQ69YPaw,3599
143
144
  flwr/common/recordset_compat.py,sha256=ViSwA26h6Q55ZmV1LLjSJpcKiipV-p_JpCj4wxdE-Ow,14230
144
145
  flwr/common/retry_invoker.py,sha256=UIDKsn0AitS3fOr43WTqZAdD-TaHkBeTj1QxD7SGba0,14481
@@ -147,12 +148,12 @@ flwr/common/secure_aggregation/crypto/__init__.py,sha256=nlHesCWy8xxE5s6qHWnauCt
147
148
  flwr/common/secure_aggregation/crypto/shamir.py,sha256=wCSfEfeaPgJ9Om580-YPUF2ljiyRhq33TRC4HtwxYl8,2779
148
149
  flwr/common/secure_aggregation/crypto/symmetric_encryption.py,sha256=J_pRkxbogc7e1fxRZStZFBdzzG5jeUycshJPpvyCt6g,5333
149
150
  flwr/common/secure_aggregation/ndarrays_arithmetic.py,sha256=zvVAIrIyI6OSzGhpCi8NNaTvPXmoMYQIPJT-NkBg8RU,3013
150
- flwr/common/secure_aggregation/quantization.py,sha256=mC4uLf05zeONo8Ke-BY0Tj8UCMOS7VD93zHCzuv3MHU,2304
151
+ flwr/common/secure_aggregation/quantization.py,sha256=NE_ltC3Fx5Z3bMKqJHA95wQf2tkGQlN0VZf3d1w5ABA,2400
151
152
  flwr/common/secure_aggregation/secaggplus_constants.py,sha256=9MF-oQh62uD7rt9VeNB-rHf2gBLd5GL3S9OejCxmILY,2183
152
153
  flwr/common/secure_aggregation/secaggplus_utils.py,sha256=OgYd68YBRaHQYLc-YdExj9CSpwL58bVTaPrdHoAj2AE,3214
153
- flwr/common/serde.py,sha256=iDVS5IXGKqEuzQAvnroH9c6KFEHxKFEWmkGP89PMOO0,31064
154
- flwr/common/telemetry.py,sha256=APKVubU_zJNrE-M_rip6S6Fsu41DxY3tAjFWNOgTmC0,9086
155
- flwr/common/typing.py,sha256=IMgs_7nDJWn8Eb7y16Hl4HC3imQV7_Hdla1IFs3B5u8,6382
154
+ flwr/common/serde.py,sha256=dgPUMPoKh8r09NERMgfnZKmEiGuKVBje7bSVFwJVZyk,27340
155
+ flwr/common/telemetry.py,sha256=k4JVXNEZSyYF2BuKk10iH70D8RYmQEtFlVr42Ve6lls,8770
156
+ flwr/common/typing.py,sha256=Prl8_4tKnIl_Kh5UjJGbw1tnld543EkXrX0RWffJpiA,6900
156
157
  flwr/common/version.py,sha256=aNSxLL49RKeLz8sPcZrsTEWtrAeQ0uxu6tjmfba4O60,1325
157
158
  flwr/proto/__init__.py,sha256=hbY7JYakwZwCkYgCNlmHdc8rtvfoJbAZLalMdc--CGc,683
158
159
  flwr/proto/clientappio_pb2.py,sha256=aroQDv0D2GquQ5Ujqml7n7l6ObZoXqMvDa0XVO-_8Cc,3703
@@ -207,33 +208,29 @@ flwr/proto/simulationio_pb2.py,sha256=GOOmivAJPLQ6mPXrfKS8CyYeE6Kk-Q5mInLz5pyZSs
207
208
  flwr/proto/simulationio_pb2.pyi,sha256=oXx8_FLBe5B54wduZj-f89kub73XxNtQbThuW8YfPAs,2660
208
209
  flwr/proto/simulationio_pb2_grpc.py,sha256=9I3yAfJaeMuG-qH_5Ge45eFOftsIOmL9b8E_xHmcvKw,11232
209
210
  flwr/proto/simulationio_pb2_grpc.pyi,sha256=YHvKtyo7UdbBgdhoN0ndzZeB5vIC3JuR5PAJLrl-OKM,3206
210
- flwr/proto/task_pb2.py,sha256=pFKpq2QSvmFQOEpv2bgCG9jPAVauIHXQ9p5ASW-Z6lE,2322
211
- flwr/proto/task_pb2.pyi,sha256=PZXt-QkD-hFzTlgNVVx6SGvgbTCweBfisivEi_HfDWc,4183
212
- flwr/proto/task_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
213
- flwr/proto/task_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
214
211
  flwr/proto/transport_pb2.py,sha256=P-jX_tUyk_8xFe-vIUUSfZlHGtk2Ou3A8eXdBKkp5AY,9824
215
212
  flwr/proto/transport_pb2.pyi,sha256=ipHQ03eFBqsxtAuAVefZ2lVr04BZ4YifJCS2eauNmy8,21627
216
213
  flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPcosk,2598
217
214
  flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
218
215
  flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
219
216
  flwr/server/__init__.py,sha256=cEg1oecBu4cKB69iJCqWEylC8b5XW47bl7rQiJsdTvM,1528
220
- flwr/server/app.py,sha256=CVj7lDAYJ4GYnBvAIa0R3A8JV5Dt-ATxDOrLxafLFV8,30545
217
+ flwr/server/app.py,sha256=5GIzaP5gyQLy6Qi8_ePLaZmyhfa3ukSylWUZ5poMtNc,31086
221
218
  flwr/server/client_manager.py,sha256=7Ese0tgrH-i-ms363feYZJKwB8gWnXSmg_hYF2Bju4U,6227
222
219
  flwr/server/client_proxy.py,sha256=4G-oTwhb45sfWLx2uZdcXD98IZwdTS6F88xe3akCdUg,2399
223
220
  flwr/server/compat/__init__.py,sha256=VxnJtJyOjNFQXMNi9hIuzNlZM5n0Hj1p3aq_Pm2udw4,892
224
- flwr/server/compat/app.py,sha256=5vkHHm_h-4cMthvWD1GJo1ZW3eihytjGgvsgfXUK9gA,3298
225
- flwr/server/compat/app_utils.py,sha256=Kggcoi5vQCBQmYvXBBUxhtDUcIwFiQyfphkHp2K1WxM,3546
226
- flwr/server/compat/driver_client_proxy.py,sha256=jMmrfqSm4-qW0jOCTpHhN9Kw0ohfMwsyKU9buBzrfG0,4958
221
+ flwr/server/compat/app.py,sha256=Y0xAqXLn20e6XKGb2nHdeUYdCj_Dux-SyFCc-5ivhqk,3369
222
+ flwr/server/compat/app_utils.py,sha256=568PfvPME8KHjX-L5GB2rYQa_Wy8iUBGs22KJqn8Xk0,3824
223
+ flwr/server/compat/driver_client_proxy.py,sha256=1ElUYvn85iMbxfyjbPiGGlmdWzNqKIIgrGJgZ18uS4E,4964
227
224
  flwr/server/compat/legacy_context.py,sha256=wBzBcfV6YO6IQGriM_FdJ5XZfiBBEEJdS_OdAiF47dY,1804
228
225
  flwr/server/criterion.py,sha256=ypbAexbztzGUxNen9RCHF91QeqiEQix4t4Ih3E-42MM,1061
229
226
  flwr/server/driver/__init__.py,sha256=bikRv6CjTwSvYh7tf10gziU5o2YotOWhhftz2tr3KDc,886
230
- flwr/server/driver/driver.py,sha256=u_fMfqLYTroTafGCNwKPHI4lttRL-Z5CqeT3_FHSq-Q,5701
231
- flwr/server/driver/grpc_driver.py,sha256=3mSws0l83fWD4aq9-MmHFnIfyf4REoAXUkWfyJDHros,9864
232
- flwr/server/driver/inmemory_driver.py,sha256=7ZtWDDJa8xupPAHNaDdCE2DOIOIYgrffmJMdKjs3wdA,6616
227
+ flwr/server/driver/driver.py,sha256=X072eFWl8Kx-aZbahTkpAc1wwoojr8A4uO2yozwwSbE,5705
228
+ flwr/server/driver/grpc_driver.py,sha256=u3kj9Ej5vErlRcdeF_8giqVXWLP0obT405Kjv6vC-Vw,10298
229
+ flwr/server/driver/inmemory_driver.py,sha256=p6p9RykDfoty94izzD4i11Xp7A8t1KUaHpbKbbVZAdU,6407
233
230
  flwr/server/history.py,sha256=qSb5_pPTrwofpSYGsZWzMPkl_4uJ4mJFWesxXDrEvDU,5026
234
- flwr/server/run_serverapp.py,sha256=vIPhvJx0i5sEZO4IKM6ruCXmx4ncat76rh0B4KhdhhM,2446
231
+ flwr/server/run_serverapp.py,sha256=tyAYB5UEiUd63VG4XiYBUUiivh77SpIol1cGS4xtYdk,2077
235
232
  flwr/server/server.py,sha256=1ZsFEptmAV-L2vP2etNC9Ed5CLSxpuKzUFkAPQ4l5Xc,17893
236
- flwr/server/server_app.py,sha256=RsgS6PRS5Z74cMUAHzsm8r3LWddwn00MjRs6rlacHt8,6297
233
+ flwr/server/server_app.py,sha256=Kb0ayKy19awnkslwN9Jx3eBWZJvDeA8VfFBvImmMf_E,9035
237
234
  flwr/server/server_config.py,sha256=CZaHVAsMvGLjpWVcLPkiYxgJN4xfIyAiUrCI3fETKY4,1349
238
235
  flwr/server/serverapp/__init__.py,sha256=L0K-94UDdTyEZ8LDtYybGIIIv3HW6AhSVjXMUfYJQnQ,800
239
236
  flwr/server/serverapp/app.py,sha256=5nFRYYzC2vh0l1fKJofBfKwFam93In4b80wvH9eFfQ8,8651
@@ -265,7 +262,7 @@ flwr/server/strategy/strategy.py,sha256=cXapkD5uDrt5C-RbmWDn9FLoap3Q41i7GKvbmfbC
265
262
  flwr/server/superlink/__init__.py,sha256=8tHYCfodUlRD8PCP9fHgvu8cz5N31A2QoRVL0jDJ15E,707
266
263
  flwr/server/superlink/driver/__init__.py,sha256=5soEK5QSvxNjmJQ-CGTWROc4alSAeU0e9Ad9RDhsd3E,717
267
264
  flwr/server/superlink/driver/serverappio_grpc.py,sha256=UzHwo6qYZMeOhr7nn1iZbcyDSmwvnq_kpYH0mEAndW0,2173
268
- flwr/server/superlink/driver/serverappio_servicer.py,sha256=hT_fM32ya3SxZFHNmfI7u2qQ_apbNHTUZB3cw6WRsmw,13116
265
+ flwr/server/superlink/driver/serverappio_servicer.py,sha256=Y-L0SiaP1p4yEi6r6MWOMiW10nsu_TlAcj_0miaEYSo,13121
269
266
  flwr/server/superlink/ffs/__init__.py,sha256=FAY-zShcfPmOxosok2QyT6hTNMNctG8cH9s_nIl8jkI,840
270
267
  flwr/server/superlink/ffs/disk_ffs.py,sha256=n_Ah0sQwXGVQ9wj5965nLjdkQQbpoHCljjXKFnwftsU,3297
271
268
  flwr/server/superlink/ffs/ffs.py,sha256=qLI1UfosJugu2BKOJWqHIhafTm-YiuKqGf3OGWPH0NM,2395
@@ -279,37 +276,37 @@ flwr/server/superlink/fleet/grpc_bidi/grpc_bridge.py,sha256=JkAH_nIZaqe_9kntrg26
279
276
  flwr/server/superlink/fleet/grpc_bidi/grpc_client_proxy.py,sha256=h3EhqgelegVC4EjOXH5birmAnMoCBJcP7jpHYCnHZPk,4887
280
277
  flwr/server/superlink/fleet/grpc_bidi/grpc_server.py,sha256=mxPxyEF0IW0vV41Bqk1zfKOdRDEvXPwzJyMiRMg7nTI,5173
281
278
  flwr/server/superlink/fleet/grpc_rere/__init__.py,sha256=j2hyC342am-_Hgp1g80Y3fGDzfTI6n8QOOn2PyWf4eg,758
282
- flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=syWWZgsU3PHvIuvSoJxUTbEdkOtyV6psXAbRowNE_yY,5533
279
+ flwr/server/superlink/fleet/grpc_rere/fleet_servicer.py,sha256=_J8kmdYiRoT8iUJenYic674VjX2lot8iigN3vnaWfMg,5528
283
280
  flwr/server/superlink/fleet/grpc_rere/server_interceptor.py,sha256=KPgAcnYsKPPI7_iYNSnqGbyv4tsqZuBqrTiREwVBJiM,6984
284
281
  flwr/server/superlink/fleet/message_handler/__init__.py,sha256=h8oLD7uo5lKICPy0rRdKRjTYe62u8PKkT_fA4xF5JPA,731
285
- flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=QpLo3E-viPQ1Ia4isRM21htCfU3QH0P4wqMfXAtX8Hk,5412
282
+ flwr/server/superlink/fleet/message_handler/message_handler.py,sha256=1pC9U-9D7Nhh9bwRZjtLxgz3osgG-tcXS-k-cAQjeF0,5242
286
283
  flwr/server/superlink/fleet/rest_rere/__init__.py,sha256=5jbYbAn75sGv-gBwOPDySE0kz96F6dTYLeMrGqNi4lM,735
287
284
  flwr/server/superlink/fleet/rest_rere/rest_api.py,sha256=L7sg9Uyp7l1bViYNWjnpaDvcG_j7FYKWC1XL-8bMpsg,6710
288
285
  flwr/server/superlink/fleet/vce/__init__.py,sha256=TZJsKTpYO_djv2EXx9Ji62I8TA0JiZF8jvRyJRZkAes,784
289
286
  flwr/server/superlink/fleet/vce/backend/__init__.py,sha256=cGgal5qpd0_MwEdIqjJbHHSIgGa6GSPoI5_byUwtG_k,1437
290
- flwr/server/superlink/fleet/vce/backend/backend.py,sha256=LBAQxnbfPAphVOVIvYMj0QIvVP5O-RQxKQlUGNUj974,2194
287
+ flwr/server/superlink/fleet/vce/backend/backend.py,sha256=lr_uBMaoCp7qs59ZRpCI07wp-EsClNB-7QWFfF0r95c,2195
291
288
  flwr/server/superlink/fleet/vce/backend/raybackend.py,sha256=jsUkFEVQTnrucK1jNQ_cUM8YwL7W4MQNA1GAf8ibRdg,7156
292
- flwr/server/superlink/fleet/vce/vce_api.py,sha256=iXNSAJ7f8Sg1hOrVuRTGRkLdSWeFIpNWbusoOTc4I8I,12971
289
+ flwr/server/superlink/fleet/vce/vce_api.py,sha256=xQbWzfIsXYwcEHoYxrgDcx3yGJKUoBdkc8zkJ8onzBs,12802
293
290
  flwr/server/superlink/linkstate/__init__.py,sha256=v-2JyJlCB3qyhMNwMjmcNVOq4rkooqFU0LHH8Zo1jls,1064
294
- flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=4ahMj7TLe-GO2ctyeZ2BBRkviGv27s6x1NS_ETRJHP8,20514
295
- flwr/server/superlink/linkstate/linkstate.py,sha256=LWA5zRwN829GDAeSo5kmkzsMu0SkXa9qg4aG_0QN0uk,12159
291
+ flwr/server/superlink/linkstate/in_memory_linkstate.py,sha256=Ss64nq7MgbHwx4LOER-YV7vynkzC1K4XVNk542oPg7s,21305
292
+ flwr/server/superlink/linkstate/linkstate.py,sha256=YB3SryGNvt-bE-unYjoloJt9d3xAUPBNLK4mor8gk3M,11851
296
293
  flwr/server/superlink/linkstate/linkstate_factory.py,sha256=ISSMjDlwuN7swxjOeYlTNpI_kuZ8PGkMcJnf1dbhUSE,2069
297
- flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=YEXk_3avSF9T9sk5xxYwNeljLZ-qzg1zIAJOlkkmsX0,40146
298
- flwr/server/superlink/linkstate/utils.py,sha256=EpRehwI4NeEW3oINICPWP9STK49N0aszd5s5jtle7DQ,13602
294
+ flwr/server/superlink/linkstate/sqlite_linkstate.py,sha256=Wsx5gD6WRIMLlKarvVV1_dlS7jmfno-yTVW1-rgcIto,38276
295
+ flwr/server/superlink/linkstate/utils.py,sha256=UunwphV90p9XzvGFJpZr3C64HgIyXjhRPNBVS3HSL8M,12696
299
296
  flwr/server/superlink/simulation/__init__.py,sha256=mg-oapC9dkzEfjXPQFior5lpWj4g9kwbLovptyYM_g0,718
300
297
  flwr/server/superlink/simulation/simulationio_grpc.py,sha256=8aUrZZLdvprKUfLLqFID4aItus9beU6m1qLQYIPB7k0,2224
301
298
  flwr/server/superlink/simulation/simulationio_servicer.py,sha256=J_TmdqM-Bxgp-iPEI3tvCuBpykw1UX0FouMQalEYAF4,6907
302
299
  flwr/server/superlink/utils.py,sha256=KVb3K_g2vYfu9TnftcN0ewmev133WZcjuEePMm8d7GE,2137
303
300
  flwr/server/typing.py,sha256=5kaRLZuxTEse9A0g7aVna2VhYxU3wTq1f3d3mtw7kXs,1019
304
- flwr/server/utils/__init__.py,sha256=pltsPHJoXmUIr3utjwwYxu7_ZAGy5u4MVHzv9iA5Un8,908
301
+ flwr/server/utils/__init__.py,sha256=vnS9EAyVUsBOmWeYZXMoBcjeEFhqN4_KQQVk5EBiWG0,884
305
302
  flwr/server/utils/tensorboard.py,sha256=gEBD8w_5uaIfp5aw5RYH66lYZpd_SfkObHQ7eDd9MUk,5466
306
- flwr/server/utils/validator.py,sha256=BQ56tDrrOOG52q3RVeeCODz-oEBxu4L19wbfkBPdCqw,4419
303
+ flwr/server/utils/validator.py,sha256=11olMv1UyeaxLa1ci5gsJ0WALk7VwWGCQYCvLsZ56LY,3604
307
304
  flwr/server/workflow/__init__.py,sha256=SXY0XkwbkezFBxxrFB5hKUtmtAgnYISBkPouR1V71ss,902
308
305
  flwr/server/workflow/constant.py,sha256=q4DLdR8Krlxuewq2AQjwTL75hphxE5ODNz4AhViHMXk,1082
309
- flwr/server/workflow/default_workflows.py,sha256=UMC9JgdomKwxql5G0OV4AeRXWI-bMClaLAOn5OrZMnw,14073
306
+ flwr/server/workflow/default_workflows.py,sha256=RwDX7hXOI1-q4FH9A0onHvadqa5yXTzslpmShPpXodk,14152
310
307
  flwr/server/workflow/secure_aggregation/__init__.py,sha256=3XlgDOjD_hcukTGl6Bc1B-8M_dPlVSJuTbvXIbiO-Ic,880
311
308
  flwr/server/workflow/secure_aggregation/secagg_workflow.py,sha256=l2IdMdJjs1bgHs5vQgLSOVzar7v2oxUn46oCrnVE1rM,5839
312
- flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=rfn2etO1nb7u-1oRl-H9q3enJZz3shMINZaBB7rPsC4,29671
309
+ flwr/server/workflow/secure_aggregation/secaggplus_workflow.py,sha256=acfqyzOebe0WvXG2Z7yd7WtEtGJI3eNK2f0d_kjSdnM,29623
313
310
  flwr/simulation/__init__.py,sha256=5UcDVJNjFoSwWqHbGM1hKfTTUUNdwAtuoNvNrfvdkUY,1556
314
311
  flwr/simulation/app.py,sha256=xRVSJBnTXQUqWIYOzENfTnJlZ24CSNhWkhVEFxIu4I0,9758
315
312
  flwr/simulation/legacy_app.py,sha256=qpZI4Vvzr5TyWSLTRrMP-jN4rH2C25JI9nVSSjhFwSQ,15861
@@ -320,15 +317,15 @@ flwr/simulation/ray_transport/utils.py,sha256=wtbQhKQ4jGoiQDLJNQP17m1DSfL22ERhDB
320
317
  flwr/simulation/run_simulation.py,sha256=KFpdL_RxE8NHZ68ZdghmFS6rccmWkO_iQ-kLLE1WUn8,20336
321
318
  flwr/simulation/simulationio_connection.py,sha256=lcbEmdjb9RVEF2W5vSbf_J1zlTuv_ZAT_HLox1mqcfY,3494
322
319
  flwr/superexec/__init__.py,sha256=fcj366jh4RFby_vDwLroU4kepzqbnJgseZD_jUr_Mko,715
323
- flwr/superexec/app.py,sha256=Z6kYHWd62YL0Q4YKyCAbt_BcefNfbKH6V-jCC-1NkZM,1842
320
+ flwr/superexec/app.py,sha256=C0T2LMjuyF__I5V1FKfjtWtbsQPxK_EgL4vuhWIwG8s,1465
324
321
  flwr/superexec/deployment.py,sha256=wZ9G42gGS91knfplswh95MnQ83Fzu-rs6wcuNgDmmvY,6735
325
322
  flwr/superexec/exec_grpc.py,sha256=ttA9qoZzSLF0Mfk1L4hzOkMSNuj5rR58_kKBYwcyrAg,2864
326
- flwr/superexec/exec_servicer.py,sha256=X10ILT-AoGMrB3IgI2mBe9i-QcIVUAl9bucuqVOPYkU,8341
327
- flwr/superexec/exec_user_auth_interceptor.py,sha256=K06OU-l4LnYhTDg071hGJuOaQWEJbZsYi5qxUmmtiG0,3704
323
+ flwr/superexec/exec_servicer.py,sha256=4UpzJqPUHkBG2PZNe2lrX7XFVDOL6yw_HcoBHxuXE9A,8349
324
+ flwr/superexec/exec_user_auth_interceptor.py,sha256=YtvcjrD2hMVmZ3y9wHuGI6FwmG_Y__q112t4fFnypy0,3793
328
325
  flwr/superexec/executor.py,sha256=_B55WW2TD1fBINpabSSDRenVHXYmvlfhv-k8hJKU4lQ,3115
329
326
  flwr/superexec/simulation.py,sha256=WQDon15oqpMopAZnwRZoTICYCfHqtkvFSqiTQ2hLD_g,4088
330
- flwr-1.15.2.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
331
- flwr-1.15.2.dist-info/METADATA,sha256=Na-J8HhzZ-l0N3VuWx7piuwzxVbGMcDtKpaEaPpfRAQ,15853
332
- flwr-1.15.2.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
333
- flwr-1.15.2.dist-info/entry_points.txt,sha256=JlNxX3qhaV18_2yj5a3kJW1ESxm31cal9iS_N_pf1Rk,538
334
- flwr-1.15.2.dist-info/RECORD,,
327
+ flwr-1.16.0.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
328
+ flwr-1.16.0.dist-info/METADATA,sha256=XZntLbfGFhCUa0rXfSxewRwoW35RpmOYd4asj_A7y6Q,15857
329
+ flwr-1.16.0.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
330
+ flwr-1.16.0.dist-info/entry_points.txt,sha256=2-1L-GNKhwGw2_7_RoH55vHw2SIHjdAQy3HAVAWl9PY,374
331
+ flwr-1.16.0.dist-info/RECORD,,
@@ -1,8 +1,5 @@
1
1
  [console_scripts]
2
- flower-client-app=flwr.client.supernode:run_client_app
3
- flower-server-app=flwr.server.run_serverapp:run_server_app
4
2
  flower-simulation=flwr.simulation.run_simulation:run_simulation_from_cli
5
- flower-superexec=flwr.superexec.app:run_superexec
6
3
  flower-superlink=flwr.server.app:run_superlink
7
4
  flower-supernode=flwr.client.supernode.app:run_supernode
8
5
  flwr=flwr.cli.app:app
@@ -1,37 +0,0 @@
1
- # Copyright 2023 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
- """Task handling."""
16
-
17
-
18
- from flwr.proto.task_pb2 import TaskIns # pylint: disable=E0611
19
-
20
-
21
- def validate_task_ins(task_ins: TaskIns) -> bool:
22
- """Validate a TaskIns before it entering the message handling process.
23
-
24
- Parameters
25
- ----------
26
- task_ins: TaskIns
27
- The task instruction coming from the server.
28
-
29
- Returns
30
- -------
31
- is_valid: bool
32
- True if the TaskIns is deemed valid and therefore suitable for
33
- undergoing the message handling process, False otherwise.
34
- """
35
- if not (task_ins.HasField("task") and task_ins.task.HasField("recordset")):
36
- return False
37
- return True
flwr/proto/task_pb2.py DELETED
@@ -1,33 +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.1
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 recordset_pb2 as flwr_dot_proto_dot_recordset__pb2
17
- from flwr.proto import error_pb2 as flwr_dot_proto_dot_error__pb2
18
-
19
-
20
- 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/recordset.proto\x1a\x16\x66lwr/proto/error.proto\"\xf6\x01\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(\x01\x12\x14\n\x0c\x64\x65livered_at\x18\x04 \x01(\t\x12\x0b\n\x03ttl\x18\x06 \x01(\x01\x12\x10\n\x08\x61ncestry\x18\x07 \x03(\t\x12\x11\n\ttask_type\x18\x08 \x01(\t\x12(\n\trecordset\x18\t \x01(\x0b\x32\x15.flwr.proto.RecordSet\x12 \n\x05\x65rror\x18\n \x01(\x0b\x32\x11.flwr.proto.Error\"\\\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(\x04\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(\x04\x12\x1e\n\x04task\x18\x04 \x01(\x0b\x32\x10.flwr.proto.Taskb\x06proto3')
21
-
22
- _globals = globals()
23
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.task_pb2', _globals)
25
- if _descriptor._USE_C_DESCRIPTORS == False:
26
- DESCRIPTOR._options = None
27
- _globals['_TASK']._serialized_start=113
28
- _globals['_TASK']._serialized_end=359
29
- _globals['_TASKINS']._serialized_start=361
30
- _globals['_TASKINS']._serialized_end=453
31
- _globals['_TASKRES']._serialized_start=455
32
- _globals['_TASKRES']._serialized_end=547
33
- # @@protoc_insertion_point(module_scope)
flwr/proto/task_pb2.pyi DELETED
@@ -1,100 +0,0 @@
1
- """
2
- @generated by mypy-protobuf. Do not edit manually!
3
- isort:skip_file
4
- """
5
- import builtins
6
- import flwr.proto.error_pb2
7
- import flwr.proto.node_pb2
8
- import flwr.proto.recordset_pb2
9
- import google.protobuf.descriptor
10
- import google.protobuf.internal.containers
11
- import google.protobuf.message
12
- import typing
13
- import typing_extensions
14
-
15
- DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
16
-
17
- class Task(google.protobuf.message.Message):
18
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
19
- PRODUCER_FIELD_NUMBER: builtins.int
20
- CONSUMER_FIELD_NUMBER: builtins.int
21
- CREATED_AT_FIELD_NUMBER: builtins.int
22
- DELIVERED_AT_FIELD_NUMBER: builtins.int
23
- TTL_FIELD_NUMBER: builtins.int
24
- ANCESTRY_FIELD_NUMBER: builtins.int
25
- TASK_TYPE_FIELD_NUMBER: builtins.int
26
- RECORDSET_FIELD_NUMBER: builtins.int
27
- ERROR_FIELD_NUMBER: builtins.int
28
- @property
29
- def producer(self) -> flwr.proto.node_pb2.Node: ...
30
- @property
31
- def consumer(self) -> flwr.proto.node_pb2.Node: ...
32
- created_at: builtins.float
33
- delivered_at: typing.Text
34
- ttl: builtins.float
35
- @property
36
- def ancestry(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
37
- task_type: typing.Text
38
- @property
39
- def recordset(self) -> flwr.proto.recordset_pb2.RecordSet: ...
40
- @property
41
- def error(self) -> flwr.proto.error_pb2.Error: ...
42
- def __init__(self,
43
- *,
44
- producer: typing.Optional[flwr.proto.node_pb2.Node] = ...,
45
- consumer: typing.Optional[flwr.proto.node_pb2.Node] = ...,
46
- created_at: builtins.float = ...,
47
- delivered_at: typing.Text = ...,
48
- ttl: builtins.float = ...,
49
- ancestry: typing.Optional[typing.Iterable[typing.Text]] = ...,
50
- task_type: typing.Text = ...,
51
- recordset: typing.Optional[flwr.proto.recordset_pb2.RecordSet] = ...,
52
- error: typing.Optional[flwr.proto.error_pb2.Error] = ...,
53
- ) -> None: ...
54
- def HasField(self, field_name: typing_extensions.Literal["consumer",b"consumer","error",b"error","producer",b"producer","recordset",b"recordset"]) -> 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","error",b"error","producer",b"producer","recordset",b"recordset","task_type",b"task_type","ttl",b"ttl"]) -> None: ...
56
- global___Task = Task
57
-
58
- class TaskIns(google.protobuf.message.Message):
59
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
60
- TASK_ID_FIELD_NUMBER: builtins.int
61
- GROUP_ID_FIELD_NUMBER: builtins.int
62
- RUN_ID_FIELD_NUMBER: builtins.int
63
- TASK_FIELD_NUMBER: builtins.int
64
- task_id: typing.Text
65
- group_id: typing.Text
66
- run_id: builtins.int
67
- @property
68
- def task(self) -> global___Task: ...
69
- def __init__(self,
70
- *,
71
- task_id: typing.Text = ...,
72
- group_id: typing.Text = ...,
73
- run_id: builtins.int = ...,
74
- task: typing.Optional[global___Task] = ...,
75
- ) -> None: ...
76
- def HasField(self, field_name: typing_extensions.Literal["task",b"task"]) -> builtins.bool: ...
77
- def ClearField(self, field_name: typing_extensions.Literal["group_id",b"group_id","run_id",b"run_id","task",b"task","task_id",b"task_id"]) -> None: ...
78
- global___TaskIns = TaskIns
79
-
80
- class TaskRes(google.protobuf.message.Message):
81
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
82
- TASK_ID_FIELD_NUMBER: builtins.int
83
- GROUP_ID_FIELD_NUMBER: builtins.int
84
- RUN_ID_FIELD_NUMBER: builtins.int
85
- TASK_FIELD_NUMBER: builtins.int
86
- task_id: typing.Text
87
- group_id: typing.Text
88
- run_id: builtins.int
89
- @property
90
- def task(self) -> global___Task: ...
91
- def __init__(self,
92
- *,
93
- task_id: typing.Text = ...,
94
- group_id: typing.Text = ...,
95
- run_id: builtins.int = ...,
96
- task: typing.Optional[global___Task] = ...,
97
- ) -> None: ...
98
- def HasField(self, field_name: typing_extensions.Literal["task",b"task"]) -> builtins.bool: ...
99
- def ClearField(self, field_name: typing_extensions.Literal["group_id",b"group_id","run_id",b"run_id","task",b"task","task_id",b"task_id"]) -> None: ...
100
- global___TaskRes = TaskRes
@@ -1,4 +0,0 @@
1
- # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
- """Client and server classes corresponding to protobuf-defined services."""
3
- import grpc
4
-
@@ -1,4 +0,0 @@
1
- """
2
- @generated by mypy-protobuf. Do not edit manually!
3
- isort:skip_file
4
- """
File without changes
File without changes