Coverage for src/lexigram/features/manager/types.py: 100%

6 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-26 01:53 +0800

1"""FlagChangeListener and AsyncFlagChangeListener type aliases. 

2 

3These are defined separately so that :mod:`lexigram.features.manager.flag_manager` 

4can import them without circular dependencies. 

5""" 

6 

7from __future__ import annotations 

8 

9from collections.abc import Callable, Coroutine 

10from typing import Any 

11 

12# Signature: (flag_name, old_enabled, new_enabled) 

13FlagChangeListener = Callable[[str, bool, bool], None] 

14 

15# Async variant — same signature but returns a coroutine. 

16AsyncFlagChangeListener = Callable[[str, bool, bool], Coroutine[Any, Any, None]] 

17 

18__all__ = ["AsyncFlagChangeListener", "FlagChangeListener"]