flwr-nightly 1.17.0.dev20250320__py3-none-any.whl → 1.17.0.dev20250321__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 (49) hide show
  1. flwr/cli/run/run.py +5 -9
  2. flwr/client/client_app.py +10 -12
  3. flwr/client/grpc_client/connection.py +3 -3
  4. flwr/client/message_handler/message_handler.py +3 -3
  5. flwr/client/mod/__init__.py +2 -2
  6. flwr/client/mod/comms_mods.py +16 -22
  7. flwr/client/mod/secure_aggregation/secaggplus_mod.py +26 -26
  8. flwr/common/__init__.py +10 -4
  9. flwr/common/config.py +4 -4
  10. flwr/common/constant.py +1 -1
  11. flwr/common/record/__init__.py +6 -3
  12. flwr/common/record/{parametersrecord.py → arrayrecord.py} +74 -31
  13. flwr/common/record/{configsrecord.py → configrecord.py} +73 -27
  14. flwr/common/record/conversion_utils.py +1 -1
  15. flwr/common/record/{metricsrecord.py → metricrecord.py} +77 -31
  16. flwr/common/record/recorddict.py +95 -56
  17. flwr/common/recorddict_compat.py +54 -62
  18. flwr/common/secure_aggregation/secaggplus_constants.py +1 -1
  19. flwr/common/serde.py +42 -43
  20. flwr/common/typing.py +8 -8
  21. flwr/proto/exec_pb2.py +30 -30
  22. flwr/proto/exec_pb2.pyi +2 -2
  23. flwr/proto/recorddict_pb2.py +29 -29
  24. flwr/proto/recorddict_pb2.pyi +33 -33
  25. flwr/proto/run_pb2.py +2 -2
  26. flwr/proto/run_pb2.pyi +2 -2
  27. flwr/server/compat/grid_client_proxy.py +1 -1
  28. flwr/server/superlink/fleet/vce/backend/backend.py +2 -2
  29. flwr/server/superlink/fleet/vce/backend/raybackend.py +2 -2
  30. flwr/server/superlink/linkstate/in_memory_linkstate.py +4 -4
  31. flwr/server/superlink/linkstate/linkstate.py +4 -4
  32. flwr/server/superlink/linkstate/sqlite_linkstate.py +7 -7
  33. flwr/server/superlink/linkstate/utils.py +9 -9
  34. flwr/server/superlink/serverappio/serverappio_servicer.py +2 -2
  35. flwr/server/superlink/simulation/simulationio_servicer.py +2 -2
  36. flwr/server/workflow/default_workflows.py +27 -34
  37. flwr/server/workflow/secure_aggregation/secaggplus_workflow.py +32 -34
  38. flwr/simulation/app.py +2 -2
  39. flwr/simulation/ray_transport/ray_actor.py +4 -2
  40. flwr/simulation/run_simulation.py +2 -2
  41. flwr/superexec/deployment.py +3 -3
  42. flwr/superexec/exec_servicer.py +2 -2
  43. flwr/superexec/executor.py +3 -3
  44. flwr/superexec/simulation.py +2 -2
  45. {flwr_nightly-1.17.0.dev20250320.dist-info → flwr_nightly-1.17.0.dev20250321.dist-info}/METADATA +1 -1
  46. {flwr_nightly-1.17.0.dev20250320.dist-info → flwr_nightly-1.17.0.dev20250321.dist-info}/RECORD +49 -49
  47. {flwr_nightly-1.17.0.dev20250320.dist-info → flwr_nightly-1.17.0.dev20250321.dist-info}/LICENSE +0 -0
  48. {flwr_nightly-1.17.0.dev20250320.dist-info → flwr_nightly-1.17.0.dev20250321.dist-info}/WHEEL +0 -0
  49. {flwr_nightly-1.17.0.dev20250320.dist-info → flwr_nightly-1.17.0.dev20250321.dist-info}/entry_points.txt +0 -0
flwr/common/serde.py CHANGED
@@ -29,13 +29,13 @@ from flwr.proto.message_pb2 import Context as ProtoContext
29
29
  from flwr.proto.message_pb2 import Message as ProtoMessage
30
30
  from flwr.proto.message_pb2 import Metadata as ProtoMetadata
31
31
  from flwr.proto.recorddict_pb2 import Array as ProtoArray
32
+ from flwr.proto.recorddict_pb2 import ArrayRecord as ProtoArrayRecord
32
33
  from flwr.proto.recorddict_pb2 import BoolList, BytesList
33
- from flwr.proto.recorddict_pb2 import ConfigsRecord as ProtoConfigsRecord
34
- from flwr.proto.recorddict_pb2 import ConfigsRecordValue as ProtoConfigsRecordValue
34
+ from flwr.proto.recorddict_pb2 import ConfigRecord as ProtoConfigRecord
35
+ from flwr.proto.recorddict_pb2 import ConfigRecordValue as ProtoConfigRecordValue
35
36
  from flwr.proto.recorddict_pb2 import DoubleList
36
- from flwr.proto.recorddict_pb2 import MetricsRecord as ProtoMetricsRecord
37
- from flwr.proto.recorddict_pb2 import MetricsRecordValue as ProtoMetricsRecordValue
38
- from flwr.proto.recorddict_pb2 import ParametersRecord as ProtoParametersRecord
37
+ from flwr.proto.recorddict_pb2 import MetricRecord as ProtoMetricRecord
38
+ from flwr.proto.recorddict_pb2 import MetricRecordValue as ProtoMetricRecordValue
39
39
  from flwr.proto.recorddict_pb2 import RecordDict as ProtoRecordDict
40
40
  from flwr.proto.recorddict_pb2 import SintList, StringList, UintList
41
41
  from flwr.proto.run_pb2 import Run as ProtoRun
@@ -53,10 +53,10 @@ from flwr.proto.transport_pb2 import (
53
53
  # pylint: enable=E0611
54
54
  from . import (
55
55
  Array,
56
- ConfigsRecord,
56
+ ArrayRecord,
57
+ ConfigRecord,
57
58
  Context,
58
- MetricsRecord,
59
- ParametersRecord,
59
+ MetricRecord,
60
60
  RecordDict,
61
61
  typing,
62
62
  )
@@ -483,19 +483,19 @@ def array_from_proto(array_proto: ProtoArray) -> Array:
483
483
  )
484
484
 
485
485
 
486
- def parameters_record_to_proto(record: ParametersRecord) -> ProtoParametersRecord:
487
- """Serialize ParametersRecord to ProtoBuf."""
488
- return ProtoParametersRecord(
486
+ def array_record_to_proto(record: ArrayRecord) -> ProtoArrayRecord:
487
+ """Serialize ArrayRecord to ProtoBuf."""
488
+ return ProtoArrayRecord(
489
489
  data_keys=record.keys(),
490
490
  data_values=map(array_to_proto, record.values()),
491
491
  )
492
492
 
493
493
 
494
- def parameters_record_from_proto(
495
- record_proto: ProtoParametersRecord,
496
- ) -> ParametersRecord:
497
- """Deserialize ParametersRecord from ProtoBuf."""
498
- return ParametersRecord(
494
+ def array_record_from_proto(
495
+ record_proto: ProtoArrayRecord,
496
+ ) -> ArrayRecord:
497
+ """Deserialize ArrayRecord from ProtoBuf."""
498
+ return ArrayRecord(
499
499
  array_dict=OrderedDict(
500
500
  zip(record_proto.data_keys, map(array_from_proto, record_proto.data_values))
501
501
  ),
@@ -503,40 +503,40 @@ def parameters_record_from_proto(
503
503
  )
504
504
 
505
505
 
506
- def metrics_record_to_proto(record: MetricsRecord) -> ProtoMetricsRecord:
507
- """Serialize MetricsRecord to ProtoBuf."""
508
- return ProtoMetricsRecord(
509
- data=_record_value_dict_to_proto(record, [float, int], ProtoMetricsRecordValue)
506
+ def metric_record_to_proto(record: MetricRecord) -> ProtoMetricRecord:
507
+ """Serialize MetricRecord to ProtoBuf."""
508
+ return ProtoMetricRecord(
509
+ data=_record_value_dict_to_proto(record, [float, int], ProtoMetricRecordValue)
510
510
  )
511
511
 
512
512
 
513
- def metrics_record_from_proto(record_proto: ProtoMetricsRecord) -> MetricsRecord:
514
- """Deserialize MetricsRecord from ProtoBuf."""
515
- return MetricsRecord(
516
- metrics_dict=cast(
517
- dict[str, typing.MetricsRecordValues],
513
+ def metric_record_from_proto(record_proto: ProtoMetricRecord) -> MetricRecord:
514
+ """Deserialize MetricRecord from ProtoBuf."""
515
+ return MetricRecord(
516
+ metric_dict=cast(
517
+ dict[str, typing.MetricRecordValues],
518
518
  _record_value_dict_from_proto(record_proto.data),
519
519
  ),
520
520
  keep_input=False,
521
521
  )
522
522
 
523
523
 
524
- def configs_record_to_proto(record: ConfigsRecord) -> ProtoConfigsRecord:
525
- """Serialize ConfigsRecord to ProtoBuf."""
526
- return ProtoConfigsRecord(
524
+ def config_record_to_proto(record: ConfigRecord) -> ProtoConfigRecord:
525
+ """Serialize ConfigRecord to ProtoBuf."""
526
+ return ProtoConfigRecord(
527
527
  data=_record_value_dict_to_proto(
528
528
  record,
529
529
  [bool, int, float, str, bytes],
530
- ProtoConfigsRecordValue,
530
+ ProtoConfigRecordValue,
531
531
  )
532
532
  )
533
533
 
534
534
 
535
- def configs_record_from_proto(record_proto: ProtoConfigsRecord) -> ConfigsRecord:
536
- """Deserialize ConfigsRecord from ProtoBuf."""
537
- return ConfigsRecord(
538
- configs_dict=cast(
539
- dict[str, typing.ConfigsRecordValues],
535
+ def config_record_from_proto(record_proto: ProtoConfigRecord) -> ConfigRecord:
536
+ """Deserialize ConfigRecord from ProtoBuf."""
537
+ return ConfigRecord(
538
+ config_dict=cast(
539
+ dict[str, typing.ConfigRecordValues],
540
540
  _record_value_dict_from_proto(record_proto.data),
541
541
  ),
542
542
  keep_input=False,
@@ -564,15 +564,14 @@ def error_from_proto(error_proto: ProtoError) -> Error:
564
564
  def recorddict_to_proto(recorddict: RecordDict) -> ProtoRecordDict:
565
565
  """Serialize RecordDict to ProtoBuf."""
566
566
  return ProtoRecordDict(
567
- parameters={
568
- k: parameters_record_to_proto(v)
569
- for k, v in recorddict.parameters_records.items()
567
+ arrays={
568
+ k: array_record_to_proto(v) for k, v in recorddict.array_records.items()
570
569
  },
571
570
  metrics={
572
- k: metrics_record_to_proto(v) for k, v in recorddict.metrics_records.items()
571
+ k: metric_record_to_proto(v) for k, v in recorddict.metric_records.items()
573
572
  },
574
573
  configs={
575
- k: configs_record_to_proto(v) for k, v in recorddict.configs_records.items()
574
+ k: config_record_to_proto(v) for k, v in recorddict.config_records.items()
576
575
  },
577
576
  )
578
577
 
@@ -580,12 +579,12 @@ def recorddict_to_proto(recorddict: RecordDict) -> ProtoRecordDict:
580
579
  def recorddict_from_proto(recorddict_proto: ProtoRecordDict) -> RecordDict:
581
580
  """Deserialize RecordDict from ProtoBuf."""
582
581
  ret = RecordDict()
583
- for k, p_record_proto in recorddict_proto.parameters.items():
584
- ret[k] = parameters_record_from_proto(p_record_proto)
582
+ for k, arr_record_proto in recorddict_proto.arrays.items():
583
+ ret[k] = array_record_from_proto(arr_record_proto)
585
584
  for k, m_record_proto in recorddict_proto.metrics.items():
586
- ret[k] = metrics_record_from_proto(m_record_proto)
585
+ ret[k] = metric_record_from_proto(m_record_proto)
587
586
  for k, c_record_proto in recorddict_proto.configs.items():
588
- ret[k] = configs_record_from_proto(c_record_proto)
587
+ ret[k] = config_record_from_proto(c_record_proto)
589
588
  return ret
590
589
 
591
590
 
flwr/common/typing.py CHANGED
@@ -45,14 +45,14 @@ Value = Union[
45
45
  list[str],
46
46
  ]
47
47
 
48
- # Value types for common.MetricsRecord
49
- MetricsScalar = Union[int, float]
50
- MetricsScalarList = Union[list[int], list[float]]
51
- MetricsRecordValues = Union[MetricsScalar, MetricsScalarList]
52
- # Value types for common.ConfigsRecord
53
- ConfigsScalar = Union[MetricsScalar, str, bytes, bool]
54
- ConfigsScalarList = Union[MetricsScalarList, list[str], list[bytes], list[bool]]
55
- ConfigsRecordValues = Union[ConfigsScalar, ConfigsScalarList]
48
+ # Value types for common.MetricRecord
49
+ MetricScalar = Union[int, float]
50
+ MetricScalarList = Union[list[int], list[float]]
51
+ MetricRecordValues = Union[MetricScalar, MetricScalarList]
52
+ # Value types for common.ConfigRecord
53
+ ConfigScalar = Union[MetricScalar, str, bytes, bool]
54
+ ConfigScalarList = Union[MetricScalarList, list[str], list[bytes], list[bool]]
55
+ ConfigRecordValues = Union[ConfigScalar, ConfigScalarList]
56
56
 
57
57
  Metrics = dict[str, Scalar]
58
58
  MetricsAggregationFn = Callable[[list[tuple[int, Metrics]]], Metrics]
flwr/proto/exec_pb2.py CHANGED
@@ -18,7 +18,7 @@ from flwr.proto import recorddict_pb2 as flwr_dot_proto_dot_recorddict__pb2
18
18
  from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
19
19
 
20
20
 
21
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/exec.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x1a\x66lwr/proto/transport.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x14\x66lwr/proto/run.proto\"\xfb\x01\n\x0fStartRunRequest\x12\x1c\n\x03\x66\x61\x62\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Fab\x12H\n\x0foverride_config\x18\x02 \x03(\x0b\x32/.flwr.proto.StartRunRequest.OverrideConfigEntry\x12\x35\n\x12\x66\x65\x64\x65ration_options\x18\x03 \x01(\x0b\x32\x19.flwr.proto.ConfigsRecord\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"2\n\x10StartRunResponse\x12\x13\n\x06run_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\t\n\x07_run_id\"<\n\x11StreamLogsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x17\n\x0f\x61\x66ter_timestamp\x18\x02 \x01(\x01\"B\n\x12StreamLogsResponse\x12\x12\n\nlog_output\x18\x01 \x01(\t\x12\x18\n\x10latest_timestamp\x18\x02 \x01(\x01\"1\n\x0fListRunsRequest\x12\x13\n\x06run_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\t\n\x07_run_id\"\x9d\x01\n\x10ListRunsResponse\x12;\n\x08run_dict\x18\x01 \x03(\x0b\x32).flwr.proto.ListRunsResponse.RunDictEntry\x12\x0b\n\x03now\x18\x02 \x01(\t\x1a?\n\x0cRunDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run:\x02\x38\x01\"\x18\n\x16GetLoginDetailsRequest\"\x8a\x01\n\x17GetLoginDetailsResponse\x12\x11\n\tauth_type\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65vice_code\x18\x02 \x01(\t\x12!\n\x19verification_uri_complete\x18\x03 \x01(\t\x12\x12\n\nexpires_in\x18\x04 \x01(\x03\x12\x10\n\x08interval\x18\x05 \x01(\x03\"+\n\x14GetAuthTokensRequest\x12\x13\n\x0b\x64\x65vice_code\x18\x01 \x01(\t\"D\n\x15GetAuthTokensResponse\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x01 \x01(\t\x12\x15\n\rrefresh_token\x18\x02 \x01(\t\" \n\x0eStopRunRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"\"\n\x0fStopRunResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x32\xe5\x03\n\x04\x45xec\x12G\n\x08StartRun\x12\x1b.flwr.proto.StartRunRequest\x1a\x1c.flwr.proto.StartRunResponse\"\x00\x12\x44\n\x07StopRun\x12\x1a.flwr.proto.StopRunRequest\x1a\x1b.flwr.proto.StopRunResponse\"\x00\x12O\n\nStreamLogs\x12\x1d.flwr.proto.StreamLogsRequest\x1a\x1e.flwr.proto.StreamLogsResponse\"\x00\x30\x01\x12G\n\x08ListRuns\x12\x1b.flwr.proto.ListRunsRequest\x1a\x1c.flwr.proto.ListRunsResponse\"\x00\x12\\\n\x0fGetLoginDetails\x12\".flwr.proto.GetLoginDetailsRequest\x1a#.flwr.proto.GetLoginDetailsResponse\"\x00\x12V\n\rGetAuthTokens\x12 .flwr.proto.GetAuthTokensRequest\x1a!.flwr.proto.GetAuthTokensResponse\"\x00\x62\x06proto3')
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x66lwr/proto/exec.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x1a\x66lwr/proto/transport.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x14\x66lwr/proto/run.proto\"\xfa\x01\n\x0fStartRunRequest\x12\x1c\n\x03\x66\x61\x62\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Fab\x12H\n\x0foverride_config\x18\x02 \x03(\x0b\x32/.flwr.proto.StartRunRequest.OverrideConfigEntry\x12\x34\n\x12\x66\x65\x64\x65ration_options\x18\x03 \x01(\x0b\x32\x18.flwr.proto.ConfigRecord\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"2\n\x10StartRunResponse\x12\x13\n\x06run_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\t\n\x07_run_id\"<\n\x11StreamLogsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x17\n\x0f\x61\x66ter_timestamp\x18\x02 \x01(\x01\"B\n\x12StreamLogsResponse\x12\x12\n\nlog_output\x18\x01 \x01(\t\x12\x18\n\x10latest_timestamp\x18\x02 \x01(\x01\"1\n\x0fListRunsRequest\x12\x13\n\x06run_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\t\n\x07_run_id\"\x9d\x01\n\x10ListRunsResponse\x12;\n\x08run_dict\x18\x01 \x03(\x0b\x32).flwr.proto.ListRunsResponse.RunDictEntry\x12\x0b\n\x03now\x18\x02 \x01(\t\x1a?\n\x0cRunDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\x1e\n\x05value\x18\x02 \x01(\x0b\x32\x0f.flwr.proto.Run:\x02\x38\x01\"\x18\n\x16GetLoginDetailsRequest\"\x8a\x01\n\x17GetLoginDetailsResponse\x12\x11\n\tauth_type\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65vice_code\x18\x02 \x01(\t\x12!\n\x19verification_uri_complete\x18\x03 \x01(\t\x12\x12\n\nexpires_in\x18\x04 \x01(\x03\x12\x10\n\x08interval\x18\x05 \x01(\x03\"+\n\x14GetAuthTokensRequest\x12\x13\n\x0b\x64\x65vice_code\x18\x01 \x01(\t\"D\n\x15GetAuthTokensResponse\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x01 \x01(\t\x12\x15\n\rrefresh_token\x18\x02 \x01(\t\" \n\x0eStopRunRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"\"\n\x0fStopRunResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x32\xe5\x03\n\x04\x45xec\x12G\n\x08StartRun\x12\x1b.flwr.proto.StartRunRequest\x1a\x1c.flwr.proto.StartRunResponse\"\x00\x12\x44\n\x07StopRun\x12\x1a.flwr.proto.StopRunRequest\x1a\x1b.flwr.proto.StopRunResponse\"\x00\x12O\n\nStreamLogs\x12\x1d.flwr.proto.StreamLogsRequest\x1a\x1e.flwr.proto.StreamLogsResponse\"\x00\x30\x01\x12G\n\x08ListRuns\x12\x1b.flwr.proto.ListRunsRequest\x1a\x1c.flwr.proto.ListRunsResponse\"\x00\x12\\\n\x0fGetLoginDetails\x12\".flwr.proto.GetLoginDetailsRequest\x1a#.flwr.proto.GetLoginDetailsResponse\"\x00\x12V\n\rGetAuthTokens\x12 .flwr.proto.GetAuthTokensRequest\x1a!.flwr.proto.GetAuthTokensResponse\"\x00\x62\x06proto3')
22
22
 
23
23
  _globals = globals()
24
24
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -30,33 +30,33 @@ if _descriptor._USE_C_DESCRIPTORS == False:
30
30
  _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._options = None
31
31
  _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_options = b'8\001'
32
32
  _globals['_STARTRUNREQUEST']._serialized_start=139
33
- _globals['_STARTRUNREQUEST']._serialized_end=390
34
- _globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_start=317
35
- _globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_end=390
36
- _globals['_STARTRUNRESPONSE']._serialized_start=392
37
- _globals['_STARTRUNRESPONSE']._serialized_end=442
38
- _globals['_STREAMLOGSREQUEST']._serialized_start=444
39
- _globals['_STREAMLOGSREQUEST']._serialized_end=504
40
- _globals['_STREAMLOGSRESPONSE']._serialized_start=506
41
- _globals['_STREAMLOGSRESPONSE']._serialized_end=572
42
- _globals['_LISTRUNSREQUEST']._serialized_start=574
43
- _globals['_LISTRUNSREQUEST']._serialized_end=623
44
- _globals['_LISTRUNSRESPONSE']._serialized_start=626
45
- _globals['_LISTRUNSRESPONSE']._serialized_end=783
46
- _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_start=720
47
- _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_end=783
48
- _globals['_GETLOGINDETAILSREQUEST']._serialized_start=785
49
- _globals['_GETLOGINDETAILSREQUEST']._serialized_end=809
50
- _globals['_GETLOGINDETAILSRESPONSE']._serialized_start=812
51
- _globals['_GETLOGINDETAILSRESPONSE']._serialized_end=950
52
- _globals['_GETAUTHTOKENSREQUEST']._serialized_start=952
53
- _globals['_GETAUTHTOKENSREQUEST']._serialized_end=995
54
- _globals['_GETAUTHTOKENSRESPONSE']._serialized_start=997
55
- _globals['_GETAUTHTOKENSRESPONSE']._serialized_end=1065
56
- _globals['_STOPRUNREQUEST']._serialized_start=1067
57
- _globals['_STOPRUNREQUEST']._serialized_end=1099
58
- _globals['_STOPRUNRESPONSE']._serialized_start=1101
59
- _globals['_STOPRUNRESPONSE']._serialized_end=1135
60
- _globals['_EXEC']._serialized_start=1138
61
- _globals['_EXEC']._serialized_end=1623
33
+ _globals['_STARTRUNREQUEST']._serialized_end=389
34
+ _globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_start=316
35
+ _globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_end=389
36
+ _globals['_STARTRUNRESPONSE']._serialized_start=391
37
+ _globals['_STARTRUNRESPONSE']._serialized_end=441
38
+ _globals['_STREAMLOGSREQUEST']._serialized_start=443
39
+ _globals['_STREAMLOGSREQUEST']._serialized_end=503
40
+ _globals['_STREAMLOGSRESPONSE']._serialized_start=505
41
+ _globals['_STREAMLOGSRESPONSE']._serialized_end=571
42
+ _globals['_LISTRUNSREQUEST']._serialized_start=573
43
+ _globals['_LISTRUNSREQUEST']._serialized_end=622
44
+ _globals['_LISTRUNSRESPONSE']._serialized_start=625
45
+ _globals['_LISTRUNSRESPONSE']._serialized_end=782
46
+ _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_start=719
47
+ _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_end=782
48
+ _globals['_GETLOGINDETAILSREQUEST']._serialized_start=784
49
+ _globals['_GETLOGINDETAILSREQUEST']._serialized_end=808
50
+ _globals['_GETLOGINDETAILSRESPONSE']._serialized_start=811
51
+ _globals['_GETLOGINDETAILSRESPONSE']._serialized_end=949
52
+ _globals['_GETAUTHTOKENSREQUEST']._serialized_start=951
53
+ _globals['_GETAUTHTOKENSREQUEST']._serialized_end=994
54
+ _globals['_GETAUTHTOKENSRESPONSE']._serialized_start=996
55
+ _globals['_GETAUTHTOKENSRESPONSE']._serialized_end=1064
56
+ _globals['_STOPRUNREQUEST']._serialized_start=1066
57
+ _globals['_STOPRUNREQUEST']._serialized_end=1098
58
+ _globals['_STOPRUNRESPONSE']._serialized_start=1100
59
+ _globals['_STOPRUNRESPONSE']._serialized_end=1134
60
+ _globals['_EXEC']._serialized_start=1137
61
+ _globals['_EXEC']._serialized_end=1622
62
62
  # @@protoc_insertion_point(module_scope)
flwr/proto/exec_pb2.pyi CHANGED
@@ -40,12 +40,12 @@ class StartRunRequest(google.protobuf.message.Message):
40
40
  @property
41
41
  def override_config(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, flwr.proto.transport_pb2.Scalar]: ...
42
42
  @property
43
- def federation_options(self) -> flwr.proto.recorddict_pb2.ConfigsRecord: ...
43
+ def federation_options(self) -> flwr.proto.recorddict_pb2.ConfigRecord: ...
44
44
  def __init__(self,
45
45
  *,
46
46
  fab: typing.Optional[flwr.proto.fab_pb2.Fab] = ...,
47
47
  override_config: typing.Optional[typing.Mapping[typing.Text, flwr.proto.transport_pb2.Scalar]] = ...,
48
- federation_options: typing.Optional[flwr.proto.recorddict_pb2.ConfigsRecord] = ...,
48
+ federation_options: typing.Optional[flwr.proto.recorddict_pb2.ConfigRecord] = ...,
49
49
  ) -> None: ...
50
50
  def HasField(self, field_name: typing_extensions.Literal["fab",b"fab","federation_options",b"federation_options"]) -> builtins.bool: ...
51
51
  def ClearField(self, field_name: typing_extensions.Literal["fab",b"fab","federation_options",b"federation_options","override_config",b"override_config"]) -> None: ...
@@ -14,19 +14,19 @@ _sym_db = _symbol_database.Default()
14
14
 
15
15
 
16
16
 
17
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lwr/proto/recorddict.proto\x12\nflwr.proto\"\x1a\n\nDoubleList\x12\x0c\n\x04vals\x18\x01 \x03(\x01\"\x18\n\x08SintList\x12\x0c\n\x04vals\x18\x01 \x03(\x12\"\x18\n\x08UintList\x12\x0c\n\x04vals\x18\x01 \x03(\x04\"\x18\n\x08\x42oolList\x12\x0c\n\x04vals\x18\x01 \x03(\x08\"\x1a\n\nStringList\x12\x0c\n\x04vals\x18\x01 \x03(\t\"\x19\n\tBytesList\x12\x0c\n\x04vals\x18\x01 \x03(\x0c\"B\n\x05\x41rray\x12\r\n\x05\x64type\x18\x01 \x01(\t\x12\r\n\x05shape\x18\x02 \x03(\x05\x12\r\n\x05stype\x18\x03 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\"\xd8\x01\n\x12MetricsRecordValue\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x10\n\x06uint64\x18\x03 \x01(\x04H\x00\x12-\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x16.flwr.proto.DoubleListH\x00\x12)\n\tsint_list\x18\x16 \x01(\x0b\x32\x14.flwr.proto.SintListH\x00\x12)\n\tuint_list\x18\x17 \x01(\x0b\x32\x14.flwr.proto.UintListH\x00\x42\x07\n\x05value\"\x92\x03\n\x12\x43onfigsRecordValue\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x10\n\x06uint64\x18\x03 \x01(\x04H\x00\x12\x0e\n\x04\x62ool\x18\x04 \x01(\x08H\x00\x12\x10\n\x06string\x18\x05 \x01(\tH\x00\x12\x0f\n\x05\x62ytes\x18\x06 \x01(\x0cH\x00\x12-\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x16.flwr.proto.DoubleListH\x00\x12)\n\tsint_list\x18\x16 \x01(\x0b\x32\x14.flwr.proto.SintListH\x00\x12)\n\tuint_list\x18\x17 \x01(\x0b\x32\x14.flwr.proto.UintListH\x00\x12)\n\tbool_list\x18\x18 \x01(\x0b\x32\x14.flwr.proto.BoolListH\x00\x12-\n\x0bstring_list\x18\x19 \x01(\x0b\x32\x16.flwr.proto.StringListH\x00\x12+\n\nbytes_list\x18\x1a \x01(\x0b\x32\x15.flwr.proto.BytesListH\x00\x42\x07\n\x05value\"M\n\x10ParametersRecord\x12\x11\n\tdata_keys\x18\x01 \x03(\t\x12&\n\x0b\x64\x61ta_values\x18\x02 \x03(\x0b\x32\x11.flwr.proto.Array\"\x8f\x01\n\rMetricsRecord\x12\x31\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32#.flwr.proto.MetricsRecord.DataEntry\x1aK\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.flwr.proto.MetricsRecordValue:\x02\x38\x01\"\x8f\x01\n\rConfigsRecord\x12\x31\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32#.flwr.proto.ConfigsRecord.DataEntry\x1aK\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.flwr.proto.ConfigsRecordValue:\x02\x38\x01\"\x9b\x03\n\nRecordDict\x12:\n\nparameters\x18\x01 \x03(\x0b\x32&.flwr.proto.RecordDict.ParametersEntry\x12\x34\n\x07metrics\x18\x02 \x03(\x0b\x32#.flwr.proto.RecordDict.MetricsEntry\x12\x34\n\x07\x63onfigs\x18\x03 \x03(\x0b\x32#.flwr.proto.RecordDict.ConfigsEntry\x1aO\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.flwr.proto.ParametersRecord:\x02\x38\x01\x1aI\n\x0cMetricsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.flwr.proto.MetricsRecord:\x02\x38\x01\x1aI\n\x0c\x43onfigsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.flwr.proto.ConfigsRecord:\x02\x38\x01\x62\x06proto3')
17
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lwr/proto/recorddict.proto\x12\nflwr.proto\"\x1a\n\nDoubleList\x12\x0c\n\x04vals\x18\x01 \x03(\x01\"\x18\n\x08SintList\x12\x0c\n\x04vals\x18\x01 \x03(\x12\"\x18\n\x08UintList\x12\x0c\n\x04vals\x18\x01 \x03(\x04\"\x18\n\x08\x42oolList\x12\x0c\n\x04vals\x18\x01 \x03(\x08\"\x1a\n\nStringList\x12\x0c\n\x04vals\x18\x01 \x03(\t\"\x19\n\tBytesList\x12\x0c\n\x04vals\x18\x01 \x03(\x0c\"B\n\x05\x41rray\x12\r\n\x05\x64type\x18\x01 \x01(\t\x12\r\n\x05shape\x18\x02 \x03(\x05\x12\r\n\x05stype\x18\x03 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\"\xd7\x01\n\x11MetricRecordValue\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x10\n\x06uint64\x18\x03 \x01(\x04H\x00\x12-\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x16.flwr.proto.DoubleListH\x00\x12)\n\tsint_list\x18\x16 \x01(\x0b\x32\x14.flwr.proto.SintListH\x00\x12)\n\tuint_list\x18\x17 \x01(\x0b\x32\x14.flwr.proto.UintListH\x00\x42\x07\n\x05value\"\x91\x03\n\x11\x43onfigRecordValue\x12\x10\n\x06\x64ouble\x18\x01 \x01(\x01H\x00\x12\x10\n\x06sint64\x18\x02 \x01(\x12H\x00\x12\x10\n\x06uint64\x18\x03 \x01(\x04H\x00\x12\x0e\n\x04\x62ool\x18\x04 \x01(\x08H\x00\x12\x10\n\x06string\x18\x05 \x01(\tH\x00\x12\x0f\n\x05\x62ytes\x18\x06 \x01(\x0cH\x00\x12-\n\x0b\x64ouble_list\x18\x15 \x01(\x0b\x32\x16.flwr.proto.DoubleListH\x00\x12)\n\tsint_list\x18\x16 \x01(\x0b\x32\x14.flwr.proto.SintListH\x00\x12)\n\tuint_list\x18\x17 \x01(\x0b\x32\x14.flwr.proto.UintListH\x00\x12)\n\tbool_list\x18\x18 \x01(\x0b\x32\x14.flwr.proto.BoolListH\x00\x12-\n\x0bstring_list\x18\x19 \x01(\x0b\x32\x16.flwr.proto.StringListH\x00\x12+\n\nbytes_list\x18\x1a \x01(\x0b\x32\x15.flwr.proto.BytesListH\x00\x42\x07\n\x05value\"H\n\x0b\x41rrayRecord\x12\x11\n\tdata_keys\x18\x01 \x03(\t\x12&\n\x0b\x64\x61ta_values\x18\x02 \x03(\x0b\x32\x11.flwr.proto.Array\"\x8c\x01\n\x0cMetricRecord\x12\x30\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32\".flwr.proto.MetricRecord.DataEntry\x1aJ\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.flwr.proto.MetricRecordValue:\x02\x38\x01\"\x8c\x01\n\x0c\x43onfigRecord\x12\x30\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32\".flwr.proto.ConfigRecord.DataEntry\x1aJ\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.flwr.proto.ConfigRecordValue:\x02\x38\x01\"\x88\x03\n\nRecordDict\x12\x32\n\x06\x61rrays\x18\x01 \x03(\x0b\x32\".flwr.proto.RecordDict.ArraysEntry\x12\x34\n\x07metrics\x18\x02 \x03(\x0b\x32#.flwr.proto.RecordDict.MetricsEntry\x12\x34\n\x07\x63onfigs\x18\x03 \x03(\x0b\x32#.flwr.proto.RecordDict.ConfigsEntry\x1a\x46\n\x0b\x41rraysEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.flwr.proto.ArrayRecord:\x02\x38\x01\x1aH\n\x0cMetricsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x18.flwr.proto.MetricRecord:\x02\x38\x01\x1aH\n\x0c\x43onfigsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x18.flwr.proto.ConfigRecord:\x02\x38\x01\x62\x06proto3')
18
18
 
19
19
  _globals = globals()
20
20
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
21
21
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.recorddict_pb2', _globals)
22
22
  if _descriptor._USE_C_DESCRIPTORS == False:
23
23
  DESCRIPTOR._options = None
24
- _globals['_METRICSRECORD_DATAENTRY']._options = None
25
- _globals['_METRICSRECORD_DATAENTRY']._serialized_options = b'8\001'
26
- _globals['_CONFIGSRECORD_DATAENTRY']._options = None
27
- _globals['_CONFIGSRECORD_DATAENTRY']._serialized_options = b'8\001'
28
- _globals['_RECORDDICT_PARAMETERSENTRY']._options = None
29
- _globals['_RECORDDICT_PARAMETERSENTRY']._serialized_options = b'8\001'
24
+ _globals['_METRICRECORD_DATAENTRY']._options = None
25
+ _globals['_METRICRECORD_DATAENTRY']._serialized_options = b'8\001'
26
+ _globals['_CONFIGRECORD_DATAENTRY']._options = None
27
+ _globals['_CONFIGRECORD_DATAENTRY']._serialized_options = b'8\001'
28
+ _globals['_RECORDDICT_ARRAYSENTRY']._options = None
29
+ _globals['_RECORDDICT_ARRAYSENTRY']._serialized_options = b'8\001'
30
30
  _globals['_RECORDDICT_METRICSENTRY']._options = None
31
31
  _globals['_RECORDDICT_METRICSENTRY']._serialized_options = b'8\001'
32
32
  _globals['_RECORDDICT_CONFIGSENTRY']._options = None
@@ -45,26 +45,26 @@ if _descriptor._USE_C_DESCRIPTORS == False:
45
45
  _globals['_BYTESLIST']._serialized_end=202
46
46
  _globals['_ARRAY']._serialized_start=204
47
47
  _globals['_ARRAY']._serialized_end=270
48
- _globals['_METRICSRECORDVALUE']._serialized_start=273
49
- _globals['_METRICSRECORDVALUE']._serialized_end=489
50
- _globals['_CONFIGSRECORDVALUE']._serialized_start=492
51
- _globals['_CONFIGSRECORDVALUE']._serialized_end=894
52
- _globals['_PARAMETERSRECORD']._serialized_start=896
53
- _globals['_PARAMETERSRECORD']._serialized_end=973
54
- _globals['_METRICSRECORD']._serialized_start=976
55
- _globals['_METRICSRECORD']._serialized_end=1119
56
- _globals['_METRICSRECORD_DATAENTRY']._serialized_start=1044
57
- _globals['_METRICSRECORD_DATAENTRY']._serialized_end=1119
58
- _globals['_CONFIGSRECORD']._serialized_start=1122
59
- _globals['_CONFIGSRECORD']._serialized_end=1265
60
- _globals['_CONFIGSRECORD_DATAENTRY']._serialized_start=1190
61
- _globals['_CONFIGSRECORD_DATAENTRY']._serialized_end=1265
62
- _globals['_RECORDDICT']._serialized_start=1268
63
- _globals['_RECORDDICT']._serialized_end=1679
64
- _globals['_RECORDDICT_PARAMETERSENTRY']._serialized_start=1450
65
- _globals['_RECORDDICT_PARAMETERSENTRY']._serialized_end=1529
66
- _globals['_RECORDDICT_METRICSENTRY']._serialized_start=1531
67
- _globals['_RECORDDICT_METRICSENTRY']._serialized_end=1604
68
- _globals['_RECORDDICT_CONFIGSENTRY']._serialized_start=1606
69
- _globals['_RECORDDICT_CONFIGSENTRY']._serialized_end=1679
48
+ _globals['_METRICRECORDVALUE']._serialized_start=273
49
+ _globals['_METRICRECORDVALUE']._serialized_end=488
50
+ _globals['_CONFIGRECORDVALUE']._serialized_start=491
51
+ _globals['_CONFIGRECORDVALUE']._serialized_end=892
52
+ _globals['_ARRAYRECORD']._serialized_start=894
53
+ _globals['_ARRAYRECORD']._serialized_end=966
54
+ _globals['_METRICRECORD']._serialized_start=969
55
+ _globals['_METRICRECORD']._serialized_end=1109
56
+ _globals['_METRICRECORD_DATAENTRY']._serialized_start=1035
57
+ _globals['_METRICRECORD_DATAENTRY']._serialized_end=1109
58
+ _globals['_CONFIGRECORD']._serialized_start=1112
59
+ _globals['_CONFIGRECORD']._serialized_end=1252
60
+ _globals['_CONFIGRECORD_DATAENTRY']._serialized_start=1178
61
+ _globals['_CONFIGRECORD_DATAENTRY']._serialized_end=1252
62
+ _globals['_RECORDDICT']._serialized_start=1255
63
+ _globals['_RECORDDICT']._serialized_end=1647
64
+ _globals['_RECORDDICT_ARRAYSENTRY']._serialized_start=1429
65
+ _globals['_RECORDDICT_ARRAYSENTRY']._serialized_end=1499
66
+ _globals['_RECORDDICT_METRICSENTRY']._serialized_start=1501
67
+ _globals['_RECORDDICT_METRICSENTRY']._serialized_end=1573
68
+ _globals['_RECORDDICT_CONFIGSENTRY']._serialized_start=1575
69
+ _globals['_RECORDDICT_CONFIGSENTRY']._serialized_end=1647
70
70
  # @@protoc_insertion_point(module_scope)
@@ -104,7 +104,7 @@ class Array(google.protobuf.message.Message):
104
104
  def ClearField(self, field_name: typing_extensions.Literal["data",b"data","dtype",b"dtype","shape",b"shape","stype",b"stype"]) -> None: ...
105
105
  global___Array = Array
106
106
 
107
- class MetricsRecordValue(google.protobuf.message.Message):
107
+ class MetricRecordValue(google.protobuf.message.Message):
108
108
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
109
109
  DOUBLE_FIELD_NUMBER: builtins.int
110
110
  SINT64_FIELD_NUMBER: builtins.int
@@ -137,9 +137,9 @@ class MetricsRecordValue(google.protobuf.message.Message):
137
137
  def HasField(self, field_name: typing_extensions.Literal["double",b"double","double_list",b"double_list","sint64",b"sint64","sint_list",b"sint_list","uint64",b"uint64","uint_list",b"uint_list","value",b"value"]) -> builtins.bool: ...
138
138
  def ClearField(self, field_name: typing_extensions.Literal["double",b"double","double_list",b"double_list","sint64",b"sint64","sint_list",b"sint_list","uint64",b"uint64","uint_list",b"uint_list","value",b"value"]) -> None: ...
139
139
  def WhichOneof(self, oneof_group: typing_extensions.Literal["value",b"value"]) -> typing.Optional[typing_extensions.Literal["double","sint64","uint64","double_list","sint_list","uint_list"]]: ...
140
- global___MetricsRecordValue = MetricsRecordValue
140
+ global___MetricRecordValue = MetricRecordValue
141
141
 
142
- class ConfigsRecordValue(google.protobuf.message.Message):
142
+ class ConfigRecordValue(google.protobuf.message.Message):
143
143
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
144
144
  DOUBLE_FIELD_NUMBER: builtins.int
145
145
  SINT64_FIELD_NUMBER: builtins.int
@@ -193,9 +193,9 @@ class ConfigsRecordValue(google.protobuf.message.Message):
193
193
  def HasField(self, field_name: typing_extensions.Literal["bool",b"bool","bool_list",b"bool_list","bytes",b"bytes","bytes_list",b"bytes_list","double",b"double","double_list",b"double_list","sint64",b"sint64","sint_list",b"sint_list","string",b"string","string_list",b"string_list","uint64",b"uint64","uint_list",b"uint_list","value",b"value"]) -> builtins.bool: ...
194
194
  def ClearField(self, field_name: typing_extensions.Literal["bool",b"bool","bool_list",b"bool_list","bytes",b"bytes","bytes_list",b"bytes_list","double",b"double","double_list",b"double_list","sint64",b"sint64","sint_list",b"sint_list","string",b"string","string_list",b"string_list","uint64",b"uint64","uint_list",b"uint_list","value",b"value"]) -> None: ...
195
195
  def WhichOneof(self, oneof_group: typing_extensions.Literal["value",b"value"]) -> typing.Optional[typing_extensions.Literal["double","sint64","uint64","bool","string","bytes","double_list","sint_list","uint_list","bool_list","string_list","bytes_list"]]: ...
196
- global___ConfigsRecordValue = ConfigsRecordValue
196
+ global___ConfigRecordValue = ConfigRecordValue
197
197
 
198
- class ParametersRecord(google.protobuf.message.Message):
198
+ class ArrayRecord(google.protobuf.message.Message):
199
199
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
200
200
  DATA_KEYS_FIELD_NUMBER: builtins.int
201
201
  DATA_VALUES_FIELD_NUMBER: builtins.int
@@ -209,9 +209,9 @@ class ParametersRecord(google.protobuf.message.Message):
209
209
  data_values: typing.Optional[typing.Iterable[global___Array]] = ...,
210
210
  ) -> None: ...
211
211
  def ClearField(self, field_name: typing_extensions.Literal["data_keys",b"data_keys","data_values",b"data_values"]) -> None: ...
212
- global___ParametersRecord = ParametersRecord
212
+ global___ArrayRecord = ArrayRecord
213
213
 
214
- class MetricsRecord(google.protobuf.message.Message):
214
+ class MetricRecord(google.protobuf.message.Message):
215
215
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
216
216
  class DataEntry(google.protobuf.message.Message):
217
217
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -219,26 +219,26 @@ class MetricsRecord(google.protobuf.message.Message):
219
219
  VALUE_FIELD_NUMBER: builtins.int
220
220
  key: typing.Text
221
221
  @property
222
- def value(self) -> global___MetricsRecordValue: ...
222
+ def value(self) -> global___MetricRecordValue: ...
223
223
  def __init__(self,
224
224
  *,
225
225
  key: typing.Text = ...,
226
- value: typing.Optional[global___MetricsRecordValue] = ...,
226
+ value: typing.Optional[global___MetricRecordValue] = ...,
227
227
  ) -> None: ...
228
228
  def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
229
229
  def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
230
230
 
231
231
  DATA_FIELD_NUMBER: builtins.int
232
232
  @property
233
- def data(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___MetricsRecordValue]: ...
233
+ def data(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___MetricRecordValue]: ...
234
234
  def __init__(self,
235
235
  *,
236
- data: typing.Optional[typing.Mapping[typing.Text, global___MetricsRecordValue]] = ...,
236
+ data: typing.Optional[typing.Mapping[typing.Text, global___MetricRecordValue]] = ...,
237
237
  ) -> None: ...
238
238
  def ClearField(self, field_name: typing_extensions.Literal["data",b"data"]) -> None: ...
239
- global___MetricsRecord = MetricsRecord
239
+ global___MetricRecord = MetricRecord
240
240
 
241
- class ConfigsRecord(google.protobuf.message.Message):
241
+ class ConfigRecord(google.protobuf.message.Message):
242
242
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
243
243
  class DataEntry(google.protobuf.message.Message):
244
244
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -246,38 +246,38 @@ class ConfigsRecord(google.protobuf.message.Message):
246
246
  VALUE_FIELD_NUMBER: builtins.int
247
247
  key: typing.Text
248
248
  @property
249
- def value(self) -> global___ConfigsRecordValue: ...
249
+ def value(self) -> global___ConfigRecordValue: ...
250
250
  def __init__(self,
251
251
  *,
252
252
  key: typing.Text = ...,
253
- value: typing.Optional[global___ConfigsRecordValue] = ...,
253
+ value: typing.Optional[global___ConfigRecordValue] = ...,
254
254
  ) -> None: ...
255
255
  def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
256
256
  def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
257
257
 
258
258
  DATA_FIELD_NUMBER: builtins.int
259
259
  @property
260
- def data(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___ConfigsRecordValue]: ...
260
+ def data(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___ConfigRecordValue]: ...
261
261
  def __init__(self,
262
262
  *,
263
- data: typing.Optional[typing.Mapping[typing.Text, global___ConfigsRecordValue]] = ...,
263
+ data: typing.Optional[typing.Mapping[typing.Text, global___ConfigRecordValue]] = ...,
264
264
  ) -> None: ...
265
265
  def ClearField(self, field_name: typing_extensions.Literal["data",b"data"]) -> None: ...
266
- global___ConfigsRecord = ConfigsRecord
266
+ global___ConfigRecord = ConfigRecord
267
267
 
268
268
  class RecordDict(google.protobuf.message.Message):
269
269
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
270
- class ParametersEntry(google.protobuf.message.Message):
270
+ class ArraysEntry(google.protobuf.message.Message):
271
271
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
272
272
  KEY_FIELD_NUMBER: builtins.int
273
273
  VALUE_FIELD_NUMBER: builtins.int
274
274
  key: typing.Text
275
275
  @property
276
- def value(self) -> global___ParametersRecord: ...
276
+ def value(self) -> global___ArrayRecord: ...
277
277
  def __init__(self,
278
278
  *,
279
279
  key: typing.Text = ...,
280
- value: typing.Optional[global___ParametersRecord] = ...,
280
+ value: typing.Optional[global___ArrayRecord] = ...,
281
281
  ) -> None: ...
282
282
  def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
283
283
  def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
@@ -288,11 +288,11 @@ class RecordDict(google.protobuf.message.Message):
288
288
  VALUE_FIELD_NUMBER: builtins.int
289
289
  key: typing.Text
290
290
  @property
291
- def value(self) -> global___MetricsRecord: ...
291
+ def value(self) -> global___MetricRecord: ...
292
292
  def __init__(self,
293
293
  *,
294
294
  key: typing.Text = ...,
295
- value: typing.Optional[global___MetricsRecord] = ...,
295
+ value: typing.Optional[global___MetricRecord] = ...,
296
296
  ) -> None: ...
297
297
  def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
298
298
  def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
@@ -303,29 +303,29 @@ class RecordDict(google.protobuf.message.Message):
303
303
  VALUE_FIELD_NUMBER: builtins.int
304
304
  key: typing.Text
305
305
  @property
306
- def value(self) -> global___ConfigsRecord: ...
306
+ def value(self) -> global___ConfigRecord: ...
307
307
  def __init__(self,
308
308
  *,
309
309
  key: typing.Text = ...,
310
- value: typing.Optional[global___ConfigsRecord] = ...,
310
+ value: typing.Optional[global___ConfigRecord] = ...,
311
311
  ) -> None: ...
312
312
  def HasField(self, field_name: typing_extensions.Literal["value",b"value"]) -> builtins.bool: ...
313
313
  def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...
314
314
 
315
- PARAMETERS_FIELD_NUMBER: builtins.int
315
+ ARRAYS_FIELD_NUMBER: builtins.int
316
316
  METRICS_FIELD_NUMBER: builtins.int
317
317
  CONFIGS_FIELD_NUMBER: builtins.int
318
318
  @property
319
- def parameters(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___ParametersRecord]: ...
319
+ def arrays(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___ArrayRecord]: ...
320
320
  @property
321
- def metrics(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___MetricsRecord]: ...
321
+ def metrics(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___MetricRecord]: ...
322
322
  @property
323
- def configs(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___ConfigsRecord]: ...
323
+ def configs(self) -> google.protobuf.internal.containers.MessageMap[typing.Text, global___ConfigRecord]: ...
324
324
  def __init__(self,
325
325
  *,
326
- parameters: typing.Optional[typing.Mapping[typing.Text, global___ParametersRecord]] = ...,
327
- metrics: typing.Optional[typing.Mapping[typing.Text, global___MetricsRecord]] = ...,
328
- configs: typing.Optional[typing.Mapping[typing.Text, global___ConfigsRecord]] = ...,
326
+ arrays: typing.Optional[typing.Mapping[typing.Text, global___ArrayRecord]] = ...,
327
+ metrics: typing.Optional[typing.Mapping[typing.Text, global___MetricRecord]] = ...,
328
+ configs: typing.Optional[typing.Mapping[typing.Text, global___ConfigRecord]] = ...,
329
329
  ) -> None: ...
330
- def ClearField(self, field_name: typing_extensions.Literal["configs",b"configs","metrics",b"metrics","parameters",b"parameters"]) -> None: ...
330
+ def ClearField(self, field_name: typing_extensions.Literal["arrays",b"arrays","configs",b"configs","metrics",b"metrics"]) -> None: ...
331
331
  global___RecordDict = RecordDict
flwr/proto/run_pb2.py CHANGED
@@ -18,7 +18,7 @@ from flwr.proto import recorddict_pb2 as flwr_dot_proto_dot_recorddict__pb2
18
18
  from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
19
19
 
20
20
 
21
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xce\x02\n\x03Run\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0e\n\x06\x66\x61\x62_id\x18\x02 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x03 \x01(\t\x12<\n\x0foverride_config\x18\x04 \x03(\x0b\x32#.flwr.proto.Run.OverrideConfigEntry\x12\x10\n\x08\x66\x61\x62_hash\x18\x05 \x01(\t\x12\x12\n\npending_at\x18\x06 \x01(\t\x12\x13\n\x0bstarting_at\x18\x07 \x01(\t\x12\x12\n\nrunning_at\x18\x08 \x01(\t\x12\x13\n\x0b\x66inished_at\x18\t \x01(\t\x12%\n\x06status\x18\n \x01(\x0b\x32\x15.flwr.proto.RunStatus\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"@\n\tRunStatus\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x12\n\nsub_status\x18\x02 \x01(\t\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\t\"\xeb\x01\n\x10\x43reateRunRequest\x12\x0e\n\x06\x66\x61\x62_id\x18\x01 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x02 \x01(\t\x12I\n\x0foverride_config\x18\x03 \x03(\x0b\x32\x30.flwr.proto.CreateRunRequest.OverrideConfigEntry\x12\x1c\n\x03\x66\x61\x62\x18\x04 \x01(\x0b\x32\x0f.flwr.proto.Fab\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"#\n\x11\x43reateRunResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"?\n\rGetRunRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\".\n\x0eGetRunResponse\x12\x1c\n\x03run\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Run\"S\n\x16UpdateRunStatusRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12)\n\nrun_status\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus\"\x19\n\x17UpdateRunStatusResponse\"F\n\x13GetRunStatusRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0f\n\x07run_ids\x18\x02 \x03(\x04\"\xb1\x01\n\x14GetRunStatusResponse\x12L\n\x0frun_status_dict\x18\x01 \x03(\x0b\x32\x33.flwr.proto.GetRunStatusResponse.RunStatusDictEntry\x1aK\n\x12RunStatusDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus:\x02\x38\x01\"-\n\x1bGetFederationOptionsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"U\n\x1cGetFederationOptionsResponse\x12\x35\n\x12\x66\x65\x64\x65ration_options\x18\x01 \x01(\x0b\x32\x19.flwr.proto.ConfigsRecordb\x06proto3')
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x66lwr/proto/run.proto\x12\nflwr.proto\x1a\x14\x66lwr/proto/fab.proto\x1a\x15\x66lwr/proto/node.proto\x1a\x1b\x66lwr/proto/recorddict.proto\x1a\x1a\x66lwr/proto/transport.proto\"\xce\x02\n\x03Run\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12\x0e\n\x06\x66\x61\x62_id\x18\x02 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x03 \x01(\t\x12<\n\x0foverride_config\x18\x04 \x03(\x0b\x32#.flwr.proto.Run.OverrideConfigEntry\x12\x10\n\x08\x66\x61\x62_hash\x18\x05 \x01(\t\x12\x12\n\npending_at\x18\x06 \x01(\t\x12\x13\n\x0bstarting_at\x18\x07 \x01(\t\x12\x12\n\nrunning_at\x18\x08 \x01(\t\x12\x13\n\x0b\x66inished_at\x18\t \x01(\t\x12%\n\x06status\x18\n \x01(\x0b\x32\x15.flwr.proto.RunStatus\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"@\n\tRunStatus\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x12\n\nsub_status\x18\x02 \x01(\t\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\t\"\xeb\x01\n\x10\x43reateRunRequest\x12\x0e\n\x06\x66\x61\x62_id\x18\x01 \x01(\t\x12\x13\n\x0b\x66\x61\x62_version\x18\x02 \x01(\t\x12I\n\x0foverride_config\x18\x03 \x03(\x0b\x32\x30.flwr.proto.CreateRunRequest.OverrideConfigEntry\x12\x1c\n\x03\x66\x61\x62\x18\x04 \x01(\x0b\x32\x0f.flwr.proto.Fab\x1aI\n\x13OverrideConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.flwr.proto.Scalar:\x02\x38\x01\"#\n\x11\x43reateRunResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"?\n\rGetRunRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0e\n\x06run_id\x18\x02 \x01(\x04\".\n\x0eGetRunResponse\x12\x1c\n\x03run\x18\x01 \x01(\x0b\x32\x0f.flwr.proto.Run\"S\n\x16UpdateRunStatusRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\x12)\n\nrun_status\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus\"\x19\n\x17UpdateRunStatusResponse\"F\n\x13GetRunStatusRequest\x12\x1e\n\x04node\x18\x01 \x01(\x0b\x32\x10.flwr.proto.Node\x12\x0f\n\x07run_ids\x18\x02 \x03(\x04\"\xb1\x01\n\x14GetRunStatusResponse\x12L\n\x0frun_status_dict\x18\x01 \x03(\x0b\x32\x33.flwr.proto.GetRunStatusResponse.RunStatusDictEntry\x1aK\n\x12RunStatusDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.flwr.proto.RunStatus:\x02\x38\x01\"-\n\x1bGetFederationOptionsRequest\x12\x0e\n\x06run_id\x18\x01 \x01(\x04\"T\n\x1cGetFederationOptionsResponse\x12\x34\n\x12\x66\x65\x64\x65ration_options\x18\x01 \x01(\x0b\x32\x18.flwr.proto.ConfigRecordb\x06proto3')
22
22
 
23
23
  _globals = globals()
24
24
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -60,5 +60,5 @@ if _descriptor._USE_C_DESCRIPTORS == False:
60
60
  _globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_start=1293
61
61
  _globals['_GETFEDERATIONOPTIONSREQUEST']._serialized_end=1338
62
62
  _globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_start=1340
63
- _globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_end=1425
63
+ _globals['_GETFEDERATIONOPTIONSRESPONSE']._serialized_end=1424
64
64
  # @@protoc_insertion_point(module_scope)
flwr/proto/run_pb2.pyi CHANGED
@@ -258,10 +258,10 @@ class GetFederationOptionsResponse(google.protobuf.message.Message):
258
258
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
259
259
  FEDERATION_OPTIONS_FIELD_NUMBER: builtins.int
260
260
  @property
261
- def federation_options(self) -> flwr.proto.recorddict_pb2.ConfigsRecord: ...
261
+ def federation_options(self) -> flwr.proto.recorddict_pb2.ConfigRecord: ...
262
262
  def __init__(self,
263
263
  *,
264
- federation_options: typing.Optional[flwr.proto.recorddict_pb2.ConfigsRecord] = ...,
264
+ federation_options: typing.Optional[flwr.proto.recorddict_pb2.ConfigRecord] = ...,
265
265
  ) -> None: ...
266
266
  def HasField(self, field_name: typing_extensions.Literal["federation_options",b"federation_options"]) -> builtins.bool: ...
267
267
  def ClearField(self, field_name: typing_extensions.Literal["federation_options",b"federation_options"]) -> None: ...
@@ -110,7 +110,7 @@ class GridClientProxy(ClientProxy):
110
110
  ) -> RecordDict:
111
111
 
112
112
  # Create message
113
- message = self.grid.create_message(
113
+ message = Message(
114
114
  content=recorddict,
115
115
  message_type=message_type,
116
116
  dst_node_id=self.node_id,
@@ -21,9 +21,9 @@ from typing import Callable
21
21
  from flwr.client.client_app import ClientApp
22
22
  from flwr.common.context import Context
23
23
  from flwr.common.message import Message
24
- from flwr.common.typing import ConfigsRecordValues
24
+ from flwr.common.typing import ConfigRecordValues
25
25
 
26
- BackendConfig = dict[str, dict[str, ConfigsRecordValues]]
26
+ BackendConfig = dict[str, dict[str, ConfigRecordValues]]
27
27
 
28
28
 
29
29
  class Backend(ABC):