Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
f898fbc
Remove flake8 and update ruff
chongshenng Apr 15, 2025
d146411
Bump ruff to 0.11.5
chongshenng Apr 15, 2025
7c8e575
Merge branch 'main' into bump-ruff
danieljanes Apr 16, 2025
ea23509
Merge branch 'main' into bump-ruff
chongshenng Apr 17, 2025
296c9e6
refactor(framework) Improve utility functions for Shamir's secret sha…
panh99 Apr 17, 2025
90eeacc
docs(framework) Fix the contributor doc (#5240)
panh99 Apr 17, 2025
35f84f5
Update text and language files (#5259)
github-actions[bot] Apr 18, 2025
0b66dca
feat(framework) Move `root-certificates` check to `init_channel` in C…
chongshenng Apr 21, 2025
1b7fd16
fix(framework) Raise error when doing `flwr login` with `insecure = t…
chongshenng Apr 21, 2025
6245b73
ci(*:skip) Fix paths in `CODEOWNERS` (#5251)
panh99 Apr 22, 2025
cca9eeb
fix(framework) Ensure backward compatibility of `RecordDict` (#5239)
panh99 Apr 22, 2025
ebfff2c
fix(framework) Fix Dependabot framework updates (#5267)
Robert-Steiner Apr 22, 2025
c6add43
fix(framework) Fix nightly release CI (#5268)
Robert-Steiner Apr 22, 2025
06c969d
refactor(framework) Warn once when using deprecated reply `Message` c…
jafermarq Apr 22, 2025
a0904a4
feat(framework) Add unit tests for `RecordDict` backward compatbility…
panh99 Apr 22, 2025
0fb9398
feat(framework) Add `latest` tag to Flower Docker images for Ubuntu 2…
Robert-Steiner Apr 22, 2025
4d09185
fix(*:skip) Fix FlowerTune typos in example and template (#5272)
OctCarp Apr 22, 2025
b0745fc
fix(framework) Fix the `update_changelog.py` script after restructuri…
panh99 Apr 22, 2025
58a4fb6
feat(framework) Update changelog for `v1.18.0` (#5247)
panh99 Apr 22, 2025
6061969
ci(framework:skip) Fix release CI (#5275)
panh99 Apr 22, 2025
c01516f
ci(framework) Fix wheel building (#5276)
charlesbvll Apr 22, 2025
c7ffba4
refactor(framework:skip) Update the release date for `v1.18.0` (#5277)
panh99 Apr 23, 2025
755e0c2
Update text and language files (#5279)
github-actions[bot] Apr 23, 2025
0849f2a
ci(framework) Update docker/build-push-action to 6.15.0 (#5282)
Robert-Steiner Apr 23, 2025
91ac408
ci(*:skip) Bump versions to `v1.19.0` (#5266)
panh99 Apr 23, 2025
4a0c98b
ci(framework) Remove auto triage workflow (#5225)
WilliamLindskog Apr 23, 2025
e7a355e
docs(framework) Update Docker READMEs for 1.18.0 (#5283)
chongshenng Apr 23, 2025
19c9803
ci(*:skip) Add `## Unreleased` header (#5265)
panh99 Apr 23, 2025
8668098
Update text and language files (#5288)
github-actions[bot] Apr 24, 2025
b21db58
feat(intelligence) Add Flower Intelligence Kotlin SDK project structu…
Apr 24, 2025
36c3f68
feat(intelligence) Add Kotlin types (#5280)
Apr 24, 2025
fa8666f
fix(framework) Bump Flower version in pyproject.toml (#5294)
chongshenng Apr 25, 2025
74e7370
fix(framework) Add Python 3.10 and 3.11 to SuperLink Docker README (#…
chongshenng Apr 25, 2025
0de97c1
fix(framework) Fix Flower version update tool (#5296)
chongshenng Apr 25, 2025
c4ba023
refactor(intelligence) Format Kotlin SDK code (#5292)
Apr 25, 2025
44ba942
refactor(framework) Move `Array` into separate module (#5299)
danieljanes Apr 28, 2025
ab1abfd
ci(intelligence) Add formatting CI for Kotlin SDK (#5293)
Apr 28, 2025
863d7c5
Update text and language files (#5305)
github-actions[bot] Apr 29, 2025
b4cdb48
feat(intelligence) Add Remote Engine Kotlin SDK (#5281)
Apr 29, 2025
edfc283
feat(intelligence) Add unit tests for Kotlin SDK (#5289)
Apr 29, 2025
f00b8c5
docs(intelligence) Add Kotlin SDK API reference (#5306)
Apr 29, 2025
7428614
ci(*:skip) Change feature request template and automatically add Type…
WilliamLindskog Apr 29, 2025
b0a1b35
ci(*:skip) Remove title from feature request (#5313)
WilliamLindskog Apr 30, 2025
c8b5465
ci(*:skip) Add Type Bug to bug issue template (#5298)
WilliamLindskog Apr 30, 2025
53bce46
refactor(framework) Rename "ping" to "heartbeat" (#5310)
panh99 Apr 30, 2025
17d9cab
feat(framework) Add utils for heart beat protocols (#5228)
panh99 Apr 30, 2025
4fb8613
docs(intelligence) Add Kotlin SDK docs (#5307)
Apr 30, 2025
1f30bb2
ci(framework) Add workflow to ping org member if stale under discussi…
WilliamLindskog Apr 30, 2025
36e4b60
ci(framework) Add workflow that notifies Flower maintainer if issue w…
WilliamLindskog Apr 30, 2025
ffc8c21
refactor(framework) Use `HeartbeatSender` for SuperNode heartbeats (#…
panh99 Apr 30, 2025
da24f0a
Remove declaring const fetch, already in actions github-script v6 (#5…
WilliamLindskog Apr 30, 2025
a7eafb6
build(deps-dev): bump vite from 6.2.6 to 6.2.7 in /intelligence/ts (#…
dependabot[bot] May 1, 2025
d08a8cc
ci(*:skip) Remove notify Flower maintainer for external dev closing i…
WilliamLindskog May 1, 2025
54960f8
ci(*:skip) Remove label Under Discussion from query (#5318)
WilliamLindskog May 1, 2025
9f3c99b
refactor(framework) Rename `Heartbeat` to `SendNodeHeartbeat` (#5315)
panh99 May 5, 2025
57e9053
refactor(framework) Move heartbeat-related protocol to a separate fil…
panh99 May 5, 2025
277f50a
refactor(framework:skip) Bump `poetry` to 2.1.3 (#5328)
chongshenng May 7, 2025
c6fd1cf
refactor(baselines) Upgrade StatAvg Baseline to new flwr format (#4952)
maddox-j May 7, 2025
bad7db5
Update text and language files (#5337)
github-actions[bot] May 8, 2025
5191a62
feat(framework) Introduce `Inflatable` class (#5335)
jafermarq May 8, 2025
348be94
ci(framework:skip) Adjust Slack notifications for stale issues (#5326)
WilliamLindskog May 9, 2025
73dd96e
feat(framework) Introduce `inflate` functionality in `InflatableObjec…
jafermarq May 9, 2025
95cf7b6
ci(intelligence) Add Kotlin SDK release script (#5333)
May 9, 2025
086ef2d
refactor(framework) Move utils functions out of `serde.py` (#5343)
jafermarq May 9, 2025
4f44dc8
feat(datasets) Add `ContinuousPartitioner` (#5235)
Haoran-Jie May 9, 2025
025619c
feat(framework) Make `Array`, `ConfigRecord` and `MetricRecord` infla…
jafermarq May 9, 2025
0aaf0f2
Update text and language files (#5345)
github-actions[bot] May 10, 2025
dba6e79
refactor(examples) Update `custom-mods` example (#5063)
jafermarq May 10, 2025
7ce2dd9
feat(baselines) Add `Floco` Baseline (#4941)
dennis-grinwald May 11, 2025
3664fc1
refactor(examples) Bump version of `torch` and `torchvision` used in …
jafermarq May 11, 2025
08ef6c0
build(deps): bump torch from 2.4.0 to 2.7.0 in /examples/flowertune-l…
dependabot[bot] May 11, 2025
1d59931
refactor(framework) Set upper limit for `click` (#5350)
jafermarq May 11, 2025
0d2c39c
feat(framework) Add `build_fab` function to build FAB in memory (#5334)
panh99 May 11, 2025
7c447ef
refactor(*:skip) Update baselines template and baselines CI installat…
jafermarq May 11, 2025
47070bf
feat(framework) Add and implement `LinkState.acknowledge_app_heartbea…
panh99 May 12, 2025
be90956
docs(intelligence) Add Kotlin API reference (#5339)
May 12, 2025
c263433
ci(intelligence) Add Kotlin API generation to CI (#5352)
May 12, 2025
19098ce
refactor(intelligence) Update Kotlin API chat function signature (#5355)
May 12, 2025
afc2482
docs(intelligence) Update Kotlin API chat documentation (#5357)
May 12, 2025
aa74a79
fix(baselines) Upgrade torch versions (#5359)
maddox-j May 12, 2025
1f68157
build(deps): bump torch in /examples/quickstart-huggingface (#5260)
dependabot[bot] May 13, 2025
78ac6d7
feat(framework) Add `is_running` property to `HeartbeatSender` (#5358)
panh99 May 13, 2025
b18c41a
feat(intelligence) Add Kotlin SDK e2ee (#5362)
danielnugraha May 13, 2025
b286c1f
feat(framework) Add `children` property to `InflatableObject` (#5353)
jafermarq May 13, 2025
2a34bd2
feat(framework) Make `ArrayRecord` an `InflatableObject` (#5354)
jafermarq May 13, 2025
b97f42f
feat(framework) Make `RecordDict` an `InflatableObject` (#5364)
jafermarq May 13, 2025
24b1423
feat(intelligence) Bump Kotlin SDK version to v0.1.8 (#5368)
danielnugraha May 14, 2025
06d0b48
Update text and language files (#5365)
github-actions[bot] May 14, 2025
534620b
docs(framework) Fix paths in docker docs (#5367)
panh99 May 14, 2025
e40662f
fix(framework) Fix `devcontainer.json` config due to failing `taplo` …
chongshenng May 14, 2025
0fa8e1d
feat(framework) Add `SendAppHeartbeat` to `ServerAppIo` service (#5322)
panh99 May 14, 2025
1fd498a
feat(framework) Add ServerApp heartbeat (#5332)
panh99 May 14, 2025
8a03189
feat(framework) Add `Pull/PushObjectRequest` to `ServerAppIo` (#5369)
jafermarq May 14, 2025
1c9b83c
refactor(framework) Add `get_object_head_values_from_object_content` …
panh99 May 14, 2025
5bf7bec
fix(datasets) Fix partition inconsistencies across dataset splits (#5…
adamtupper May 14, 2025
df7e111
feat(framework) Enable app heartbeat from `flwr-simulation` (#5370)
panh99 May 14, 2025
d51a8f2
feat(framework) Add `Pull/PushObjectRequest` to `Fleet API` (#5372)
jafermarq May 14, 2025
daba2dc
Update text and language files (#5373)
github-actions[bot] May 15, 2025
b8453c2
feat(framework) Include child object IDs in the object head (#5380)
panh99 May 16, 2025
6e097dd
Fix ruff
chongshenng May 16, 2025
d8d7ad5
Merge branch 'main' into bump-ruff
chongshenng May 16, 2025
2c23159
Merge branch 'main' into bump-ruff
chongshenng Jun 5, 2025
2eea7ca
Merge branch 'main' into bump-ruff
chongshenng Aug 29, 2025
40ab75e
Bump ruff and attempt to fix B039
chongshenng Aug 29, 2025
a62b235
Merge branch 'main' into bump-ruff
chongshenng Nov 13, 2025
047fc9c
Bump ruff to 0.14.4
chongshenng Nov 13, 2025
2614d81
Address ruff errors
chongshenng Nov 13, 2025
20438aa
Rebase
chongshenng Nov 17, 2025
e74b8f4
Fix
chongshenng Nov 17, 2025
dc12878
Fix
chongshenng Nov 17, 2025
15918e5
Fix
chongshenng Nov 17, 2025
0fa9895
Fix contextvar
chongshenng Nov 17, 2025
7315e3e
Fix unnecessary list comprehension
chongshenng Nov 17, 2025
07e4030
Merge branch 'main' into bump-ruff
chongshenng Nov 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions datasets/flwr_datasets/federated_dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ def __init__(
# Indicate if the dataset is prepared for `load_partition` or `load_split`
self._dataset_prepared: bool = False
self._event = {
"load_partition": {split: False for split in self._partitioners},
"load_partition": dict.fromkeys(self._partitioners, False),
}
self._load_dataset_kwargs = load_dataset_kwargs

Expand Down Expand Up @@ -323,7 +323,7 @@ def _prepare_dataset(self) -> None:
if self._preprocessor:
self._dataset = self._preprocessor(self._dataset)
available_splits = list(self._dataset.keys())
self._event["load_split"] = {split: False for split in available_splits}
self._event["load_split"] = dict.fromkeys(available_splits, False)
self._dataset_prepared = True

def _check_if_no_split_keyword_possible(self) -> None:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ def _determine_partition_id_to_indices_if_needed( # pylint: disable=R0914
# Values are the smallest indices of each array in `label_samples`
# which will be sampled next. Once a sample is taken from a label/key,
# increment the value (index) by 1.
index_tracker = {k: 0 for k in unique_labels}
index_tracker = dict.fromkeys(unique_labels, 0)

# Prepare data structure to store indices assigned to partition ids
self._partition_id_to_indices = {
Expand Down
2 changes: 1 addition & 1 deletion datasets/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ pylint = "==3.3.1"
parameterized = "==0.9.0"
pytest = "==7.4.4"
pytest-watcher = "==0.4.3"
ruff = "==0.4.5"
ruff = "==0.14.5"
devtool = [{ path = "./devtool", develop = true }]

[tool.isort]
Expand Down
10 changes: 5 additions & 5 deletions framework/py/flwr/common/serde_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,15 +190,15 @@ def get_str(self, length: int | None = None) -> str:
def get_value(self, dtype: type[T] | str) -> T:
"""Create a value of a given type."""
ret: Any = None
if dtype == bool:
if dtype is bool:
ret = self.rng.random() < 0.5
elif dtype == str:
elif dtype is str:
ret = self.get_str(self.rng.randint(10, 100))
elif dtype == int:
elif dtype is int:
ret = self.rng.randint(-1 << 63, (1 << 63) - 1)
elif dtype == float:
elif dtype is float:
ret = (self.rng.random() - 0.5) * (2.0 ** self.rng.randint(0, 50))
elif dtype == bytes:
elif dtype is bytes:
ret = self.randbytes(self.rng.randint(10, 100))
elif dtype == "uint":
ret = self.rng.randint(0, (1 << 64) - 1)
Expand Down
4 changes: 2 additions & 2 deletions framework/py/flwr/common/serde_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ def record_value_dict_to_proto(
Note: `bool` MUST be put in the front of allowd_types if it exists.
"""
# Move bool to the front
if bool in allowed_types and allowed_types[0] != bool:
if bool in allowed_types and allowed_types[0] is not bool:
allowed_types.remove(bool)
allowed_types.insert(0, bool)

Expand All @@ -125,7 +125,7 @@ def proto(_v: Any) -> T:


def record_value_dict_from_proto(
value_dict_proto: MutableMapping[str, Any]
value_dict_proto: MutableMapping[str, Any],
) -> dict[str, Any]:
"""Deserialize the record value dict from ProtoBuf."""
return {k: _record_value_from_proto(v) for k, v in value_dict_proto.items()}
Expand Down
8 changes: 4 additions & 4 deletions framework/py/flwr/server/compat/grid_client_proxy_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ def test_get_properties_and_fail(self) -> None:

# Execute and assert
self.assertRaises(
Exception, self.client.get_properties, ins, timeout=None, group_id=0
ValueError, self.client.get_properties, ins, timeout=None, group_id=0
)
self._common_assertions(ins)

Expand All @@ -174,7 +174,7 @@ def test_get_parameters_and_fail(self) -> None:

# Execute and assert
self.assertRaises(
Exception, self.client.get_parameters, ins, timeout=None, group_id=0
ValueError, self.client.get_parameters, ins, timeout=None, group_id=0
)
self._common_assertions(ins)

Expand All @@ -188,7 +188,7 @@ def test_fit_and_fail(self) -> None:
ins = FitIns(parameters, {})

# Execute and assert
self.assertRaises(Exception, self.client.fit, ins, timeout=None, group_id=0)
self.assertRaises(ValueError, self.client.fit, ins, timeout=None, group_id=0)
self._common_assertions(ins)

def test_evaluate_and_fail(self) -> None:
Expand All @@ -202,7 +202,7 @@ def test_evaluate_and_fail(self) -> None:

# Execute and assert
self.assertRaises(
Exception, self.client.evaluate, ins, timeout=None, group_id=0
ValueError, self.client.evaluate, ins, timeout=None, group_id=0
)
self._common_assertions(ins)

Expand Down
2 changes: 1 addition & 1 deletion framework/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ furo = "==2024.8.6"
sphinx-reredirects = "==0.1.5"
nbsphinx = "==0.9.5"
nbstripout = "==0.6.1"
ruff = "==0.4.5"
ruff = "==0.14.5"
sphinx-argparse = "==0.4.0"
pipreqs = "==0.4.13"
mdformat = "==0.7.22"
Expand Down