flwr-nightly 1.21.0.dev20250801__py3-none-any.whl → 1.21.0.dev20250804__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 (30) hide show
  1. flwr/cli/auth_plugin/oidc_cli_plugin.py +4 -4
  2. flwr/cli/cli_user_auth_interceptor.py +1 -1
  3. flwr/cli/config_utils.py +2 -2
  4. flwr/cli/log.py +9 -9
  5. flwr/cli/login/login.py +3 -3
  6. flwr/cli/ls.py +5 -5
  7. flwr/cli/run/run.py +7 -7
  8. flwr/cli/stop.py +7 -4
  9. flwr/cli/utils.py +1 -1
  10. flwr/common/auth_plugin/__init__.py +4 -4
  11. flwr/common/auth_plugin/auth_plugin.py +7 -7
  12. flwr/common/constant.py +4 -4
  13. flwr/common/event_log_plugin/event_log_plugin.py +1 -1
  14. flwr/proto/control_pb2.py +62 -0
  15. flwr/proto/{exec_pb2_grpc.py → control_pb2_grpc.py} +54 -54
  16. flwr/proto/{exec_pb2_grpc.pyi → control_pb2_grpc.pyi} +28 -28
  17. flwr/server/app.py +36 -36
  18. flwr/superlink/executor/__init__.py +1 -1
  19. flwr/superlink/servicer/{exec → control}/__init__.py +3 -3
  20. flwr/superlink/servicer/{exec/exec_event_log_interceptor.py → control/control_event_log_interceptor.py} +7 -7
  21. flwr/superlink/servicer/{exec/exec_grpc.py → control/control_grpc.py} +22 -22
  22. flwr/superlink/servicer/{exec/exec_license_interceptor.py → control/control_license_interceptor.py} +6 -6
  23. flwr/superlink/servicer/{exec/exec_servicer.py → control/control_servicer.py} +16 -16
  24. flwr/superlink/servicer/{exec/exec_user_auth_interceptor.py → control/control_user_auth_interceptor.py} +10 -10
  25. {flwr_nightly-1.21.0.dev20250801.dist-info → flwr_nightly-1.21.0.dev20250804.dist-info}/METADATA +1 -1
  26. {flwr_nightly-1.21.0.dev20250801.dist-info → flwr_nightly-1.21.0.dev20250804.dist-info}/RECORD +29 -29
  27. flwr/proto/exec_pb2.py +0 -62
  28. /flwr/proto/{exec_pb2.pyi → control_pb2.pyi} +0 -0
  29. {flwr_nightly-1.21.0.dev20250801.dist-info → flwr_nightly-1.21.0.dev20250804.dist-info}/WHEEL +0 -0
  30. {flwr_nightly-1.21.0.dev20250801.dist-info → flwr_nightly-1.21.0.dev20250804.dist-info}/entry_points.txt +0 -0
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
- """Exec API server."""
15
+ """Control API server."""
16
16
 
17
17
 
18
18
  from logging import INFO
@@ -21,23 +21,23 @@ from typing import Optional
21
21
  import grpc
22
22
 
23
23
  from flwr.common import GRPC_MAX_MESSAGE_LENGTH
24
- from flwr.common.auth_plugin import ExecAuthPlugin, ExecAuthzPlugin
24
+ from flwr.common.auth_plugin import ControlAuthPlugin, ControlAuthzPlugin
25
25
  from flwr.common.event_log_plugin import EventLogWriterPlugin
26
26
  from flwr.common.exit import ExitCode, flwr_exit
27
27
  from flwr.common.grpc import generic_create_grpc_server
28
28
  from flwr.common.logger import log
29
29
  from flwr.common.typing import UserConfig
30
- from flwr.proto.exec_pb2_grpc import add_ExecServicer_to_server
30
+ from flwr.proto.control_pb2_grpc import add_ControlServicer_to_server
31
31
  from flwr.server.superlink.linkstate import LinkStateFactory
32
32
  from flwr.supercore.ffs import FfsFactory
33
33
  from flwr.supercore.license_plugin import LicensePlugin
34
34
  from flwr.supercore.object_store import ObjectStoreFactory
35
35
 
36
36
  from ...executor import Executor
37
- from .exec_event_log_interceptor import ExecEventLogInterceptor
38
- from .exec_license_interceptor import ExecLicenseInterceptor
39
- from .exec_servicer import ExecServicer
40
- from .exec_user_auth_interceptor import ExecUserAuthInterceptor
37
+ from .control_event_log_interceptor import ControlEventLogInterceptor
38
+ from .control_license_interceptor import ControlLicenseInterceptor
39
+ from .control_servicer import ControlServicer
40
+ from .control_user_auth_interceptor import ControlUserAuthInterceptor
41
41
 
42
42
  try:
43
43
  from flwr.ee import get_license_plugin
@@ -48,7 +48,7 @@ except ImportError:
48
48
 
49
49
 
50
50
  # pylint: disable-next=too-many-arguments,too-many-positional-arguments,too-many-locals
51
- def run_exec_api_grpc(
51
+ def run_control_api_grpc(
52
52
  address: str,
53
53
  executor: Executor,
54
54
  state_factory: LinkStateFactory,
@@ -56,18 +56,18 @@ def run_exec_api_grpc(
56
56
  objectstore_factory: ObjectStoreFactory,
57
57
  certificates: Optional[tuple[bytes, bytes, bytes]],
58
58
  config: UserConfig,
59
- auth_plugin: Optional[ExecAuthPlugin] = None,
60
- authz_plugin: Optional[ExecAuthzPlugin] = None,
59
+ auth_plugin: Optional[ControlAuthPlugin] = None,
60
+ authz_plugin: Optional[ControlAuthzPlugin] = None,
61
61
  event_log_plugin: Optional[EventLogWriterPlugin] = None,
62
62
  ) -> grpc.Server:
63
- """Run Exec API (gRPC, request-response)."""
63
+ """Run Control API (gRPC, request-response)."""
64
64
  executor.set_config(config)
65
65
 
66
66
  license_plugin: Optional[LicensePlugin] = get_license_plugin()
67
67
  if license_plugin and not license_plugin.check_license():
68
68
  flwr_exit(ExitCode.SUPERLINK_LICENSE_INVALID)
69
69
 
70
- exec_servicer: grpc.Server = ExecServicer(
70
+ control_servicer: grpc.Server = ControlServicer(
71
71
  linkstate_factory=state_factory,
72
72
  ffs_factory=ffs_factory,
73
73
  objectstore_factory=objectstore_factory,
@@ -76,16 +76,16 @@ def run_exec_api_grpc(
76
76
  )
77
77
  interceptors: list[grpc.ServerInterceptor] = []
78
78
  if license_plugin is not None:
79
- interceptors.append(ExecLicenseInterceptor(license_plugin))
79
+ interceptors.append(ControlLicenseInterceptor(license_plugin))
80
80
  if auth_plugin is not None and authz_plugin is not None:
81
- interceptors.append(ExecUserAuthInterceptor(auth_plugin, authz_plugin))
81
+ interceptors.append(ControlUserAuthInterceptor(auth_plugin, authz_plugin))
82
82
  # Event log interceptor must be added after user auth interceptor
83
83
  if event_log_plugin is not None:
84
- interceptors.append(ExecEventLogInterceptor(event_log_plugin))
84
+ interceptors.append(ControlEventLogInterceptor(event_log_plugin))
85
85
  log(INFO, "Flower event logging enabled")
86
- exec_add_servicer_to_server_fn = add_ExecServicer_to_server
87
- exec_grpc_server = generic_create_grpc_server(
88
- servicer_and_add_fn=(exec_servicer, exec_add_servicer_to_server_fn),
86
+ control_add_servicer_to_server_fn = add_ControlServicer_to_server
87
+ control_grpc_server = generic_create_grpc_server(
88
+ servicer_and_add_fn=(control_servicer, control_add_servicer_to_server_fn),
89
89
  server_address=address,
90
90
  max_message_length=GRPC_MAX_MESSAGE_LENGTH,
91
91
  certificates=certificates,
@@ -93,14 +93,14 @@ def run_exec_api_grpc(
93
93
  )
94
94
 
95
95
  if auth_plugin is None:
96
- log(INFO, "Flower Deployment Engine: Starting Exec API on %s", address)
96
+ log(INFO, "Flower Deployment Engine: Starting Control API on %s", address)
97
97
  else:
98
98
  log(
99
99
  INFO,
100
- "Flower Deployment Engine: Starting Exec API with user "
100
+ "Flower Deployment Engine: Starting Control API with user "
101
101
  "authentication on %s",
102
102
  address,
103
103
  )
104
- exec_grpc_server.start()
104
+ control_grpc_server.start()
105
105
 
106
- return exec_grpc_server
106
+ return control_grpc_server
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
- """Flower Exec API license interceptor."""
15
+ """Flower Control API license interceptor."""
16
16
 
17
17
 
18
18
  from collections.abc import Iterator
@@ -24,8 +24,8 @@ from google.protobuf.message import Message as GrpcMessage
24
24
  from flwr.supercore.license_plugin import LicensePlugin
25
25
 
26
26
 
27
- class ExecLicenseInterceptor(grpc.ServerInterceptor): # type: ignore
28
- """Exec API interceptor for license checking."""
27
+ class ControlLicenseInterceptor(grpc.ServerInterceptor): # type: ignore
28
+ """Control API interceptor for license checking."""
29
29
 
30
30
  def __init__(self, license_plugin: LicensePlugin) -> None:
31
31
  """Initialize the interceptor with a license plugin."""
@@ -42,12 +42,12 @@ class ExecLicenseInterceptor(grpc.ServerInterceptor): # type: ignore
42
42
  Continue RPC call if license check is enabled and passes, else, terminate RPC
43
43
  call by setting context to abort.
44
44
  """
45
- # Only apply to Exec service
46
- if not handler_call_details.method.startswith("/flwr.proto.Exec/"):
45
+ # Only apply to Control service
46
+ if not handler_call_details.method.startswith("/flwr.proto.Control/"):
47
47
  return continuation(handler_call_details)
48
48
 
49
49
  # One of the method handlers in
50
- # `flwr.superlink.servicer.exec.ExecServicer`
50
+ # `flwr.superlink.servicer.control.ControlServicer`
51
51
  method_handler: grpc.RpcMethodHandler = continuation(handler_call_details)
52
52
  return self._generic_license_unary_method_handler(method_handler)
53
53
 
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
- """Exec API servicer."""
15
+ """Control API servicer."""
16
16
 
17
17
 
18
18
  import time
@@ -23,7 +23,7 @@ from typing import Any, Optional, cast
23
23
  import grpc
24
24
 
25
25
  from flwr.common import now
26
- from flwr.common.auth_plugin import ExecAuthPlugin
26
+ from flwr.common.auth_plugin import ControlAuthPlugin
27
27
  from flwr.common.constant import (
28
28
  FAB_MAX_SIZE,
29
29
  LOG_STREAM_INTERVAL,
@@ -38,8 +38,8 @@ from flwr.common.serde import (
38
38
  user_config_from_proto,
39
39
  )
40
40
  from flwr.common.typing import Run, RunStatus
41
- from flwr.proto import exec_pb2_grpc # pylint: disable=E0611
42
- from flwr.proto.exec_pb2 import ( # pylint: disable=E0611
41
+ from flwr.proto import control_pb2_grpc # pylint: disable=E0611
42
+ from flwr.proto.control_pb2 import ( # pylint: disable=E0611
43
43
  GetAuthTokensRequest,
44
44
  GetAuthTokensResponse,
45
45
  GetLoginDetailsRequest,
@@ -58,11 +58,11 @@ from flwr.supercore.ffs import FfsFactory
58
58
  from flwr.supercore.object_store import ObjectStore, ObjectStoreFactory
59
59
 
60
60
  from ...executor.executor import Executor
61
- from .exec_user_auth_interceptor import shared_account_info
61
+ from .control_user_auth_interceptor import shared_account_info
62
62
 
63
63
 
64
- class ExecServicer(exec_pb2_grpc.ExecServicer):
65
- """Exec API servicer."""
64
+ class ControlServicer(control_pb2_grpc.ControlServicer):
65
+ """Control API servicer."""
66
66
 
67
67
  def __init__( # pylint: disable=R0913, R0917
68
68
  self,
@@ -70,7 +70,7 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
70
70
  ffs_factory: FfsFactory,
71
71
  objectstore_factory: ObjectStoreFactory,
72
72
  executor: Executor,
73
- auth_plugin: Optional[ExecAuthPlugin] = None,
73
+ auth_plugin: Optional[ControlAuthPlugin] = None,
74
74
  ) -> None:
75
75
  self.linkstate_factory = linkstate_factory
76
76
  self.ffs_factory = ffs_factory
@@ -83,7 +83,7 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
83
83
  self, request: StartRunRequest, context: grpc.ServicerContext
84
84
  ) -> StartRunResponse:
85
85
  """Create run ID."""
86
- log(INFO, "ExecServicer.StartRun")
86
+ log(INFO, "ControlServicer.StartRun")
87
87
 
88
88
  if len(request.fab.content) > FAB_MAX_SIZE:
89
89
  log(
@@ -111,7 +111,7 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
111
111
  self, request: StreamLogsRequest, context: grpc.ServicerContext
112
112
  ) -> Generator[StreamLogsResponse, Any, None]:
113
113
  """Get logs."""
114
- log(INFO, "ExecServicer.StreamLogs")
114
+ log(INFO, "ControlServicer.StreamLogs")
115
115
  state = self.linkstate_factory.state()
116
116
 
117
117
  # Retrieve run ID and run
@@ -158,7 +158,7 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
158
158
  self, request: ListRunsRequest, context: grpc.ServicerContext
159
159
  ) -> ListRunsResponse:
160
160
  """Handle `flwr ls` command."""
161
- log(INFO, "ExecServicer.List")
161
+ log(INFO, "ControlServicer.List")
162
162
  state = self.linkstate_factory.state()
163
163
 
164
164
  # Build a set of run IDs for `flwr ls --runs`
@@ -204,7 +204,7 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
204
204
  self, request: StopRunRequest, context: grpc.ServicerContext
205
205
  ) -> StopRunResponse:
206
206
  """Stop a given run ID."""
207
- log(INFO, "ExecServicer.StopRun")
207
+ log(INFO, "ControlServicer.StopRun")
208
208
  state = self.linkstate_factory.state()
209
209
 
210
210
  # Retrieve run ID and run
@@ -249,11 +249,11 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
249
249
  self, request: GetLoginDetailsRequest, context: grpc.ServicerContext
250
250
  ) -> GetLoginDetailsResponse:
251
251
  """Start login."""
252
- log(INFO, "ExecServicer.GetLoginDetails")
252
+ log(INFO, "ControlServicer.GetLoginDetails")
253
253
  if self.auth_plugin is None:
254
254
  context.abort(
255
255
  grpc.StatusCode.UNIMPLEMENTED,
256
- "ExecServicer initialized without user authentication",
256
+ "ControlServicer initialized without user authentication",
257
257
  )
258
258
  raise grpc.RpcError() # This line is unreachable
259
259
 
@@ -276,11 +276,11 @@ class ExecServicer(exec_pb2_grpc.ExecServicer):
276
276
  self, request: GetAuthTokensRequest, context: grpc.ServicerContext
277
277
  ) -> GetAuthTokensResponse:
278
278
  """Get auth token."""
279
- log(INFO, "ExecServicer.GetAuthTokens")
279
+ log(INFO, "ControlServicer.GetAuthTokens")
280
280
  if self.auth_plugin is None:
281
281
  context.abort(
282
282
  grpc.StatusCode.UNIMPLEMENTED,
283
- "ExecServicer initialized without user authentication",
283
+ "ControlServicer initialized without user authentication",
284
284
  )
285
285
  raise grpc.RpcError() # This line is unreachable
286
286
 
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
- """Flower Exec API interceptor."""
15
+ """Flower Control API interceptor."""
16
16
 
17
17
 
18
18
  import contextvars
@@ -20,9 +20,9 @@ from typing import Any, Callable, Union
20
20
 
21
21
  import grpc
22
22
 
23
- from flwr.common.auth_plugin import ExecAuthPlugin, ExecAuthzPlugin
23
+ from flwr.common.auth_plugin import ControlAuthPlugin, ControlAuthzPlugin
24
24
  from flwr.common.typing import AccountInfo
25
- from flwr.proto.exec_pb2 import ( # pylint: disable=E0611
25
+ from flwr.proto.control_pb2 import ( # pylint: disable=E0611
26
26
  GetAuthTokensRequest,
27
27
  GetAuthTokensResponse,
28
28
  GetLoginDetailsRequest,
@@ -50,13 +50,13 @@ shared_account_info: contextvars.ContextVar[AccountInfo] = contextvars.ContextVa
50
50
  )
51
51
 
52
52
 
53
- class ExecUserAuthInterceptor(grpc.ServerInterceptor): # type: ignore
54
- """Exec API interceptor for user authentication."""
53
+ class ControlUserAuthInterceptor(grpc.ServerInterceptor): # type: ignore
54
+ """Control API interceptor for user authentication."""
55
55
 
56
56
  def __init__(
57
57
  self,
58
- auth_plugin: ExecAuthPlugin,
59
- authz_plugin: ExecAuthzPlugin,
58
+ auth_plugin: ControlAuthPlugin,
59
+ authz_plugin: ControlAuthzPlugin,
60
60
  ):
61
61
  self.auth_plugin = auth_plugin
62
62
  self.authz_plugin = authz_plugin
@@ -72,12 +72,12 @@ class ExecUserAuthInterceptor(grpc.ServerInterceptor): # type: ignore
72
72
  by validating auth metadata sent by the user. Continue RPC call if user is
73
73
  authenticated, else, terminate RPC call by setting context to abort.
74
74
  """
75
- # Only apply to Exec service
76
- if not handler_call_details.method.startswith("/flwr.proto.Exec/"):
75
+ # Only apply to Control service
76
+ if not handler_call_details.method.startswith("/flwr.proto.Control/"):
77
77
  return continuation(handler_call_details)
78
78
 
79
79
  # One of the method handlers in
80
- # `flwr.superlink.servicer.exec.ExecServicer`
80
+ # `flwr.superlink.servicer.control.ControlServicer`
81
81
  method_handler: grpc.RpcMethodHandler = continuation(handler_call_details)
82
82
  return self._generic_auth_unary_method_handler(method_handler)
83
83
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: flwr-nightly
3
- Version: 1.21.0.dev20250801
3
+ Version: 1.21.0.dev20250804
4
4
  Summary: Flower: A Friendly Federated AI Framework
5
5
  License: Apache-2.0
6
6
  Keywords: Artificial Intelligence,Federated AI,Federated Analytics,Federated Evaluation,Federated Learning,Flower,Machine Learning
@@ -5,17 +5,17 @@ flwr/app/metadata.py,sha256=rdMBn0zhIOYmCvmGENQWSQqDwcxwsMJzCle4PQdlc_Y,7331
5
5
  flwr/cli/__init__.py,sha256=EfMGmHoobET6P2blBt_eOByXL8299MgFfB7XNdaPQ6I,720
6
6
  flwr/cli/app.py,sha256=AKCP45Dkbpvdil_4Ir9S93L3HP3iUOnHmcZjscoM8uU,1856
7
7
  flwr/cli/auth_plugin/__init__.py,sha256=FyaoqPzcxlBTFfJ2sBRC5USwQLmAhFr5KuBwfMO4bmo,1052
8
- flwr/cli/auth_plugin/oidc_cli_plugin.py,sha256=gIhW6Jg9QAo-jL43LYPpw_kn7pdUZZae0s0H8dEgjLM,5384
8
+ flwr/cli/auth_plugin/oidc_cli_plugin.py,sha256=kQteGRB9-DmC7K5F9TBmUc8ndSBR7WyT27ygWUUuX_g,5402
9
9
  flwr/cli/build.py,sha256=hE54Q_eMdWLpVKSVC2aQaUxVaiUlWnAosGNvIPSEg6Y,7284
10
- flwr/cli/cli_user_auth_interceptor.py,sha256=-JqDXpeZNQVwoSG7hMKsiS5qY5k5oklNSlQOVpM0-aY,3126
11
- flwr/cli/config_utils.py,sha256=IAVn2uWTXpN72YYt7raLtwp8ziwZugUKSURpc471VzU,9123
10
+ flwr/cli/cli_user_auth_interceptor.py,sha256=O4S8tbA1-rgBNe5YMGACDqmY7v2SJoxyibRhshrzXu4,3129
11
+ flwr/cli/config_utils.py,sha256=83Q_UWLBZs1l4TCVYK_LsBk2fh_geRNktgawJIgP-l4,9129
12
12
  flwr/cli/constant.py,sha256=g7Ad7o3DJDkJNrWS0T3SSJETWSTkkVJWGpLM8zlbpcY,1289
13
13
  flwr/cli/example.py,sha256=SNTorkKPrx1rOryGREUyZu8TcOc1-vFv1zEddaysdY0,2216
14
14
  flwr/cli/install.py,sha256=Jr883qR7qssVpUr3hEOEcLK-dfW67Rsve3lZchjA9RU,8180
15
- flwr/cli/log.py,sha256=CKh5l2nnpognDy3lSubrlYX2-gNJ0qa-UFGVPRKS_YQ,6523
15
+ flwr/cli/log.py,sha256=n_fcoECKIkY3MTOfXhB8AjOG1LSQW_GSPY-2qc7rW9Q,6553
16
16
  flwr/cli/login/__init__.py,sha256=B1SXKU3HCQhWfFDMJhlC7FOl8UsvH4mxysxeBnrfyUE,800
17
- flwr/cli/login/login.py,sha256=pDkx5o4XBFBi7aGp_0Ys2FUMKmcWjzwWdoQRumXUsd8,4297
18
- flwr/cli/ls.py,sha256=zBBO3Yom3DIYwIJg09OSxy347wiYffOviqh-c2U4A04,10939
17
+ flwr/cli/login/login.py,sha256=RM1Jiv_VFm3oz4rTHSr3D87X90lW3WzErjBBU7WviWY,4309
18
+ flwr/cli/ls.py,sha256=3YK7cpoImJ7PbjlP_JgYRQWz1GymX2q7Reu-mKJEpao,10957
19
19
  flwr/cli/new/__init__.py,sha256=QA1E2QtzPvFCjLTUHnFnJbufuFiGyT_0Y53Wpbvg1F0,790
20
20
  flwr/cli/new/new.py,sha256=Y8m4t8SmI_myr1tAcncHPE1_-y-dpn6BwKIVW1wj8xk,10071
21
21
  flwr/cli/new/templates/__init__.py,sha256=FpjWCfIySU2DB4kh0HOXLAjlZNNFDTVU4w3HoE2TzcI,725
@@ -71,9 +71,9 @@ flwr/cli/new/templates/app/pyproject.pytorch.toml.tpl,sha256=bu65oSrM85fP_H0-RlM
71
71
  flwr/cli/new/templates/app/pyproject.sklearn.toml.tpl,sha256=mAEPeBfGyrINgRuP6-nX_KJNTQjC4E5N1Nrcddxiffs,1484
72
72
  flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=mK8wOWqoQOVxZG6-OVwA2ChmKxexC7TfQV0ztPE4BWY,1508
73
73
  flwr/cli/run/__init__.py,sha256=RPyB7KbYTFl6YRiilCch6oezxrLQrl1kijV7BMGkLbA,790
74
- flwr/cli/run/run.py,sha256=psmr215gkV0e0QtX9NFp7KUwKSA_ZwekdJmoL1zFyfw,8478
75
- flwr/cli/stop.py,sha256=l8DcRkA---CESVJgc7iTHLWIBAPGxWIfoem8qSU3lZQ,4972
76
- flwr/cli/utils.py,sha256=Ca2jnbzqGsQWAHV_ztrGi32DpE-lf0gR90DOL76bR6c,12346
74
+ flwr/cli/run/run.py,sha256=A469slN-qunLu1-jCFGSsgJD2SIn0b_0RdRQ5C5MbDU,8502
75
+ flwr/cli/stop.py,sha256=TR9F61suTxNUzGIktUdoBhXwdRtCdvzGhy3qCuvcfBg,5000
76
+ flwr/cli/utils.py,sha256=fkyiWXWfXo5fS_sACw8Rg9wweq3RQ7XvEUEAa_caqkE,12349
77
77
  flwr/client/__init__.py,sha256=boIhKaK6I977zrILmoTutNx94x5jB0e6F1gnAjaRJnI,1250
78
78
  flwr/client/client.py,sha256=3HAchxvknKG9jYbB7swNyDj-e5vUWDuMKoLvbT7jCVM,7895
79
79
  flwr/client/client_app.py,sha256=zVhi-l3chAb06ozFsKwix3hU_RpOLjST13Ha50AVIPE,16918
@@ -105,17 +105,17 @@ flwr/clientapp/__init__.py,sha256=zGW4z49Ojzoi1hDiRC7kyhLjijUilc6fqHhtM_ATRVA,71
105
105
  flwr/common/__init__.py,sha256=5GCLVk399Az_rTJHNticRlL0Sl_oPw_j5_LuFKfX7-M,4171
106
106
  flwr/common/address.py,sha256=9JucdTwlc-jpeJkRKeUboZoacUtErwSVtnDR9kAtLqE,4119
107
107
  flwr/common/args.py,sha256=XFQ5PU0lU7NS1QCiKhhESHVeL8KSjcD3x8h4P3e5qlM,5298
108
- flwr/common/auth_plugin/__init__.py,sha256=3rzPkVLn9WyB5n7HLk1XGDw3SLCqRWAU1_CnglcWPfw,970
109
- flwr/common/auth_plugin/auth_plugin.py,sha256=kXx5o39vJchaPv28sK9qO6H_UXSWym6zRBbCa7sUwtQ,4825
108
+ flwr/common/auth_plugin/__init__.py,sha256=DktrRcGZrRarLf7Jb_UlHtOyLp9_-kEplyq6PS5-vOA,988
109
+ flwr/common/auth_plugin/auth_plugin.py,sha256=mM7SuphO4OsVAVJR1GErYVgYT83ZjxDzS_gha12bT9E,4855
110
110
  flwr/common/config.py,sha256=glcZDjco-amw1YfQcYTFJ4S1pt9APoexT-mf1QscuHs,13960
111
- flwr/common/constant.py,sha256=7BHHSoeNlOzweYyacI1DPLfyPhzN24C7VCA8j9pgA2A,8235
111
+ flwr/common/constant.py,sha256=IMjx9E9iwQrbBuzsXtu0u-baFGENcWoyxU0caIvtSx0,8250
112
112
  flwr/common/context.py,sha256=Be8obQR_OvEDy1OmshuUKxGRQ7Qx89mf5F4xlhkR10s,2407
113
113
  flwr/common/date.py,sha256=1ZT2cRSpC2DJqprOVTLXYCR_O2_OZR0zXO_brJ3LqWc,1554
114
114
  flwr/common/differential_privacy.py,sha256=FdlpdpPl_H_2HJa8CQM1iCUGBBQ5Dc8CzxmHERM-EoE,6148
115
115
  flwr/common/differential_privacy_constants.py,sha256=ruEjH4qF_S2bgxRI6brWCGWQPxFk-P7pviFguy9KvQ0,1074
116
116
  flwr/common/dp.py,sha256=ftqWheOICK5N_zPaofnbFb474lMb5w9lclwxf5DKY0w,1978
117
117
  flwr/common/event_log_plugin/__init__.py,sha256=ts3VAL3Fk6Grp1EK_1Qg_V-BfOof9F86iBx4rbrEkyo,838
118
- flwr/common/event_log_plugin/event_log_plugin.py,sha256=eK8OaDFagQRwqpb9eV0cJcm2ErtEBpMxFbhxJNx6n5w,2061
118
+ flwr/common/event_log_plugin/event_log_plugin.py,sha256=4SkVa1Ic-sPlICJShBuggXmXDcQtWQ1KDby4kthFNF0,2064
119
119
  flwr/common/exit/__init__.py,sha256=-ZOJYLaNnR729a7VzZiFsLiqngzKQh3xc27svYStZ_Q,826
120
120
  flwr/common/exit/exit.py,sha256=mJgbqMlVlwAgYtq-Vedj53wO4VxcDcy_P-GzqGK-1GQ,3452
121
121
  flwr/common/exit/exit_code.py,sha256=NbjJEywRb5YzDE7Xmo3Kd29inDEQbIUpskY9IEIGomE,4110
@@ -172,14 +172,14 @@ flwr/proto/clientappio_pb2.py,sha256=3b87t4_AFgeDopgpYhhOVBrdh1HG74W2HC-y0C0q_eY
172
172
  flwr/proto/clientappio_pb2.pyi,sha256=gA-WU5lCYxhMciAUiCg__DrAzHPtytqRLyflpToWHqc,2033
173
173
  flwr/proto/clientappio_pb2_grpc.py,sha256=CrB1caDEuPxgjQxDEozLyApzNMqzD8z1pWg310xCTGU,17856
174
174
  flwr/proto/clientappio_pb2_grpc.pyi,sha256=FkS3ZcsU1iUuoS7ji84o8L5D9u-e5vsVR7O-ESqD5LI,4939
175
+ flwr/proto/control_pb2.py,sha256=Jd_KT0Vi2GRf1rHDERxAsNmQxjLsNEmpqNLYdZ1kFCk,5684
176
+ flwr/proto/control_pb2.pyi,sha256=oEQH84BwhgaiD5zIseGH_UujuMk2SVCe5R75msEga-8,9478
177
+ flwr/proto/control_pb2_grpc.py,sha256=AweEk-n77uEwV1DX1lc55mhNlSfDEqsDHHWeouyTOVc,10610
178
+ flwr/proto/control_pb2_grpc.pyi,sha256=8bROIwDXNlPzbpaBcxTwIzKXGTP18dvU8xBVKrfe80s,3001
175
179
  flwr/proto/error_pb2.py,sha256=PQVWrfjVPo88ql_KgV9nCxyQNCcV9PVfmcw7sOzTMro,1084
176
180
  flwr/proto/error_pb2.pyi,sha256=ZNH4HhJTU_KfMXlyCeg8FwU-fcUYxTqEmoJPtWtHikc,734
177
181
  flwr/proto/error_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
178
182
  flwr/proto/error_pb2_grpc.pyi,sha256=ff2TSiLVnG6IVQcTGzb2DIH3XRSoAvAo_RMcvbMFyc0,76
179
- flwr/proto/exec_pb2.py,sha256=vsGjwZnpaNUFOAzllVtWAXhpUbHTzcKc1LsalQSicRA,5666
180
- flwr/proto/exec_pb2.pyi,sha256=oEQH84BwhgaiD5zIseGH_UujuMk2SVCe5R75msEga-8,9478
181
- flwr/proto/exec_pb2_grpc.py,sha256=-bdLqjsqQxK9R8LIiZaKlLKH2NmjR50EaGKTPPTwFhI,10445
182
- flwr/proto/exec_pb2_grpc.pyi,sha256=M5k-FzeLWxal7zt28LJfzMWWRxmNknTC2BzHRRMa1sQ,2914
183
183
  flwr/proto/fab_pb2.py,sha256=2Nu0WaWxDZ8TbutMtctjdcGM7OtXiyP4kmCgg5o7Jjw,1627
184
184
  flwr/proto/fab_pb2.pyi,sha256=AMXpiDK0fo3nZWjxsC2E4otSaVjyQbU7iiWKrsSZavs,2395
185
185
  flwr/proto/fab_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
@@ -230,7 +230,7 @@ flwr/proto/transport_pb2_grpc.py,sha256=vLN3EHtx2aEEMCO4f1Upu-l27BPzd3-5pV-u8wPc
230
230
  flwr/proto/transport_pb2_grpc.pyi,sha256=AGXf8RiIiW2J5IKMlm_3qT3AzcDa4F3P5IqUjve_esA,766
231
231
  flwr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
232
232
  flwr/server/__init__.py,sha256=LQQHiuL2jy7TpNaKastRdGsexlxSt5ZWAQNVqitDnrY,1598
233
- flwr/server/app.py,sha256=LdEZVa0FzRTMQstBidH1MBXkrXRIH2sqIX-aj7Iah9A,29493
233
+ flwr/server/app.py,sha256=DOfVw4qehkw9-eV16qR2ISQUbrH1ujb8zam_h-_ckX4,29625
234
234
  flwr/server/client_manager.py,sha256=5jCGavVli7XdupvWWo7ru3PdFTlRU8IGvHFSSoUVLRs,6227
235
235
  flwr/server/client_proxy.py,sha256=sv0E9AldBYOvc3pusqFh-GnyreeMfsXQ1cuTtxTq_wY,2399
236
236
  flwr/server/compat/__init__.py,sha256=0IsttWvY15qO98_1GyzVC-vR1e_ZPXOdu2qUlOkYMPE,886
@@ -351,18 +351,18 @@ flwr/superexec/__init__.py,sha256=YFqER0IJc1XEWfsX6AxZ9LSRq0sawPYrNYki-brvTIc,71
351
351
  flwr/superexec/deployment.py,sha256=CEgWfkN_lH6Vci03RjwKLENw2z6kxNvUdVEErPbqYDY,830
352
352
  flwr/superexec/simulation.py,sha256=wR3ERp_UdWJCkkLdJD7Rk5uVpWJtOqHuyhbq7Sm2tGE,830
353
353
  flwr/superlink/__init__.py,sha256=GNSuJ4-N6Z8wun2iZNlXqENt5beUyzC0Gi_tN396bbM,707
354
- flwr/superlink/executor/__init__.py,sha256=5ZAe4Nj8DflRFTvhAsQ3nr2b-mvNuBisuxTuMwvWsCs,958
354
+ flwr/superlink/executor/__init__.py,sha256=0efHPvuqEKvEmwsUc5sp5bqKX4asL3yioJ_ObwKePBU,961
355
355
  flwr/superlink/executor/app.py,sha256=AALlkJKgGTeGOARf8G6TBEmO_WdOpmL4dHYpcGWX-Hc,1474
356
356
  flwr/superlink/executor/deployment.py,sha256=whB1k_DE37SqplisFt0nu190BtoqPKRX9Xz86fqm3FU,6765
357
357
  flwr/superlink/executor/executor.py,sha256=LaErHRJvNggjWV6FI6eajgKfnwOvSv2UqzFH253yDro,3265
358
358
  flwr/superlink/executor/simulation.py,sha256=fLy18Bdsfxpxu41vAtBzTy1QLl0iJAdW7UmicBUnRJQ,4124
359
359
  flwr/superlink/servicer/__init__.py,sha256=ZC-kILcUGeh6IxJsfu24cTzUqIGXmQfEKsGfhsnhBpM,717
360
- flwr/superlink/servicer/exec/__init__.py,sha256=_06QLcljT-Ihf_9peAkjMm9y1tEDmDRfic_vfGwJk0o,791
361
- flwr/superlink/servicer/exec/exec_event_log_interceptor.py,sha256=8sX0-GKYZwNftRr7hP0fBhy7LLzNzi9F4tcjrQ_a6Zo,5942
362
- flwr/superlink/servicer/exec/exec_grpc.py,sha256=7l7LmL2LZTd1Vd5b7M_lOaTO9-otvqgWUKQrgl5CPls,4105
363
- flwr/superlink/servicer/exec/exec_license_interceptor.py,sha256=cCK4pMaoEv6_pRs6psKsIuouLRGy9kkChQY3TcQDgg4,3328
364
- flwr/superlink/servicer/exec/exec_servicer.py,sha256=89B0fwA3CX_4Dd7151qsHdgyEYQEnOq4hTZloA_zO10,12499
365
- flwr/superlink/servicer/exec/exec_user_auth_interceptor.py,sha256=XMWX36JgVqsaIorQuenyIzImslCvg-UCC92yu44wneo,6196
360
+ flwr/superlink/servicer/control/__init__.py,sha256=qhUTMt_Mg4lxslCJYn5hDSrA-lXf5ya3617BT8kR-2Y,803
361
+ flwr/superlink/servicer/control/control_event_log_interceptor.py,sha256=HauUd7Xq-b1TFZmZVl9wpBITfDttn8-1_KhlEq-HJ8M,5966
362
+ flwr/superlink/servicer/control/control_grpc.py,sha256=g6Ihgt25R1H1t-e4BwmVPvy8ooJR7dsNTvxpJawgx7E,4198
363
+ flwr/superlink/servicer/control/control_license_interceptor.py,sha256=T3AzmRt-PPwyTq3hrdpmZHQd5_CpPOk7TtnFZrB-JRY,3349
364
+ flwr/superlink/servicer/control/control_servicer.py,sha256=Za_u9T5EFanrTu-aCc6hfgPzMKp2k6GyLuN0uYW5gsw,12553
365
+ flwr/superlink/servicer/control/control_user_auth_interceptor.py,sha256=9Aqhrt_UX80FXbIQVXUrqDHs5rD5CA7vEn0Bh-zPiYU,6232
366
366
  flwr/supernode/__init__.py,sha256=KgeCaVvXWrU3rptNR1y0oBp4YtXbAcrnCcJAiOoWkI4,707
367
367
  flwr/supernode/cli/__init__.py,sha256=JuEMr0-s9zv-PEWKuLB9tj1ocNfroSyNJ-oyv7ati9A,887
368
368
  flwr/supernode/cli/flower_supernode.py,sha256=fAkk9zGhoP8Sv05EkdXRiCtirTAzWkSZBqRoaDdgflk,8529
@@ -379,7 +379,7 @@ flwr/supernode/servicer/__init__.py,sha256=lucTzre5WPK7G1YLCfaqg3rbFWdNSb7ZTt-ca
379
379
  flwr/supernode/servicer/clientappio/__init__.py,sha256=7Oy62Y_oijqF7Dxi6tpcUQyOpLc_QpIRZ83NvwmB0Yg,813
380
380
  flwr/supernode/servicer/clientappio/clientappio_servicer.py,sha256=ClPoKco7Tjj_cxRPhZlQSrOvcGa8sJwGs26LUNZnI3Y,10608
381
381
  flwr/supernode/start_client_internal.py,sha256=iqJR8WbCW-8RQIRNwARZYoxhnlaAo5KnluCOEfRoLWM,21020
382
- flwr_nightly-1.21.0.dev20250801.dist-info/METADATA,sha256=bK5pwB6ZuUZaeFGcYNCDjT0D5q6NgZvI3WVbzjZhjBg,15966
383
- flwr_nightly-1.21.0.dev20250801.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
384
- flwr_nightly-1.21.0.dev20250801.dist-info/entry_points.txt,sha256=jNpDXGBGgs21RqUxelF_jwGaxtqFwm-MQyfz-ZqSjrA,367
385
- flwr_nightly-1.21.0.dev20250801.dist-info/RECORD,,
382
+ flwr_nightly-1.21.0.dev20250804.dist-info/METADATA,sha256=CgyYM6rGfwoI_1yoiVxIwTEnXczef-DwEA-CzBm9IU4,15966
383
+ flwr_nightly-1.21.0.dev20250804.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
384
+ flwr_nightly-1.21.0.dev20250804.dist-info/entry_points.txt,sha256=jNpDXGBGgs21RqUxelF_jwGaxtqFwm-MQyfz-ZqSjrA,367
385
+ flwr_nightly-1.21.0.dev20250804.dist-info/RECORD,,
flwr/proto/exec_pb2.py DELETED
@@ -1,62 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: flwr/proto/exec.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 fab_pb2 as flwr_dot_proto_dot_fab__pb2
16
- from flwr.proto import transport_pb2 as flwr_dot_proto_dot_transport__pb2
17
- from flwr.proto import recorddict_pb2 as flwr_dot_proto_dot_recorddict__pb2
18
- from flwr.proto import run_pb2 as flwr_dot_proto_dot_run__pb2
19
-
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\"\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
-
23
- _globals = globals()
24
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
25
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flwr.proto.exec_pb2', _globals)
26
- if _descriptor._USE_C_DESCRIPTORS == False:
27
- DESCRIPTOR._options = None
28
- _globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._options = None
29
- _globals['_STARTRUNREQUEST_OVERRIDECONFIGENTRY']._serialized_options = b'8\001'
30
- _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._options = None
31
- _globals['_LISTRUNSRESPONSE_RUNDICTENTRY']._serialized_options = b'8\001'
32
- _globals['_STARTRUNREQUEST']._serialized_start=139
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
- # @@protoc_insertion_point(module_scope)
File without changes