Coverage report: 91%

Files Functions Classes

coverage.py v7.15.2, created at 2026-07-20 13:25 +0000

File function   statements missing excluded   coverage
narrative_harm_classifier/__init__.py classify   5 5 0   0%
narrative_harm_classifier/__init__.py (no function)   8 0 0   100%
narrative_harm_classifier/api/__init__.py (no function)   0 0 0   100%
narrative_harm_classifier/api/main.py lifespan   5 5 0   0%
narrative_harm_classifier/api/main.py create_app   8 0 0   100%
narrative_harm_classifier/api/main.py (no function)   10 0 0   100%
narrative_harm_classifier/api/routes/__init__.py (no function)   0 0 0   100%
narrative_harm_classifier/api/routes/benchmark.py get_runner   1 0 0   100%
narrative_harm_classifier/api/routes/benchmark.py run_benchmark   4 2 0   50%
narrative_harm_classifier/api/routes/benchmark.py (no function)   8 0 0   100%
narrative_harm_classifier/api/routes/classify.py get_engine   1 0 0   100%
narrative_harm_classifier/api/routes/classify.py classify_text   4 2 0   50%
narrative_harm_classifier/api/routes/classify.py classify_batch   5 0 0   100%
narrative_harm_classifier/api/routes/classify.py (no function)   13 0 0   100%
narrative_harm_classifier/api/routes/health.py health   2 0 0   100%
narrative_harm_classifier/api/routes/health.py (no function)   6 0 0   100%
narrative_harm_classifier/api/routes/tracking.py get_tracker   1 0 0   100%
narrative_harm_classifier/api/routes/tracking.py observe   1 0 0   100%
narrative_harm_classifier/api/routes/tracking.py get_profile   4 0 0   100%
narrative_harm_classifier/api/routes/tracking.py list_profiles   1 0 0   100%
narrative_harm_classifier/api/routes/tracking.py verify_chain   4 0 0   100%
narrative_harm_classifier/api/routes/tracking.py (no function)   16 0 0   100%
narrative_harm_classifier/api/routes/validate.py get_validator   1 0 0   100%
narrative_harm_classifier/api/routes/validate.py validate_dehumanization   4 2 0   50%
narrative_harm_classifier/api/routes/validate.py validate_custom   8 8 0   0%
narrative_harm_classifier/api/routes/validate.py (no function)   11 0 0   100%
narrative_harm_classifier/classifier/__init__.py (no function)   0 0 0   100%
narrative_harm_classifier/classifier/counter_narrative.py guidance_for   3 0 0   100%
narrative_harm_classifier/classifier/counter_narrative.py (no function)   4 0 0   100%
narrative_harm_classifier/classifier/factory.py build_taxonomy   1 0 0   100%
narrative_harm_classifier/classifier/factory.py build_azure_client   1 0 0   100%
narrative_harm_classifier/classifier/factory.py build_dogwhistle_lexicon   1 0 0   100%
narrative_harm_classifier/classifier/factory.py build_engine   1 0 0   100%
narrative_harm_classifier/classifier/factory.py build_tracker   2 0 0   100%
narrative_harm_classifier/classifier/factory.py build_benchmark_runner   2 0 0   100%
narrative_harm_classifier/classifier/factory.py build_validator   1 0 0   100%
narrative_harm_classifier/classifier/factory.py (no function)   16 0 0   100%
narrative_harm_classifier/classifier/provenance.py content_hash   2 0 0   100%
narrative_harm_classifier/classifier/provenance.py record_hash   2 0 0   100%
narrative_harm_classifier/classifier/provenance.py (no function)   6 0 0   100%
narrative_harm_classifier/classifier/rules/__init__.py (no function)   0 0 0   100%
narrative_harm_classifier/classifier/rules/azure_nlp.py AzureNLPClient.__init__   14 9 0   36%
narrative_harm_classifier/classifier/rules/azure_nlp.py AzureNLPClient.is_configured   1 0 0   100%
narrative_harm_classifier/classifier/rules/azure_nlp.py AzureNLPClient.analyze   32 30 0   6%
narrative_harm_classifier/classifier/rules/azure_nlp.py AzureNLPClient._fallback_result   1 0 0   100%
narrative_harm_classifier/classifier/rules/azure_nlp.py (no function)   18 0 0   100%
narrative_harm_classifier/classifier/rules/dogwhistles.py DogwhistleEntry.target_type   1 1 0   0%
narrative_harm_classifier/classifier/rules/dogwhistles.py DogwhistleLexicon.__init__   2 0 0   100%
narrative_harm_classifier/classifier/rules/dogwhistles.py DogwhistleLexicon.detect   1 0 0   100%
narrative_harm_classifier/classifier/rules/dogwhistles.py load_dogwhistles   3 0 0   100%
narrative_harm_classifier/classifier/rules/dogwhistles.py (no function)   20 0 0   100%
narrative_harm_classifier/classifier/rules/engine.py _detect_identity_anchor   7 0 0   100%
narrative_harm_classifier/classifier/rules/engine.py _detect_harm_signals   11 0 0   100%
narrative_harm_classifier/classifier/rules/engine.py _azure_negative_amplifier   3 1 0   67%
narrative_harm_classifier/classifier/rules/engine.py _rule_negation   4 0 0   100%
narrative_harm_classifier/classifier/rules/engine.py _rule_counter_speech   3 0 0   100%
narrative_harm_classifier/classifier/rules/engine.py _rule_benign_context   3 0 0   100%
narrative_harm_classifier/classifier/rules/engine.py _is_suppressed   1 0 0   100%
narrative_harm_classifier/classifier/rules/engine.py ClassificationEngine.__init__   5 0 0   100%
narrative_harm_classifier/classifier/rules/engine.py ClassificationEngine._load_patterns   5 0 0   100%
narrative_harm_classifier/classifier/rules/engine.py ClassificationEngine.classify   48 2 0   96%
narrative_harm_classifier/classifier/rules/engine.py ClassificationEngine._no_harm_result   1 0 0   100%
narrative_harm_classifier/classifier/rules/engine.py ClassificationEngine._build_rationale   13 2 0   85%
narrative_harm_classifier/classifier/rules/engine.py (no function)   29 0 0   100%
narrative_harm_classifier/classifier/rules/patterns_loader.py _compile_all   1 0 0   100%
narrative_harm_classifier/classifier/rules/patterns_loader.py _compile_dict   1 0 0   100%
narrative_harm_classifier/classifier/rules/patterns_loader.py _combine_and_compile   4 0 0   100%
narrative_harm_classifier/classifier/rules/patterns_loader.py LanguagePatterns.deobfuscate   3 0 0   100%
narrative_harm_classifier/classifier/rules/patterns_loader.py load_language_patterns   3 0 0   100%
narrative_harm_classifier/classifier/rules/patterns_loader.py available_languages   1 1 0   0%
narrative_harm_classifier/classifier/rules/patterns_loader.py (no function)   25 0 0   100%
narrative_harm_classifier/classifier/taxonomy/__init__.py (no function)   0 0 0   100%
narrative_harm_classifier/classifier/taxonomy/loader.py TaxonomyConfig.get_category   1 0 0   100%
narrative_harm_classifier/classifier/taxonomy/loader.py TaxonomyConfig.get_row   5 5 0   0%
narrative_harm_classifier/classifier/taxonomy/loader.py TaxonomyConfig.all_rows   5 0 0   100%
narrative_harm_classifier/classifier/taxonomy/loader.py load_taxonomy   11 0 0   100%
narrative_harm_classifier/classifier/taxonomy/loader.py (no function)   44 0 0   100%
narrative_harm_classifier/classifier/tracking/__init__.py (no function)   0 0 0   100%
narrative_harm_classifier/classifier/tracking/models.py severity_for_mechanism   3 0 0   100%
narrative_harm_classifier/classifier/tracking/models.py risk_level_for   10 1 0   90%
narrative_harm_classifier/classifier/tracking/models.py (no function)   40 0 0   100%
narrative_harm_classifier/classifier/tracking/store.py TrackingStore.__init__   2 0 0   100%
narrative_harm_classifier/classifier/tracking/store.py TrackingStore.add_observation   4 0 0   100%
narrative_harm_classifier/classifier/tracking/store.py TrackingStore.last_record_hash   5 0 0   100%
narrative_harm_classifier/classifier/tracking/store.py TrackingStore.history   7 0 0   100%
narrative_harm_classifier/classifier/tracking/store.py TrackingStore.list_source_ids   3 0 0   100%
narrative_harm_classifier/classifier/tracking/store.py get_store   1 0 0   100%
narrative_harm_classifier/classifier/tracking/store.py (no function)   15 0 0   100%
narrative_harm_classifier/classifier/tracking/tracker.py EscalationTracker.__init__   2 0 0   100%
narrative_harm_classifier/classifier/tracking/tracker.py EscalationTracker.observe   7 0 0   100%
narrative_harm_classifier/classifier/tracking/tracker.py EscalationTracker.verify_chain   10 0 0   100%
narrative_harm_classifier/classifier/tracking/tracker.py EscalationTracker.profile   9 0 0   100%
narrative_harm_classifier/classifier/tracking/tracker.py EscalationTracker.list_profiles   3 0 0   100%
narrative_harm_classifier/classifier/tracking/tracker.py EscalationTracker._compute_trend   13 1 0   92%
narrative_harm_classifier/classifier/tracking/tracker.py (no function)   15 0 0   100%
narrative_harm_classifier/classifier/validators/__init__.py (no function)   0 0 0   100%
narrative_harm_classifier/classifier/validators/benchmark.py load_benchmark_templates   1 0 0   100%
narrative_harm_classifier/classifier/validators/benchmark.py generate_benchmark_cases   11 0 0   100%
narrative_harm_classifier/classifier/validators/benchmark.py _score   5 0 0   100%
narrative_harm_classifier/classifier/validators/benchmark.py BenchmarkRunner.__init__   3 0 0   100%
narrative_harm_classifier/classifier/validators/benchmark.py BenchmarkRunner.run   29 0 0   100%
narrative_harm_classifier/classifier/validators/benchmark.py BenchmarkRunner.run.confusion   11 2 0   82%
narrative_harm_classifier/classifier/validators/benchmark.py (no function)   47 0 0   100%
narrative_harm_classifier/classifier/validators/i18n_smoke.py I18nSmokeCaseResult.passed   1 0 0   100%
narrative_harm_classifier/classifier/validators/i18n_smoke.py run_i18n_smoke   12 0 0   100%
narrative_harm_classifier/classifier/validators/i18n_smoke.py (no function)   17 0 0   100%
narrative_harm_classifier/classifier/validators/performance.py PerformanceValidator.__init__   2 0 0   100%
narrative_harm_classifier/classifier/validators/performance.py PerformanceValidator.validate_category   28 2 0   93%
narrative_harm_classifier/classifier/validators/performance.py (no function)   10 0 0   100%
narrative_harm_classifier/cli.py serve   2 2 0   0%
narrative_harm_classifier/cli.py classify   3 0 0   100%
narrative_harm_classifier/cli.py track_observe   3 0 0   100%
narrative_harm_classifier/cli.py track_show   11 0 0   100%
narrative_harm_classifier/cli.py track_list   8 2 0   75%
narrative_harm_classifier/cli.py track_verify   11 4 0   64%
narrative_harm_classifier/cli.py benchmark_run   14 3 0   79%
narrative_harm_classifier/cli.py benchmark_i18n   11 3 0   73%
narrative_harm_classifier/cli.py main   1 1 0   0%
narrative_harm_classifier/cli.py (no function)   35 1 0   97%
narrative_harm_classifier/core/__init__.py (no function)   0 0 0   100%
narrative_harm_classifier/core/config.py Settings.effective_tracking_db_url   1 0 0   100%
narrative_harm_classifier/core/config.py get_settings   1 0 0   100%
narrative_harm_classifier/core/config.py (no function)   32 0 0   100%
narrative_harm_classifier/core/models.py (no function)   86 0 0   100%
narrative_harm_classifier/core/yaml_loader.py load_yaml_file   5 0 0   100%
narrative_harm_classifier/core/yaml_loader.py (no function)   4 0 0   100%
Total     1057 97 0   91%

No items found using the specified filter.