Coverage report: 81%

Files Functions Classes

coverage.py v7.15.4, created at 2026-08-26 02:04 +0800

File function   statements missing excluded   coverage
src/lexigram/features/__init__.py __getattr__   8 2 0   75%
src/lexigram/features/__init__.py __dir__   1 1 0   0%
src/lexigram/features/__init__.py (no function)   9 0 15   100%
src/lexigram/features/backends/__init__.py (no function)   8 0 0   100%
src/lexigram/features/backends/base.py AbstractFlagProvider.get_flag_definition   0 0 0   100%
src/lexigram/features/backends/base.py AbstractFlagProvider.get_all_flags   0 0 0   100%
src/lexigram/features/backends/base.py AbstractFlagProvider.evaluate   4 0 0   100%
src/lexigram/features/backends/base.py AbstractFlagProvider.evaluate_sync   1 0 0   100%
src/lexigram/features/backends/base.py AbstractFlagProvider.get_flag   5 0 0   100%
src/lexigram/features/backends/base.py AbstractFlagProvider.get_flag_sync   8 0 0   100%
src/lexigram/features/backends/base.py AbstractFlagProvider.get_variant   7 1 0   86%
src/lexigram/features/backends/base.py AbstractFlagProvider.get_variant_sync   8 2 0   75%
src/lexigram/features/backends/base.py AbstractFlagProvider._evaluate_flag   7 1 0   86%
src/lexigram/features/backends/base.py AbstractFlagProvider._evaluate_boolean   1 0 0   100%
src/lexigram/features/backends/base.py AbstractFlagProvider._evaluate_percentage   4 0 0   100%
src/lexigram/features/backends/base.py AbstractFlagProvider._evaluate_user_list   2 0 0   100%
src/lexigram/features/backends/base.py AbstractFlagProvider._evaluate_user_attribute   8 0 0   100%
src/lexigram/features/backends/base.py AbstractFlagProvider._evaluate_time_based   7 1 0   86%
src/lexigram/features/backends/base.py AbstractFlagProvider._evaluate_variant   15 1 0   93%
src/lexigram/features/backends/base.py _dict_to_context   3 0 0   100%
src/lexigram/features/backends/base.py (no function)   30 0 0   100%
src/lexigram/features/backends/cache.py CacheBackendFlagProvider.__init__   3 3 0   0%
src/lexigram/features/backends/cache.py CacheBackendFlagProvider._key   1 1 0   0%
src/lexigram/features/backends/cache.py CacheBackendFlagProvider._flag_to_dict   1 1 0   0%
src/lexigram/features/backends/cache.py CacheBackendFlagProvider._dict_to_flag   3 3 0   0%
src/lexigram/features/backends/cache.py CacheBackendFlagProvider._dict_to_flag._parse_dt   3 3 0   0%
src/lexigram/features/backends/cache.py CacheBackendFlagProvider.get_flag   8 8 0   0%
src/lexigram/features/backends/cache.py CacheBackendFlagProvider.add_flag   3 3 0   0%
src/lexigram/features/backends/cache.py CacheBackendFlagProvider.remove_flag   2 2 0   0%
src/lexigram/features/backends/cache.py CacheBackendFlagProvider.list_flags   2 2 0   0%
src/lexigram/features/backends/cache.py CacheBackendFlagProvider.evaluate   2 2 0   0%
src/lexigram/features/backends/cache.py (no function)   21 0 2   100%
src/lexigram/features/backends/chained.py ChainedProvider.__init__   1 0 0   100%
src/lexigram/features/backends/chained.py ChainedProvider.get_flag_definition   5 0 0   100%
src/lexigram/features/backends/chained.py ChainedProvider.get_all_flags   4 0 0   100%
src/lexigram/features/backends/chained.py (no function)   8 0 2   100%
src/lexigram/features/backends/env.py EnvProvider.__init__   2 2 0   0%
src/lexigram/features/backends/env.py EnvProvider.get_flag_definition   2 2 0   0%
src/lexigram/features/backends/env.py EnvProvider.get_all_flags   11 11 0   0%
src/lexigram/features/backends/env.py EnvProvider.evaluate_sync   5 5 0   0%
src/lexigram/features/backends/env.py EnvProvider.invalidate   1 1 0   0%
src/lexigram/features/backends/env.py EnvProvider._parse_flag   15 15 0   0%
src/lexigram/features/backends/env.py (no function)   13 0 0   100%
src/lexigram/features/backends/local.py LocalProvider.__init__   1 0 0   100%
src/lexigram/features/backends/local.py LocalProvider.get_flag_definition   1 0 0   100%
src/lexigram/features/backends/local.py LocalProvider.get_all_flags   1 0 0   100%
src/lexigram/features/backends/local.py LocalProvider.evaluate_sync   4 0 0   100%
src/lexigram/features/backends/local.py LocalProvider.add_flag   2 0 0   100%
src/lexigram/features/backends/local.py LocalProvider.remove_flag   1 0 0   100%
src/lexigram/features/backends/local.py LocalProvider.set_enabled   5 0 0   100%
src/lexigram/features/backends/local.py LocalProvider.set_flag   1 0 0   100%
src/lexigram/features/backends/local.py LocalProvider.set_flag_sync   1 0 0   100%
src/lexigram/features/backends/local.py LocalProvider.set_variant   1 0 0   100%
src/lexigram/features/backends/local.py LocalProvider.set_variant_sync   1 0 0   100%
src/lexigram/features/backends/local.py LocalProvider.clear   1 0 0   100%
src/lexigram/features/backends/local.py (no function)   18 0 0   100%
src/lexigram/features/backends/testing.py MemoryProvider.__init__   2 0 0   100%
src/lexigram/features/backends/testing.py MemoryProvider.evaluate   3 0 0   100%
src/lexigram/features/backends/testing.py MemoryProvider.evaluate_sync   3 0 0   100%
src/lexigram/features/backends/testing.py MemoryProvider.set_flag_sync   1 0 0   100%
src/lexigram/features/backends/testing.py MemoryProvider.set_flag   1 0 0   100%
src/lexigram/features/backends/testing.py MemoryProvider.override   1 0 0   100%
src/lexigram/features/backends/testing.py MemoryProvider.clear_override   1 0 0   100%
src/lexigram/features/backends/testing.py MemoryProvider.reset   2 0 0   100%
src/lexigram/features/backends/testing.py (no function)   14 0 0   100%
src/lexigram/features/cli/__init__.py (no function)   0 0 0   100%
src/lexigram/features/cli/checks.py check_flag_manager   1 1 0   0%
src/lexigram/features/cli/checks.py (no function)   3 3 2   0%
src/lexigram/features/cli/commands.py create_features_app   12 12 0   0%
src/lexigram/features/cli/commands.py create_features_app.list_flags   1 1 0   0%
src/lexigram/features/cli/commands.py create_features_app.get_flag   1 1 0   0%
src/lexigram/features/cli/commands.py create_features_app.enable_flag   1 1 0   0%
src/lexigram/features/cli/commands.py create_features_app.disable_flag   1 1 0   0%
src/lexigram/features/cli/commands.py create_features_app.evaluate_flag   1 1 0   0%
src/lexigram/features/cli/commands.py (no function)   3 3 0   0%
src/lexigram/features/cli/contributor.py FeaturesCliContributor.contributor_id   1 1 0   0%
src/lexigram/features/cli/contributor.py FeaturesCliContributor.get_generators   1 1 0   0%
src/lexigram/features/cli/contributor.py FeaturesCliContributor.get_commands   1 1 0   0%
src/lexigram/features/cli/contributor.py FeaturesCliContributor.get_health_checks   1 1 0   0%
src/lexigram/features/cli/contributor.py FeaturesCliContributor.get_doctor_checks   1 1 0   0%
src/lexigram/features/cli/contributor.py FeaturesCliContributor.get_shell_context   1 1 0   0%
src/lexigram/features/cli/contributor.py FeaturesCliContributor.get_hooks   1 1 0   0%
src/lexigram/features/cli/contributor.py (no function)   15 15 0   0%
src/lexigram/features/cli/doctor.py check_features_config   1 1 0   0%
src/lexigram/features/cli/doctor.py (no function)   2 2 0   0%
src/lexigram/features/cli/generators/__init__.py (no function)   0 0 0   100%
src/lexigram/features/cli/generators/flag.py FeatureFlagGenerator.generate   1 1 0   0%
src/lexigram/features/cli/generators/flag.py (no function)   7 7 0   0%
src/lexigram/features/cli/shell.py provide_flag_manager   2 2 0   0%
src/lexigram/features/cli/shell.py (no function)   3 3 2   0%
src/lexigram/features/config.py (no function)   17 0 0   100%
src/lexigram/features/constants.py (no function)   15 2 0   87%
src/lexigram/features/decorators/__init__.py (no function)   4 0 1   100%
src/lexigram/features/decorators/_utils.py _resolve_manager   13 11 0   15%
src/lexigram/features/decorators/_utils.py _is_coroutinefunction   3 0 0   100%
src/lexigram/features/decorators/_utils.py (no function)   4 0 3   100%
src/lexigram/features/decorators/feature_flag.py feature_flag   3 0 0   100%
src/lexigram/features/decorators/feature_flag.py feature_flag.decorator   2 0 0   100%
src/lexigram/features/decorators/feature_flag.py feature_flag.decorator.wrapper   9 0 0   100%
src/lexigram/features/decorators/feature_flag.py require_flag   1 0 0   100%
src/lexigram/features/decorators/feature_flag.py (no function)   10 0 3   100%
src/lexigram/features/decorators/sync.py feature_flag_sync   3 0 0   100%
src/lexigram/features/decorators/sync.py feature_flag_sync.decorator   2 0 0   100%
src/lexigram/features/decorators/sync.py feature_flag_sync.decorator.wrapper   15 1 0   93%
src/lexigram/features/decorators/sync.py require_flag_sync   1 0 0   100%
src/lexigram/features/decorators/sync.py (no function)   10 0 3   100%
src/lexigram/features/di/__init__.py (no function)   3 0 0   100%
src/lexigram/features/di/provider.py FeatureFlagsProvider.__init__   4 0 0   100%
src/lexigram/features/di/provider.py FeatureFlagsProvider.from_config   1 0 0   100%
src/lexigram/features/di/provider.py FeatureFlagsProvider.register   16 0 0   100%
src/lexigram/features/di/provider.py FeatureFlagsProvider.boot   8 1 0   88%
src/lexigram/features/di/provider.py FeatureFlagsProvider.health_check   2 2 0   0%
src/lexigram/features/di/provider.py FeatureFlagsProvider.shutdown   0 0 0   100%
src/lexigram/features/di/provider.py FeatureFlagsProvider.get_simple_provider   1 0 0   100%
src/lexigram/features/di/provider.py FeatureFlagsProvider.get_manager   1 0 0   100%
src/lexigram/features/di/provider.py (no function)   27 0 2   100%
src/lexigram/features/events.py FlagChangeEvent.__init__   5 0 0   100%
src/lexigram/features/events.py (no function)   11 0 0   100%
src/lexigram/features/exceptions.py FlagNotFoundError.__init__   2 0 0   100%
src/lexigram/features/exceptions.py FlagEvaluationError.__init__   2 0 0   100%
src/lexigram/features/exceptions.py FeatureFlagDisabledError.__init__   2 0 0   100%
src/lexigram/features/exceptions.py (no function)   13 0 0   100%
src/lexigram/features/hooks.py (no function)   10 0 0   100%
src/lexigram/features/manager/__init__.py (no function)   5 0 0   100%
src/lexigram/features/manager/config.py (no function)   11 0 0   100%
src/lexigram/features/manager/flag_manager.py FlagManager.__init__   11 0 0   100%
src/lexigram/features/manager/flag_manager.py FlagManager.is_enabled   10 0 0   100%
src/lexigram/features/manager/flag_manager.py FlagManager.evaluate   13 3 0   77%
src/lexigram/features/manager/flag_manager.py FlagManager.get_variant   4 0 0   100%
src/lexigram/features/manager/flag_manager.py FlagManager.add_provider   1 1 0   0%
src/lexigram/features/manager/flag_manager.py FlagManager.get_value   6 6 0   0%
src/lexigram/features/manager/flag_manager.py FlagManager.get_all_flags   8 1 0   88%
src/lexigram/features/manager/flag_manager.py FlagManager.get_override_state   5 0 0   100%
src/lexigram/features/manager/flag_manager.py FlagManager.enable   5 0 0   100%
src/lexigram/features/manager/flag_manager.py FlagManager.disable   5 0 0   100%
src/lexigram/features/manager/flag_manager.py FlagManager.set_override   3 0 0   100%
src/lexigram/features/manager/flag_manager.py FlagManager.clear_override   2 0 0   100%
src/lexigram/features/manager/flag_manager.py FlagManager.get_audit_log   1 1 0   0%
src/lexigram/features/manager/flag_manager.py FlagManager.clear_cache   1 0 0   100%
src/lexigram/features/manager/flag_manager.py FlagManager.clear_cache_for   3 3 0   0%
src/lexigram/features/manager/flag_manager.py FlagManager._get_cache_key   6 1 0   83%
src/lexigram/features/manager/flag_manager.py FlagManager.add_listener_sync   1 0 0   100%
src/lexigram/features/manager/flag_manager.py FlagManager.remove_listener_sync   1 0 0   100%
src/lexigram/features/manager/flag_manager.py FlagManager.add_listener   1 0 0   100%
src/lexigram/features/manager/flag_manager.py FlagManager.remove_listener   1 0 0   100%
src/lexigram/features/manager/flag_manager.py FlagManager._notify_listeners   13 3 0   77%
src/lexigram/features/manager/flag_manager.py FlagManager.provider   1 0 0   100%
src/lexigram/features/manager/flag_manager.py (no function)   43 0 5   100%
src/lexigram/features/manager/types.py (no function)   6 0 0   100%
src/lexigram/features/module.py FeatureFlagsModule.configure   4 0 0   100%
src/lexigram/features/module.py FeatureFlagsModule.stub   2 0 0   100%
src/lexigram/features/module.py (no function)   12 0 0   100%
src/lexigram/features/protocols.py (no function)   5 0 0   100%
src/lexigram/features/types.py Flag.__post_init__   6 0 0   100%
src/lexigram/features/types.py FlagContext.get_attribute   5 0 0   100%
src/lexigram/features/types.py FlagContext.as_dict   1 0 0   100%
src/lexigram/features/types.py FlagContext.context_hash   5 0 0   100%
src/lexigram/features/types.py FlagEvaluation.__post_init__   2 0 0   100%
src/lexigram/features/types.py (no function)   69 0 0   100%
Total     878 171 40   81%

No items found using the specified filter.