Skip to content

Commit c811fbc

Browse files
committed
reimports and public api for mixins.personalized
1 parent 0765492 commit c811fbc

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
from enum import Enum
2+
3+
from fl4health.clients.basic_client import BasicClient
4+
from fl4health.mixins.personalized.ditto import DittoPersonalizedMixin
5+
6+
7+
class PersonalizedModes(str, Enum):
8+
DITTO = "ditto"
9+
10+
11+
PersonalizedMixinRegistry = {"ditto": DittoPersonalizedMixin}
12+
13+
14+
def make_it_personal(client_base_type: type[BasicClient], mode: PersonalizedModes) -> type[BasicClient]:
15+
if mode == "ditto":
16+
17+
return type(
18+
f"Ditto{client_base_type.__name__}",
19+
(
20+
PersonalizedMixinRegistry[mode],
21+
client_base_type,
22+
),
23+
{
24+
# Special flag to bypass validation
25+
"_dynamically_created": True
26+
},
27+
)
28+
else:
29+
raise ValueError("Unrecognized personalized mode.")
30+
31+
32+
__all__ = ["DittoPersonalizedMixin", "PersonalizedModes", "PersonalizedMixinRegistry", "make_it_personal"]

0 commit comments

Comments
 (0)