Skip to content

Commit 0284ea2

Browse files
committed
Assign abilities to the app namespace for accessing individual ability classes by name
1 parent 0636bf4 commit 0284ea2

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

pyttman/core/internals.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,9 @@ class PyttmanApp(PrettyReprMixin):
139139
client: Any
140140
name: str | None = field(default=None)
141141
settings: Settings | None = field(default=None)
142-
abilities: set = field(default_factory=set)
143142
hooks: LifecycleHookRepository = field(
144143
default_factory=lambda: LifecycleHookRepository())
144+
_abilities: set = field(default_factory=set)
145145

146146
def start(self):
147147
"""
@@ -152,3 +152,13 @@ def start(self):
152152
self.client.run_client()
153153
except Exception:
154154
warnings.warn(traceback.format_exc())
155+
156+
@property
157+
def abilities(self):
158+
return self._abilities
159+
160+
@abilities.setter
161+
def abilities(self, abilities):
162+
for ability in abilities:
163+
setattr(self, ability.__class__.__name__, ability)
164+
self._abilities.add(ability)

0 commit comments

Comments
 (0)