flwr-nightly 1.20.0.dev20250702__py3-none-any.whl → 1.20.0.dev20250704__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.
- flwr/cli/utils.py +1 -1
- flwr/common/exit/exit_code.py +6 -1
- flwr/superexec/exec_license_interceptor.py +5 -1
- flwr/superexec/exec_user_auth_interceptor.py +6 -2
- {flwr_nightly-1.20.0.dev20250702.dist-info → flwr_nightly-1.20.0.dev20250704.dist-info}/METADATA +1 -1
- {flwr_nightly-1.20.0.dev20250702.dist-info → flwr_nightly-1.20.0.dev20250704.dist-info}/RECORD +8 -8
- {flwr_nightly-1.20.0.dev20250702.dist-info → flwr_nightly-1.20.0.dev20250704.dist-info}/WHEEL +0 -0
- {flwr_nightly-1.20.0.dev20250702.dist-info → flwr_nightly-1.20.0.dev20250704.dist-info}/entry_points.txt +0 -0
flwr/cli/utils.py
CHANGED
@@ -320,7 +320,7 @@ def flwr_cli_grpc_exc_handler() -> Iterator[None]:
|
|
320
320
|
raise typer.Exit(code=1) from None
|
321
321
|
if e.code() == grpc.StatusCode.PERMISSION_DENIED:
|
322
322
|
typer.secho(
|
323
|
-
"❌ Permission denied.
|
323
|
+
"❌ Permission denied.",
|
324
324
|
fg=typer.colors.RED,
|
325
325
|
bold=True,
|
326
326
|
)
|
flwr/common/exit/exit_code.py
CHANGED
@@ -30,6 +30,7 @@ class ExitCode:
|
|
30
30
|
# SuperLink-specific exit codes (100-199)
|
31
31
|
SUPERLINK_THREAD_CRASH = 100
|
32
32
|
SUPERLINK_LICENSE_INVALID = 101
|
33
|
+
SUPERLINK_LICENSE_MISSING = 102
|
33
34
|
|
34
35
|
# ServerApp-specific exit codes (200-299)
|
35
36
|
|
@@ -65,6 +66,10 @@ EXIT_CODE_HELP = {
|
|
65
66
|
"The license is invalid or has expired. "
|
66
67
|
"Please contact `hello@flower.ai` for assistance."
|
67
68
|
),
|
69
|
+
ExitCode.SUPERLINK_LICENSE_MISSING: (
|
70
|
+
"The license is missing. Please specify the license key by setting the "
|
71
|
+
"environment variable `FLWR_LICENSE_KEY`."
|
72
|
+
),
|
68
73
|
# ServerApp-specific exit codes (200-299)
|
69
74
|
# SuperNode-specific exit codes (300-399)
|
70
75
|
ExitCode.SUPERNODE_REST_ADDRESS_INVALID: (
|
@@ -77,7 +82,7 @@ EXIT_CODE_HELP = {
|
|
77
82
|
"to be provided (providing only one of them is not sufficient)."
|
78
83
|
),
|
79
84
|
ExitCode.SUPERNODE_NODE_AUTH_KEYS_INVALID: (
|
80
|
-
"Node
|
85
|
+
"Node authentication requires elliptic curve private and public key pair. "
|
81
86
|
"Please ensure that the file path points to a valid private/public key "
|
82
87
|
"file and try again."
|
83
88
|
),
|
@@ -58,7 +58,11 @@ class ExecLicenseInterceptor(grpc.ServerInterceptor): # type: ignore
|
|
58
58
|
call = method_handler.unary_unary or method_handler.unary_stream
|
59
59
|
|
60
60
|
if not self.license_plugin.check_license():
|
61
|
-
context.abort(
|
61
|
+
context.abort(
|
62
|
+
grpc.StatusCode.PERMISSION_DENIED,
|
63
|
+
"❗️ License check failed. Please contact the SuperLink "
|
64
|
+
"administrator.",
|
65
|
+
)
|
62
66
|
raise grpc.RpcError()
|
63
67
|
|
64
68
|
return call(request, context) # type: ignore
|
@@ -108,7 +108,9 @@ class ExecUserAuthInterceptor(grpc.ServerInterceptor): # type: ignore
|
|
108
108
|
# Check if the user is authorized
|
109
109
|
if not self.authz_plugin.verify_user_authorization(account_info):
|
110
110
|
context.abort(
|
111
|
-
grpc.StatusCode.PERMISSION_DENIED,
|
111
|
+
grpc.StatusCode.PERMISSION_DENIED,
|
112
|
+
"❗️ User not authorized. "
|
113
|
+
"Please contact the SuperLink administrator.",
|
112
114
|
)
|
113
115
|
raise grpc.RpcError()
|
114
116
|
return call(request, context) # type: ignore
|
@@ -127,7 +129,9 @@ class ExecUserAuthInterceptor(grpc.ServerInterceptor): # type: ignore
|
|
127
129
|
# Check if the user is authorized
|
128
130
|
if not self.authz_plugin.verify_user_authorization(account_info):
|
129
131
|
context.abort(
|
130
|
-
grpc.StatusCode.PERMISSION_DENIED,
|
132
|
+
grpc.StatusCode.PERMISSION_DENIED,
|
133
|
+
"❗️ User not authorized. "
|
134
|
+
"Please contact the SuperLink administrator.",
|
131
135
|
)
|
132
136
|
raise grpc.RpcError()
|
133
137
|
|
{flwr_nightly-1.20.0.dev20250702.dist-info → flwr_nightly-1.20.0.dev20250704.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: flwr-nightly
|
3
|
-
Version: 1.20.0.
|
3
|
+
Version: 1.20.0.dev20250704
|
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
|
{flwr_nightly-1.20.0.dev20250702.dist-info → flwr_nightly-1.20.0.dev20250704.dist-info}/RECORD
RENAMED
@@ -73,7 +73,7 @@ flwr/cli/new/templates/app/pyproject.tensorflow.toml.tpl,sha256=3-gDei-K7zskh5dD
|
|
73
73
|
flwr/cli/run/__init__.py,sha256=RPyB7KbYTFl6YRiilCch6oezxrLQrl1kijV7BMGkLbA,790
|
74
74
|
flwr/cli/run/run.py,sha256=psmr215gkV0e0QtX9NFp7KUwKSA_ZwekdJmoL1zFyfw,8478
|
75
75
|
flwr/cli/stop.py,sha256=l8DcRkA---CESVJgc7iTHLWIBAPGxWIfoem8qSU3lZQ,4972
|
76
|
-
flwr/cli/utils.py,sha256=
|
76
|
+
flwr/cli/utils.py,sha256=Y2VSSsgPeWMjTdezXfrDWvCwYIabmvnsRYXssDt_MBQ,11965
|
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
|
@@ -118,7 +118,7 @@ flwr/common/event_log_plugin/__init__.py,sha256=ts3VAL3Fk6Grp1EK_1Qg_V-BfOof9F86
|
|
118
118
|
flwr/common/event_log_plugin/event_log_plugin.py,sha256=eK8OaDFagQRwqpb9eV0cJcm2ErtEBpMxFbhxJNx6n5w,2061
|
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
|
-
flwr/common/exit/exit_code.py,sha256=
|
121
|
+
flwr/common/exit/exit_code.py,sha256=qpOQsh2-TNJosxrGpR-rKnLBiv5lnl_2sClNoDblAW4,3882
|
122
122
|
flwr/common/exit_handlers.py,sha256=IaqJ60fXZuu7McaRYnoYKtlbH9t4Yl9goNExKqtmQbs,4304
|
123
123
|
flwr/common/grpc.py,sha256=manTaHaPiyYngUq1ErZvvV2B2GxlXUUUGRy3jc3TBIQ,9798
|
124
124
|
flwr/common/heartbeat.py,sha256=SyEpNDnmJ0lni0cWO67rcoJVKasCLmkNHm3dKLeNrLU,5749
|
@@ -344,9 +344,9 @@ flwr/superexec/app.py,sha256=U2jjOHb2LGWoU7vrl9_czTzre9O2mPxu3CPGUZ86sK4,1465
|
|
344
344
|
flwr/superexec/deployment.py,sha256=cFxhFom-0zv93HLNjNcUdBy3Sf6JwshRoXPQtcZunF0,6797
|
345
345
|
flwr/superexec/exec_event_log_interceptor.py,sha256=7aBjZ4lkpOIyWut0s394OpMePr16g_Te594s-9aDM9Q,5774
|
346
346
|
flwr/superexec/exec_grpc.py,sha256=xyyxrhPQLGX7tafGadv5DXLUzVoUIkGLd53_raOfNHk,4202
|
347
|
-
flwr/superexec/exec_license_interceptor.py,sha256
|
347
|
+
flwr/superexec/exec_license_interceptor.py,sha256=Wg6Wt4ZdSOFDEPAtI7TQZbkLSJc0x8KJ5Xk_5iWyc74,3160
|
348
348
|
flwr/superexec/exec_servicer.py,sha256=c0nwdFBiS6CbKrRA7ffOpsgASOLeaRV_ICwxDfxNGAg,12498
|
349
|
-
flwr/superexec/exec_user_auth_interceptor.py,sha256=
|
349
|
+
flwr/superexec/exec_user_auth_interceptor.py,sha256=AQnSb7dpVeuHR0BMyUcUJeBTXllnnrPygMVErBfTkiI,6028
|
350
350
|
flwr/superexec/executor.py,sha256=LaErHRJvNggjWV6FI6eajgKfnwOvSv2UqzFH253yDro,3265
|
351
351
|
flwr/superexec/simulation.py,sha256=62rSLcS-1wnMsMsafSQuIDLs5ZS6Ail1spkZ-alNNTg,4156
|
352
352
|
flwr/superlink/__init__.py,sha256=GNSuJ4-N6Z8wun2iZNlXqENt5beUyzC0Gi_tN396bbM,707
|
@@ -364,7 +364,7 @@ flwr/supernode/servicer/__init__.py,sha256=lucTzre5WPK7G1YLCfaqg3rbFWdNSb7ZTt-ca
|
|
364
364
|
flwr/supernode/servicer/clientappio/__init__.py,sha256=7Oy62Y_oijqF7Dxi6tpcUQyOpLc_QpIRZ83NvwmB0Yg,813
|
365
365
|
flwr/supernode/servicer/clientappio/clientappio_servicer.py,sha256=d3GdIabycUoDBDL_eVlt513knGSjQW3-9lG6Cw4QEk4,5719
|
366
366
|
flwr/supernode/start_client_internal.py,sha256=DAXuReZ1FCXt9Y1KbM0p-dI50ROWPEJXzfKrl14OE6k,18233
|
367
|
-
flwr_nightly-1.20.0.
|
368
|
-
flwr_nightly-1.20.0.
|
369
|
-
flwr_nightly-1.20.0.
|
370
|
-
flwr_nightly-1.20.0.
|
367
|
+
flwr_nightly-1.20.0.dev20250704.dist-info/METADATA,sha256=xIxyFotU6joGiiu2-zmyadLLFm7tW5vb8OCZukeKTTU,15910
|
368
|
+
flwr_nightly-1.20.0.dev20250704.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
369
|
+
flwr_nightly-1.20.0.dev20250704.dist-info/entry_points.txt,sha256=jNpDXGBGgs21RqUxelF_jwGaxtqFwm-MQyfz-ZqSjrA,367
|
370
|
+
flwr_nightly-1.20.0.dev20250704.dist-info/RECORD,,
|
{flwr_nightly-1.20.0.dev20250702.dist-info → flwr_nightly-1.20.0.dev20250704.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|