Skip to content

Commit 564abb6

Browse files
committed
refactor: Take the baseline flag value in AsyncFlagValueChangeListener init
1 parent 9869242 commit 564abb6

1 file changed

Lines changed: 4 additions & 5 deletions

File tree

ldclient/impl/async_flag_tracker.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,21 @@
99
class AsyncFlagValueChangeListener:
1010
"""Calls the user's listener when a specific flag's evaluated value changes for a specific context."""
1111

12-
def __init__(self, key: str, context: Context, listener: Callable[[FlagValueChange], None], eval_fn: Callable, scheduler: AsyncCallbackScheduler):
12+
def __init__(self, key: str, context: Context, listener: Callable[[FlagValueChange], None], eval_fn: Callable, scheduler: AsyncCallbackScheduler, value: Any):
1313
self.__key = key
1414
self.__context = context
1515
self.__listener = listener
1616
self.__eval_fn = eval_fn
1717
self.__scheduler = scheduler
1818

1919
self.__lock = AsyncLock()
20-
self.__value: Any = None
20+
self.__value = value
2121

2222
@classmethod
2323
async def create(cls, key: str, context: Context, listener: Callable[[FlagValueChange], None], eval_fn: Callable, scheduler: AsyncCallbackScheduler) -> 'AsyncFlagValueChangeListener':
2424
"""Evaluates the flag once to capture the baseline value, then returns the listener."""
25-
instance = cls(key, context, listener, eval_fn, scheduler)
26-
instance.__value = await eval_fn(key, context)
27-
return instance
25+
value = await eval_fn(key, context)
26+
return cls(key, context, listener, eval_fn, scheduler, value)
2827

2928
def __call__(self, flag_change: FlagChange):
3029
self.__scheduler.call(self._on_flag_change, flag_change)

0 commit comments

Comments
 (0)