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
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-26 01:53 +0800
1"""FlagChangeListener and AsyncFlagChangeListener type aliases.
3These are defined separately so that :mod:`lexigram.features.manager.flag_manager`
4can import them without circular dependencies.
5"""
7from __future__ import annotations
9from collections.abc import Callable, Coroutine
10from typing import Any
12# Signature: (flag_name, old_enabled, new_enabled)
13FlagChangeListener = Callable[[str, bool, bool], None]
15# Async variant — same signature but returns a coroutine.
16AsyncFlagChangeListener = Callable[[str, bool, bool], Coroutine[Any, Any, None]]
18__all__ = ["AsyncFlagChangeListener", "FlagChangeListener"]