syft-flwr 0.2.1__tar.gz → 0.3.0__tar.gz
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.
Potentially problematic release.
This version of syft-flwr might be problematic. Click here for more details.
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/PKG-INFO +5 -4
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/README.md +2 -1
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/pyproject.toml +18 -3
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/__init__.py +1 -1
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/flower_client.py +10 -1
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/.gitignore +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/LICENSE +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/bootstrap.py +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/cli.py +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/config.py +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/consts.py +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/flower_server.py +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/grid.py +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/mounts.py +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/run.py +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/run_simulation.py +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/serde.py +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/strategy/__init__.py +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/strategy/fedavg.py +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/templates/main.py.tpl +0 -0
- {syft_flwr-0.2.1 → syft_flwr-0.3.0}/src/syft_flwr/utils.py +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: syft-flwr
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: syft_flwr is an open source framework that facilitate federated learning projects using Flower over the SyftBox protocol
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Requires-Python: >=3.10
|
|
7
7
|
Requires-Dist: flwr-datasets[vision]>=0.5.0
|
|
8
|
-
Requires-Dist: flwr[simulation]
|
|
8
|
+
Requires-Dist: flwr[simulation]==1.21.0
|
|
9
9
|
Requires-Dist: loguru>=0.7.3
|
|
10
10
|
Requires-Dist: safetensors>=0.6.2
|
|
11
|
-
Requires-Dist: syft-rds>=0.
|
|
11
|
+
Requires-Dist: syft-rds>=0.3.1
|
|
12
12
|
Requires-Dist: tomli-w>=1.2.0
|
|
13
13
|
Requires-Dist: tomli>=2.2.1
|
|
14
14
|
Requires-Dist: typing-extensions>=4.13.0
|
|
@@ -23,4 +23,5 @@ Description-Content-Type: text/markdown
|
|
|
23
23
|
## Example Usages
|
|
24
24
|
Please look at the `notebooks/` folder for example use cases:
|
|
25
25
|
- [FL diabetes prediction](notebooks/fl-diabetes-prediction/README.md) shows how to train a federated model over distributed machines for multiple rounds
|
|
26
|
-
- [Federated analytics](notebooks/federated-analytics-diabetes/README.md) shows how to query statistics from private datasets from distributed machines and then aggregate them
|
|
26
|
+
- [Federated analytics](notebooks/federated-analytics-diabetes/README.md) shows how to query statistics from private datasets from distributed machines and then aggregate them
|
|
27
|
+
- [FedRAG (Federated RAG)](notebooks/fedrag/README.md) demonstrates privacy-preserving question answering using Retrieval Augmented Generation across distributed document sources with remote data science workflow
|
|
@@ -7,4 +7,5 @@
|
|
|
7
7
|
## Example Usages
|
|
8
8
|
Please look at the `notebooks/` folder for example use cases:
|
|
9
9
|
- [FL diabetes prediction](notebooks/fl-diabetes-prediction/README.md) shows how to train a federated model over distributed machines for multiple rounds
|
|
10
|
-
- [Federated analytics](notebooks/federated-analytics-diabetes/README.md) shows how to query statistics from private datasets from distributed machines and then aggregate them
|
|
10
|
+
- [Federated analytics](notebooks/federated-analytics-diabetes/README.md) shows how to query statistics from private datasets from distributed machines and then aggregate them
|
|
11
|
+
- [FedRAG (Federated RAG)](notebooks/fedrag/README.md) demonstrates privacy-preserving question answering using Retrieval Augmented Generation across distributed document sources with remote data science workflow
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "syft-flwr"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.3.0"
|
|
4
4
|
description = "syft_flwr is an open source framework that facilitate federated learning projects using Flower over the SyftBox protocol"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
7
7
|
dependencies = [
|
|
8
|
-
"syft-rds>=0.
|
|
9
|
-
"flwr[simulation]
|
|
8
|
+
"syft-rds>=0.3.1",
|
|
9
|
+
"flwr[simulation]==1.21.0",
|
|
10
10
|
"flwr-datasets[vision]>=0.5.0",
|
|
11
11
|
"loguru>=0.7.3",
|
|
12
12
|
"safetensors>=0.6.2",
|
|
@@ -15,6 +15,10 @@ dependencies = [
|
|
|
15
15
|
"tomli-w>=1.2.0",
|
|
16
16
|
]
|
|
17
17
|
|
|
18
|
+
# [tool.uv.sources]
|
|
19
|
+
# syft-rds = { path = "../syft-data-science" } # for development
|
|
20
|
+
|
|
21
|
+
|
|
18
22
|
[project.scripts]
|
|
19
23
|
syft_flwr = "syft_flwr.cli:main"
|
|
20
24
|
|
|
@@ -29,6 +33,7 @@ dev-dependencies = [
|
|
|
29
33
|
"jupyterlab",
|
|
30
34
|
"pytest-xdist>=3.8.0",
|
|
31
35
|
"pytest-asyncio>=1.1.0",
|
|
36
|
+
"commitizen>=4.9.1",
|
|
32
37
|
]
|
|
33
38
|
|
|
34
39
|
[build-system]
|
|
@@ -52,3 +57,13 @@ extend-select = ["I"]
|
|
|
52
57
|
|
|
53
58
|
[tool.ruff.lint.per-file-ignores]
|
|
54
59
|
"**/__init__.py" = ["F401"]
|
|
60
|
+
|
|
61
|
+
[tool.commitizen]
|
|
62
|
+
name = "cz_conventional_commits"
|
|
63
|
+
version_provider = "pep621"
|
|
64
|
+
tag_format = "v$version"
|
|
65
|
+
update_changelog_on_bump = false
|
|
66
|
+
version_files = [
|
|
67
|
+
"pyproject.toml:^version\\s*=\\s*\"(?P<version>.*)\"$",
|
|
68
|
+
"src/syft_flwr/__init__.py:^__version__\\s*=\\s*\"(?P<version>.*)\"$",
|
|
69
|
+
]
|
|
@@ -159,11 +159,20 @@ def syftbox_flwr_client(client_app: ClientApp, context: Context, app_name: str):
|
|
|
159
159
|
"""Run the Flower ClientApp with SyftBox."""
|
|
160
160
|
# Setup
|
|
161
161
|
client, encryption_enabled, syft_flwr_app_name = setup_client(app_name)
|
|
162
|
-
box = SyftEvents(
|
|
162
|
+
box = SyftEvents(
|
|
163
|
+
app_name=syft_flwr_app_name,
|
|
164
|
+
client=client,
|
|
165
|
+
cleanup_expiry="1d", # Keep request/response files for 1 days
|
|
166
|
+
cleanup_interval="1d", # Run cleanup daily
|
|
167
|
+
)
|
|
163
168
|
|
|
164
169
|
logger.info(f"Started SyftBox Flower Client on: {box.client.email}")
|
|
165
170
|
logger.info(f"syft_flwr app name: {syft_flwr_app_name}")
|
|
166
171
|
|
|
172
|
+
# Check if cleanup is running
|
|
173
|
+
if box.is_cleanup_running():
|
|
174
|
+
logger.info("Cleanup service is active")
|
|
175
|
+
|
|
167
176
|
# Create handlers
|
|
168
177
|
message_handler = MessageHandler(client_app, context, encryption_enabled)
|
|
169
178
|
processor = RequestProcessor(message_handler, box, box.client.email)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|