Coverage report: 44%

Files Functions Classes

coverage.py v7.10.7, created at 2025-10-11 12:53 +0000

File function statements missing excluded coverage
adapter/__init__.py (no function) 11 0 4 100%
projects/04-llm-adapter/adapter/__init__.py (no function) 2 0 0 100%
projects/04-llm-adapter/adapter/core/__init__.py (no function) 10 0 0 100%
projects/04-llm-adapter/adapter/core/_parallel_shim.py (no function) 4 0 84 100%
projects/04-llm-adapter/adapter/core/_provider_execution.py ProviderCallExecutor.__init__ 1 0 0 100%
projects/04-llm-adapter/adapter/core/_provider_execution.py ProviderCallExecutor.execute 6 0 0 100%
projects/04-llm-adapter/adapter/core/_provider_execution.py ProviderCallExecutor._invoke_provider 24 10 2 58%
projects/04-llm-adapter/adapter/core/_provider_execution.py ProviderCallExecutor._build_error_result 3 0 0 100%
projects/04-llm-adapter/adapter/core/_provider_execution.py ProviderCallExecutor._handle_backoff_error 4 4 0 0%
projects/04-llm-adapter/adapter/core/_provider_execution.py ProviderCallExecutor._build_error_response 2 0 0 100%
projects/04-llm-adapter/adapter/core/_provider_execution.py ProviderCallExecutor._apply_backoff 15 15 0 0%
projects/04-llm-adapter/adapter/core/_provider_execution.py ProviderCallExecutor._check_timeout 3 1 0 67%
projects/04-llm-adapter/adapter/core/_provider_execution.py ProviderCallExecutor._enforce_output_guard 3 1 0 67%
projects/04-llm-adapter/adapter/core/_provider_execution.py (no function) 32 0 4 100%
projects/04-llm-adapter/adapter/core/_shadow_helpers.py start_shadow_session 5 1 0 80%
projects/04-llm-adapter/adapter/core/_shadow_helpers.py finalize_shadow_session 4 1 0 75%
projects/04-llm-adapter/adapter/core/_shadow_helpers.py (no function) 12 0 8 100%
projects/04-llm-adapter/adapter/core/aggregation.py TieBreaker.break_tie 0 0 1 100%
projects/04-llm-adapter/adapter/core/aggregation.py AggregationStrategy.aggregate 0 0 1 100%
projects/04-llm-adapter/adapter/core/aggregation.py AggregationStrategy.from_string 2 2 0 0%
projects/04-llm-adapter/adapter/core/aggregation.py AggregationResolver 1 1 0 0%
projects/04-llm-adapter/adapter/core/aggregation.py __getattr__ 0 0 7 100%
projects/04-llm-adapter/adapter/core/aggregation.py (no function) 39 0 9 100%
projects/04-llm-adapter/adapter/core/aggregation/builtin/__init__.py (no function) 7 0 0 100%
projects/04-llm-adapter/adapter/core/aggregation/builtin/majority_vote.py MajorityVoteStrategy.__init__ 2 2 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/majority_vote.py MajorityVoteStrategy._extract_required_keys 7 7 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/majority_vote.py MajorityVoteStrategy._normalize_text 5 5 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/majority_vote.py MajorityVoteStrategy._json_bucket_key 8 8 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/majority_vote.py MajorityVoteStrategy._bucket_key 5 5 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/majority_vote.py MajorityVoteStrategy._bucket_is_complete 10 10 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/majority_vote.py MajorityVoteStrategy.aggregate 27 27 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/majority_vote.py (no function) 18 0 0 100%
projects/04-llm-adapter/adapter/core/aggregation/builtin/max_score.py MaxScoreStrategy.aggregate 8 8 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/max_score.py (no function) 8 0 0 100%
projects/04-llm-adapter/adapter/core/aggregation/builtin/registry.py _build_majority 2 2 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/registry.py _build_max_score 1 1 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/registry.py _build_weighted 3 3 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/registry.py _build_judge 2 2 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/registry.py resolve_builtin_strategy 6 6 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/registry.py (no function) 16 0 0 100%
projects/04-llm-adapter/adapter/core/aggregation/builtin/tie_breakers.py FirstTieBreaker.break_tie 3 3 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/tie_breakers.py MaxScoreTieBreaker.break_tie 5 5 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/tie_breakers.py (no function) 10 0 0 100%
projects/04-llm-adapter/adapter/core/aggregation/builtin/weighted_vote.py WeightedVoteStrategy.__init__ 2 2 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/weighted_vote.py WeightedVoteStrategy._resolve_weight 4 4 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/weighted_vote.py WeightedVoteStrategy.aggregate 27 27 0 0%
projects/04-llm-adapter/adapter/core/aggregation/builtin/weighted_vote.py (no function) 12 0 0 100%
projects/04-llm-adapter/adapter/core/aggregation/judge.py JudgeProvider.invoke 0 0 1 100%
projects/04-llm-adapter/adapter/core/aggregation/judge.py JudgeProviderFactory.create 0 0 1 100%
projects/04-llm-adapter/adapter/core/aggregation/judge.py _FallbackProviderRequest.prompt_text 1 1 0 0%
projects/04-llm-adapter/adapter/core/aggregation/judge.py _default_request_factory 1 1 0 0%
projects/04-llm-adapter/adapter/core/aggregation/judge.py JudgeStrategy.__init__ 4 4 0 0%
projects/04-llm-adapter/adapter/core/aggregation/judge.py JudgeStrategy.aggregate 19 19 0 0%
projects/04-llm-adapter/adapter/core/aggregation/judge.py _parse_choice_index 11 11 0 0%
projects/04-llm-adapter/adapter/core/aggregation/judge.py (no function) 34 0 8 100%
projects/04-llm-adapter/adapter/core/aggregation/strategies_builtin.py (no function) 7 0 0 100%
projects/04-llm-adapter/adapter/core/aggregation_controller.py AggregationController.__init__ 1 1 0 0%
projects/04-llm-adapter/adapter/core/aggregation_controller.py AggregationController.apply 66 66 0 0%
projects/04-llm-adapter/adapter/core/aggregation_controller.py AggregationController._select_aggregation 12 12 0 0%
projects/04-llm-adapter/adapter/core/aggregation_controller.py AggregationController._resolve_aggregation_strategy 2 2 0 0%
projects/04-llm-adapter/adapter/core/aggregation_controller.py AggregationController._resolve_tie_breaker 1 1 0 0%
projects/04-llm-adapter/adapter/core/aggregation_controller.py AggregationController._load_schema 1 1 0 0%
projects/04-llm-adapter/adapter/core/aggregation_controller.py AggregationController._mark_consensus_failure 16 16 0 0%
projects/04-llm-adapter/adapter/core/aggregation_controller.py _resolve_mode 3 3 0 0%
projects/04-llm-adapter/adapter/core/aggregation_controller.py (no function) 21 0 3 100%
projects/04-llm-adapter/adapter/core/aggregation_selector.py AggregationSelector.__init__ 5 5 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector.py AggregationSelector.select 60 60 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector.py AggregationSelector._resolve_tie_breaker 2 2 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector.py AggregationSelector._resolve_aggregation_strategy 23 23 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector.py (no function) 21 0 3 100%
projects/04-llm-adapter/adapter/core/aggregation_selector_components.py JudgeProviderFactory.create 0 0 1 100%
projects/04-llm-adapter/adapter/core/aggregation_selector_components.py CandidateBuilder.build 11 11 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector_components.py JudgeScorer.__init__ 1 1 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector_components.py JudgeScorer.score 20 20 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector_components.py JudgeScorer._extract_quality_score 12 12 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector_components.py _CompositeTieBreaker.__init__ 4 4 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector_components.py _CompositeTieBreaker.name 1 1 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector_components.py _CompositeTieBreaker.break_tie 16 16 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector_components.py TieBreakerFactory.create 19 19 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector_components.py _resolve_mode_value 6 6 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector_components.py SchemaCache.__init__ 2 2 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector_components.py SchemaCache.load 12 12 0 0%
projects/04-llm-adapter/adapter/core/aggregation_selector_components.py (no function) 29 0 6 100%
projects/04-llm-adapter/adapter/core/budgets.py BudgetManager.__init__ 3 3 0 0%
projects/04-llm-adapter/adapter/core/budgets.py BudgetManager._rule_for 1 1 0 0%
projects/04-llm-adapter/adapter/core/budgets.py BudgetManager.run_budget 1 1 0 0%
projects/04-llm-adapter/adapter/core/budgets.py BudgetManager.daily_budget 1 1 0 0%
projects/04-llm-adapter/adapter/core/budgets.py BudgetManager.stop_on_budget_exceed 1 1 0 0%
projects/04-llm-adapter/adapter/core/budgets.py BudgetManager.should_stop_run 6 6 0 0%
projects/04-llm-adapter/adapter/core/budgets.py BudgetManager.notify_cost 10 10 0 0%
projects/04-llm-adapter/adapter/core/budgets.py BudgetManager.spent_today 2 2 0 0%
projects/04-llm-adapter/adapter/core/budgets.py (no function) 16 0 0 100%
projects/04-llm-adapter/adapter/core/compare_runner_finalizer.py DeterminismGate.apply 25 25 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_finalizer.py TaskFinalizer.__init__ 2 2 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_finalizer.py TaskFinalizer.metrics_path 1 1 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_finalizer.py TaskFinalizer.update_metrics_path 1 1 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_finalizer.py TaskFinalizer.finalize_task 10 10 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_finalizer.py TaskFinalizer._apply_determinism_gate 1 1 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_finalizer.py TaskFinalizer._append_metric 3 3 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_finalizer.py (no function) 24 0 2 100%
projects/04-llm-adapter/adapter/core/compare_runner_support.py BudgetEvaluator.__init__ 3 3 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_support.py BudgetEvaluator.evaluate 32 32 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_support.py _JudgeInvoker.__init__ 2 2 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_support.py _JudgeInvoker.invoke 17 17 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_support.py _JudgeProviderFactoryAdapter.__init__ 1 1 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_support.py _JudgeProviderFactoryAdapter.create 3 3 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_support.py _coerce_provider_response 23 23 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_support.py _merge_raw_payload 6 6 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_support.py (no function) 25 0 0 100%
projects/04-llm-adapter/adapter/core/compare_runner_support/__init__.py (no function) 14 0 2 100%
projects/04-llm-adapter/adapter/core/compare_runner_support/metrics_builder.py RunMetricsBuilder.build 10 10 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_support/metrics_builder.py RunMetricsBuilder._resolve_canonical_mode 6 6 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_support/metrics_builder.py RunMetricsBuilder._merge_eval_failure 6 6 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_support/metrics_builder.py RunMetricsBuilder._evaluate 25 25 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_support/metrics_builder.py RunMetricsBuilder._compute_output_hash 1 1 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_support/metrics_builder.py RunMetricsBuilder._ci_metadata 8 8 0 0%
projects/04-llm-adapter/adapter/core/compare_runner_support/metrics_builder.py (no function) 21 0 0 100%
projects/04-llm-adapter/adapter/core/config.py (no function) 5 0 0 100%
projects/04-llm-adapter/adapter/core/datasets.py GoldenTask.render_prompt 2 2 0 0%
projects/04-llm-adapter/adapter/core/datasets.py GoldenTask.render_prompt.replace 3 3 0 0%
projects/04-llm-adapter/adapter/core/datasets.py _lookup_nested 7 7 0 0%
projects/04-llm-adapter/adapter/core/datasets.py load_golden_tasks 12 12 0 0%
projects/04-llm-adapter/adapter/core/datasets.py iter_jsonl 8 8 0 0%
projects/04-llm-adapter/adapter/core/datasets.py (no function) 18 0 0 100%
projects/04-llm-adapter/adapter/core/errors.py ProviderSkip.__init__ 10 10 0 0%
projects/04-llm-adapter/adapter/core/errors.py ProviderSkip.__str__ 1 1 0 0%
projects/04-llm-adapter/adapter/core/errors.py ParallelExecutionError.__init__ 3 3 0 0%
projects/04-llm-adapter/adapter/core/errors.py (no function) 26 0 0 100%
projects/04-llm-adapter/adapter/core/execution/__init__.py (no function) 0 0 0 100%
projects/04-llm-adapter/adapter/core/execution/compare_task_runner.py run_tasks 32 32 0 0%
projects/04-llm-adapter/adapter/core/execution/compare_task_runner.py _handle_failure 6 6 0 0%
projects/04-llm-adapter/adapter/core/execution/compare_task_runner.py _mode_equals 3 3 0 0%
projects/04-llm-adapter/adapter/core/execution/compare_task_runner.py _mode_value 8 8 0 0%
projects/04-llm-adapter/adapter/core/execution/compare_task_runner.py (no function) 16 0 2 100%
projects/04-llm-adapter/adapter/core/execution/guards.py _MissingValidationError.__init__ 1 1 0 0%
projects/04-llm-adapter/adapter/core/execution/guards.py _MissingValidator.__init__ 1 1 0 0%
projects/04-llm-adapter/adapter/core/execution/guards.py _MissingValidator.check_schema 1 1 0 0%
projects/04-llm-adapter/adapter/core/execution/guards.py _MissingValidator.validate 1 1 0 0%
projects/04-llm-adapter/adapter/core/execution/guards.py _validator_for 1 1 0 0%
projects/04-llm-adapter/adapter/core/execution/guards.py _TokenBucket.__init__ 4 4 0 0%
projects/04-llm-adapter/adapter/core/execution/guards.py _TokenBucket.acquire 14 14 0 0%
projects/04-llm-adapter/adapter/core/execution/guards.py _SchemaValidator.__init__ 10 10 0 0%
projects/04-llm-adapter/adapter/core/execution/guards.py _SchemaValidator.validate 11 11 0 0%
projects/04-llm-adapter/adapter/core/execution/guards.py (no function) 28 10 0 64%
projects/04-llm-adapter/adapter/core/execution/shadow_runner.py ShadowRunner.__init__ 4 0 0 100%
projects/04-llm-adapter/adapter/core/execution/shadow_runner.py ShadowRunner.start 13 1 2 92%
projects/04-llm-adapter/adapter/core/execution/shadow_runner.py ShadowRunner.start._run 9 1 6 89%
projects/04-llm-adapter/adapter/core/execution/shadow_runner.py ShadowRunner.finalize 9 3 0 67%
projects/04-llm-adapter/adapter/core/execution/shadow_runner.py ShadowRunner.provider_id 1 0 0 100%
projects/04-llm-adapter/adapter/core/execution/shadow_runner.py (no function) 23 0 2 100%
projects/04-llm-adapter/adapter/core/loader.py _format_validation_error 9 9 0 0%
projects/04-llm-adapter/adapter/core/loader.py _load_yaml 8 8 0 0%
projects/04-llm-adapter/adapter/core/loader.py _load_yaml_without_dependency 24 24 0 0%
projects/04-llm-adapter/adapter/core/loader.py _load_yaml_without_dependency.convert 16 16 0 0%
projects/04-llm-adapter/adapter/core/loader.py load_provider_config 14 14 0 0%
projects/04-llm-adapter/adapter/core/loader.py load_provider_configs 1 1 0 0%
projects/04-llm-adapter/adapter/core/loader.py load_budget_book 16 16 0 0%
projects/04-llm-adapter/adapter/core/loader.py (no function) 18 0 6 100%
projects/04-llm-adapter/adapter/core/metrics.py _load_submodule 7 0 2 100%
projects/04-llm-adapter/adapter/core/metrics.py (no function) 29 0 0 100%
projects/04-llm-adapter/adapter/core/metrics/costs.py _cost_for_tokens 1 0 0 100%
projects/04-llm-adapter/adapter/core/metrics/costs.py compute_cost_usd 3 0 0 100%
projects/04-llm-adapter/adapter/core/metrics/costs.py estimate_cost 10 3 0 70%
projects/04-llm-adapter/adapter/core/metrics/costs.py (no function) 5 0 2 100%
projects/04-llm-adapter/adapter/core/metrics/diff.py tokenize 1 1 0 0%
projects/04-llm-adapter/adapter/core/metrics/diff.py levenshtein_distance 14 14 0 0%
projects/04-llm-adapter/adapter/core/metrics/diff.py compute_diff_rate 6 6 0 0%
projects/04-llm-adapter/adapter/core/metrics/diff.py summarize_diff_rates 4 4 0 0%
projects/04-llm-adapter/adapter/core/metrics/diff.py (no function) 7 0 0 100%
projects/04-llm-adapter/adapter/core/metrics/models.py RunMetric.from_resp 2 2 0 0%
projects/04-llm-adapter/adapter/core/metrics/models.py RunMetrics.__post_init__ 2 0 0 100%
projects/04-llm-adapter/adapter/core/metrics/models.py RunMetrics.to_json_dict 4 4 0 0%
projects/04-llm-adapter/adapter/core/metrics/models.py now_ts 1 1 0 0%
projects/04-llm-adapter/adapter/core/metrics/models.py hash_text 2 2 0 0%
projects/04-llm-adapter/adapter/core/metrics/models.py (no function) 70 0 3 100%
projects/04-llm-adapter/adapter/core/metrics/update.py finalize_run_metrics 19 5 0 74%
projects/04-llm-adapter/adapter/core/metrics/update.py apply_shadow_metrics 14 3 0 79%
projects/04-llm-adapter/adapter/core/metrics/update.py _resolve_outcome 5 1 0 80%
projects/04-llm-adapter/adapter/core/metrics/update.py (no function) 10 0 3 100%
projects/04-llm-adapter/adapter/core/models.py (no function) 52 0 0 100%
projects/04-llm-adapter/adapter/core/parallel/__init__.py (no function) 2 0 0 100%
projects/04-llm-adapter/adapter/core/parallel/coordinators/__init__.py (no function) 6 0 0 100%
projects/04-llm-adapter/adapter/core/parallel/coordinators/all.py _ParallelAllCoordinator.__init__ 1 1 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/all.py _ParallelAllCoordinator.execute 3 3 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/all.py _ParallelAllCoordinator._build_worker 2 2 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/all.py _ParallelAllCoordinator._build_worker.worker 10 10 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/all.py (no function) 13 0 5 100%
projects/04-llm-adapter/adapter/core/parallel/coordinators/any.py _ParallelAnyCoordinator.__init__ 2 2 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/any.py _ParallelAnyCoordinator.execute 10 10 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/any.py _ParallelAnyCoordinator._build_worker 2 2 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/any.py _ParallelAnyCoordinator._build_worker.worker 22 22 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/any.py _ParallelAnyCoordinator._finalize 4 4 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/any.py _ParallelAnyCoordinator._build_failure_summary 2 2 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/any.py (no function) 18 0 5 100%
projects/04-llm-adapter/adapter/core/parallel/coordinators/base.py _normalize_mode_value 8 8 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/base.py _is_parallel_any_mode 2 2 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/base.py _ParallelCoordinatorBase.__init__ 12 12 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/base.py _ParallelCoordinatorBase.execute 1 1 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/base.py _ParallelCoordinatorBase._mark_cancelled 15 15 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/base.py _ParallelCoordinatorBase._update_stop_reason 2 2 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/base.py _ParallelCoordinatorBase._build_batch 1 1 0 0%
projects/04-llm-adapter/adapter/core/parallel/coordinators/base.py (no function) 23 0 6 100%
projects/04-llm-adapter/adapter/core/parallel_state.py _get_single_run_result_cls 4 4 0 0%
projects/04-llm-adapter/adapter/core/parallel_state.py ParallelAnyState.__init__ 7 7 0 0%
projects/04-llm-adapter/adapter/core/parallel_state.py ParallelAnyState.should_cancel 1 1 0 0%
projects/04-llm-adapter/adapter/core/parallel_state.py ParallelAnyState.register_failure 3 3 0 0%
projects/04-llm-adapter/adapter/core/parallel_state.py ParallelAnyState.register_success 6 6 0 0%
projects/04-llm-adapter/adapter/core/parallel_state.py ParallelAnyState.record_caught_error 1 1 0 0%
projects/04-llm-adapter/adapter/core/parallel_state.py ParallelAnyState.finalize 19 19 0 0%
projects/04-llm-adapter/adapter/core/parallel_state.py build_cancelled_result 11 11 0 0%
projects/04-llm-adapter/adapter/core/parallel_state.py (no function) 37 0 6 100%
projects/04-llm-adapter/adapter/core/provider_spi.py ProviderRequest.__post_init__ 17 6 0 65%
projects/04-llm-adapter/adapter/core/provider_spi.py TokenUsage.total 1 0 0 100%
projects/04-llm-adapter/adapter/core/provider_spi.py ProviderResponse.__init__ 9 0 0 100%
projects/04-llm-adapter/adapter/core/provider_spi.py ProviderResponse.token_usage 1 0 0 100%
projects/04-llm-adapter/adapter/core/provider_spi.py ProviderResponse.token_usage 3 0 0 100%
projects/04-llm-adapter/adapter/core/provider_spi.py ProviderSPI.name 0 0 1 100%
projects/04-llm-adapter/adapter/core/provider_spi.py ProviderSPI.capabilities 0 0 1 100%
projects/04-llm-adapter/adapter/core/provider_spi.py ProviderSPI.invoke 0 0 1 100%
projects/04-llm-adapter/adapter/core/provider_spi.py (no function) 39 0 0 100%
projects/04-llm-adapter/adapter/core/providers/__init__.py ProviderResponse.__init__ 5 0 0 100%
projects/04-llm-adapter/adapter/core/providers/__init__.py ProviderResponse.output_text 1 0 0 100%
projects/04-llm-adapter/adapter/core/providers/__init__.py ProviderResponse.input_tokens 1 0 0 100%
projects/04-llm-adapter/adapter/core/providers/__init__.py ProviderResponse.output_tokens 1 0 0 100%
projects/04-llm-adapter/adapter/core/providers/__init__.py ProviderResponse.raw_output 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/__init__.py BaseProvider.__init__ 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/__init__.py BaseProvider.name 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/__init__.py BaseProvider.capabilities 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/__init__.py BaseProvider.invoke 0 0 1 100%
projects/04-llm-adapter/adapter/core/providers/__init__.py BaseProvider.generate 7 7 0 0%
projects/04-llm-adapter/adapter/core/providers/__init__.py SimulatedProvider.invoke 15 15 0 0%
projects/04-llm-adapter/adapter/core/providers/__init__.py ProviderFactory.register 1 0 0 100%
projects/04-llm-adapter/adapter/core/providers/__init__.py ProviderFactory.available 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/__init__.py ProviderFactory.create 5 5 0 0%
projects/04-llm-adapter/adapter/core/providers/__init__.py (no function) 34 0 25 100%
projects/04-llm-adapter/adapter/core/providers/_requests_compat.py ResponseProtocol.close 0 0 1 100%
projects/04-llm-adapter/adapter/core/providers/_requests_compat.py ResponseProtocol.__enter__ 0 0 1 100%
projects/04-llm-adapter/adapter/core/providers/_requests_compat.py ResponseProtocol.__exit__ 0 0 1 100%
projects/04-llm-adapter/adapter/core/providers/_requests_compat.py ResponseProtocol.json 0 0 1 100%
projects/04-llm-adapter/adapter/core/providers/_requests_compat.py ResponseProtocol.raise_for_status 0 0 1 100%
projects/04-llm-adapter/adapter/core/providers/_requests_compat.py ResponseProtocol.iter_lines 0 0 1 100%
projects/04-llm-adapter/adapter/core/providers/_requests_compat.py SessionProtocol.post 0 0 1 100%
projects/04-llm-adapter/adapter/core/providers/_requests_compat.py _RequestsModuleProtocol.Session 0 0 1 100%
projects/04-llm-adapter/adapter/core/providers/_requests_compat.py _initialize_requests 13 7 29 46%
projects/04-llm-adapter/adapter/core/providers/_requests_compat.py create_session 3 3 0 0%
projects/04-llm-adapter/adapter/core/providers/_requests_compat.py (no function) 24 0 19 100%
projects/04-llm-adapter/adapter/core/providers/gemini.py GeminiProvider.__init__ 8 8 2 0%
projects/04-llm-adapter/adapter/core/providers/gemini.py GeminiProvider.generate 2 2 0 0%
projects/04-llm-adapter/adapter/core/providers/gemini.py GeminiProvider.invoke 53 53 3 0%
projects/04-llm-adapter/adapter/core/providers/gemini.py (no function) 13 0 4 100%
projects/04-llm-adapter/adapter/core/providers/gemini_support.py resolve_api_key 6 6 0 0%
projects/04-llm-adapter/adapter/core/providers/gemini_support.py extract_status_code 15 15 0 0%
projects/04-llm-adapter/adapter/core/providers/gemini_support.py normalize_gemini_exception 11 11 0 0%
projects/04-llm-adapter/adapter/core/providers/gemini_support.py prepare_generation_config 11 11 0 0%
projects/04-llm-adapter/adapter/core/providers/gemini_support.py prepare_safety_settings 9 9 0 0%
projects/04-llm-adapter/adapter/core/providers/gemini_support.py call_with_optional_safety 7 7 5 0%
projects/04-llm-adapter/adapter/core/providers/gemini_support.py invoke_gemini 21 21 0 0%
projects/04-llm-adapter/adapter/core/providers/gemini_support.py extract_usage 23 23 2 0%
projects/04-llm-adapter/adapter/core/providers/gemini_support.py extract_output_text 30 30 2 0%
projects/04-llm-adapter/adapter/core/providers/gemini_support.py coerce_raw_output 8 8 2 0%
projects/04-llm-adapter/adapter/core/providers/gemini_support.py (no function) 18 0 0 100%
projects/04-llm-adapter/adapter/core/providers/ollama.py _token_usage_from_payload 3 3 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama.py _coerce_float 4 4 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama.py _coerce_bool 9 9 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama.py OllamaProvider.__init__ 51 51 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama.py OllamaProvider._ensure_model 22 22 2 0%
projects/04-llm-adapter/adapter/core/providers/ollama.py OllamaProvider.invoke 76 76 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama.py OllamaProvider.invoke._coerce_content 9 9 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama.py (no function) 21 0 0 100%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py _StreamingResponseWrapper.__init__ 2 2 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py _StreamingResponseWrapper.close 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py _StreamingResponseWrapper.status_code 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py _StreamingResponseWrapper.status_code 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py _StreamingResponseWrapper.closed 3 3 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py _StreamingResponseWrapper.json 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py _StreamingResponseWrapper.raise_for_status 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py _StreamingResponseWrapper.iter_lines 5 5 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py _StreamingResponseWrapper.__enter__ 2 2 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py _StreamingResponseWrapper.__exit__ 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py _StreamingResponseWrapper.__getattr__ 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py _combine_host 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py OllamaClient.__init__ 4 4 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py OllamaClient.show 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py OllamaClient.pull 2 2 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py OllamaClient.chat 2 2 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py OllamaClient._post 3 3 4 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py OllamaClient._ensure_success 6 6 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py OllamaClient._raise_http_error 8 8 0 0%
projects/04-llm-adapter/adapter/core/providers/ollama_client.py (no function) 51 5 0 90%
projects/04-llm-adapter/adapter/core/providers/openai.py _resolve_api_key 6 6 0 0%
projects/04-llm-adapter/adapter/core/providers/openai.py _coerce_mapping 3 3 0 0%
projects/04-llm-adapter/adapter/core/providers/openai.py _is_rate_limit_error 7 7 0 0%
projects/04-llm-adapter/adapter/core/providers/openai.py _is_timeout_error 5 5 0 0%
projects/04-llm-adapter/adapter/core/providers/openai.py _is_auth_error 5 5 0 0%
projects/04-llm-adapter/adapter/core/providers/openai.py _is_transient_error 6 6 0 0%
projects/04-llm-adapter/adapter/core/providers/openai.py _normalize_openai_exception 9 9 0 0%
projects/04-llm-adapter/adapter/core/providers/openai.py _split_endpoint 9 9 0 0%
projects/04-llm-adapter/adapter/core/providers/openai.py _prepare_common_kwargs 8 8 0 0%
projects/04-llm-adapter/adapter/core/providers/openai.py OpenAIProvider.__init__ 17 17 2 0%
projects/04-llm-adapter/adapter/core/providers/openai.py OpenAIProvider.invoke 18 18 6 0%
projects/04-llm-adapter/adapter/core/providers/openai.py OpenAIProvider._invoke_mode 7 7 0 0%
projects/04-llm-adapter/adapter/core/providers/openai.py OpenAIProvider._call_responses 17 17 0 0%
projects/04-llm-adapter/adapter/core/providers/openai.py OpenAIProvider._call_chat_completions 22 22 0 0%
projects/04-llm-adapter/adapter/core/providers/openai.py OpenAIProvider._call_completions 22 22 0 0%
projects/04-llm-adapter/adapter/core/providers/openai.py (no function) 27 0 4 100%
projects/04-llm-adapter/adapter/core/providers/openai_utils.py _read_attr 8 8 0 0%
projects/04-llm-adapter/adapter/core/providers/openai_utils.py build_system_user_contents 5 5 0 0%
projects/04-llm-adapter/adapter/core/providers/openai_utils.py build_chat_messages 5 5 0 0%
projects/04-llm-adapter/adapter/core/providers/openai_utils.py extract_text_from_response 73 73 2 0%
projects/04-llm-adapter/adapter/core/providers/openai_utils.py extract_usage_tokens 57 57 2 0%
projects/04-llm-adapter/adapter/core/providers/openai_utils.py coerce_raw_output 13 13 4 0%
projects/04-llm-adapter/adapter/core/providers/openai_utils.py determine_modes 17 17 0 0%
projects/04-llm-adapter/adapter/core/providers/openai_utils.py OpenAIClientFactory.__init__ 1 1 0 0%
projects/04-llm-adapter/adapter/core/providers/openai_utils.py OpenAIClientFactory.create 25 25 0 0%
projects/04-llm-adapter/adapter/core/providers/openai_utils.py (no function) 15 0 0 100%
projects/04-llm-adapter/adapter/core/providers/openrouter.py _coerce_text 26 26 0 0%
projects/04-llm-adapter/adapter/core/providers/openrouter.py _coerce_usage 13 13 0 0%
projects/04-llm-adapter/adapter/core/providers/openrouter.py _coerce_finish_reason 13 13 0 0%
projects/04-llm-adapter/adapter/core/providers/openrouter.py _normalize_error 20 20 4 0%
projects/04-llm-adapter/adapter/core/providers/openrouter.py OpenRouterProvider.__init__ 29 29 0 0%
projects/04-llm-adapter/adapter/core/providers/openrouter.py OpenRouterProvider._build_payload 17 17 0 0%
projects/04-llm-adapter/adapter/core/providers/openrouter.py OpenRouterProvider.invoke 42 42 2 0%
projects/04-llm-adapter/adapter/core/providers/openrouter.py OpenRouterProvider._consume_stream 0 0 57 100%
projects/04-llm-adapter/adapter/core/providers/openrouter.py (no function) 20 0 3 100%
projects/04-llm-adapter/adapter/core/runner_execution.py RunnerExecution.__init__ 14 0 0 100%
projects/04-llm-adapter/adapter/core/runner_execution.py RunnerExecution._run_provider_call 1 1 0 0%
projects/04-llm-adapter/adapter/core/runner_execution.py RunnerExecution.run_sequential_attempt 3 3 0 0%
projects/04-llm-adapter/adapter/core/runner_execution.py RunnerExecution.run_parallel_attempt 3 3 0 0%
projects/04-llm-adapter/adapter/core/runner_execution.py RunnerExecution._run_single 38 8 2 79%
projects/04-llm-adapter/adapter/core/runner_execution.py RunnerExecution._apply_schema_validation 13 8 0 38%
projects/04-llm-adapter/adapter/core/runner_execution.py RunnerExecution._build_single_run_result 1 0 0 100%
projects/04-llm-adapter/adapter/core/runner_execution.py (no function) 40 0 2 100%
projects/04-llm-adapter/adapter/core/runner_execution_attempts.py SequentialAttemptExecutor.__init__ 1 0 0 100%
projects/04-llm-adapter/adapter/core/runner_execution_attempts.py SequentialAttemptExecutor.run 21 21 0 0%
projects/04-llm-adapter/adapter/core/runner_execution_attempts.py (no function) 13 0 4 100%
projects/04-llm-adapter/adapter/core/runner_execution_parallel.py _ParallelRunner.__call__ 0 0 1 100%
projects/04-llm-adapter/adapter/core/runner_execution_parallel.py ParallelAttemptExecutor.__init__ 7 0 0 100%
projects/04-llm-adapter/adapter/core/runner_execution_parallel.py ParallelAttemptExecutor.run 11 11 0 0%
projects/04-llm-adapter/adapter/core/runner_execution_parallel.py (no function) 18 0 13 100%
projects/04-llm-adapter/adapter/core/runners.py CompareRunner.__init__ 19 19 0 0%
projects/04-llm-adapter/adapter/core/runners.py CompareRunner.run 18 18 0 0%
projects/04-llm-adapter/adapter/core/runners.py CompareRunner._record_failed_batch 3 3 0 0%
projects/04-llm-adapter/adapter/core/runners.py CompareRunner._log_attempt_failures_with_mode 1 1 0 0%
projects/04-llm-adapter/adapter/core/runners.py CompareRunner._log_attempt_failures 8 8 0 0%
projects/04-llm-adapter/adapter/core/runners.py CompareRunner._run_provider_call 3 3 0 0%
projects/04-llm-adapter/adapter/core/runners.py CompareRunner._evaluate_budget 1 1 0 0%
projects/04-llm-adapter/adapter/core/runners.py CompareRunner._build_metrics 1 1 0 0%
projects/04-llm-adapter/adapter/core/runners.py CompareRunner._normalize_concurrency 5 5 0 0%
projects/04-llm-adapter/adapter/core/runners.py CompareRunner._mode_value 3 3 0 0%
projects/04-llm-adapter/adapter/core/runners.py CompareRunner._apply_aggregation 2 2 0 0%
projects/04-llm-adapter/adapter/core/runners.py (no function) 36 1 2 97%
projects/04-llm-adapter/adapter/core/schema.py (no function) 38 0 0 100%
projects/04-llm-adapter/tools/report/metrics/__init__.py (no function) 6 0 0 100%
projects/04-llm-adapter/tools/report/metrics/cli.py generate_report 13 13 0 0%
projects/04-llm-adapter/tools/report/metrics/cli.py main 12 12 0 0%
projects/04-llm-adapter/tools/report/metrics/cli.py (no function) 10 0 2 100%
projects/04-llm-adapter/tools/report/metrics/data.py load_metrics 10 10 0 0%
projects/04-llm-adapter/tools/report/metrics/data.py compute_overview 7 7 0 0%
projects/04-llm-adapter/tools/report/metrics/data.py build_comparison_table 21 21 0 0%
projects/04-llm-adapter/tools/report/metrics/data.py build_latency_histogram_data 5 5 0 0%
projects/04-llm-adapter/tools/report/metrics/data.py build_scatter_data 5 5 0 0%
projects/04-llm-adapter/tools/report/metrics/data.py build_failure_summary 8 8 0 0%
projects/04-llm-adapter/tools/report/metrics/data.py build_determinism_alerts 10 10 0 0%
projects/04-llm-adapter/tools/report/metrics/data.py load_baseline_expectations 22 22 0 0%
projects/04-llm-adapter/tools/report/metrics/data.py (no function) 17 0 0 100%
projects/04-llm-adapter/tools/report/metrics/html_report.py render_html 19 19 0 0%
projects/04-llm-adapter/tools/report/metrics/html_report.py (no function) 6 0 0 100%
projects/04-llm-adapter/tools/report/metrics/regression_summary.py _format_rate 3 3 0 0%
projects/04-llm-adapter/tools/report/metrics/regression_summary.py _extract_diff_rate 10 10 0 0%
projects/04-llm-adapter/tools/report/metrics/regression_summary.py build_regression_summary 72 72 0 0%
projects/04-llm-adapter/tools/report/metrics/regression_summary.py (no function) 10 0 0 100%
projects/04-llm-adapter/tools/report/metrics/utils.py parse_iso_ts 10 10 0 0%
projects/04-llm-adapter/tools/report/metrics/utils.py coerce_optional_float 6 6 0 0%
projects/04-llm-adapter/tools/report/metrics/utils.py latest_metrics_by_key 13 13 0 0%
projects/04-llm-adapter/tools/report/metrics/utils.py (no function) 6 0 0 100%
projects/04-llm-adapter/tools/report/metrics/weekly_summary.py update_weekly_summary 35 35 0 0%
projects/04-llm-adapter/tools/report/metrics/weekly_summary.py (no function) 6 0 0 100%
projects/04-llm-adapter/tools/report/metrics_to_html.py (no function) 2 0 2 100%
tests/config/test_mypy_config.py load_mypy_config 3 0 0 100%
tests/config/test_mypy_config.py test_mypy_path_points_to_primary_project 4 0 0 100%
tests/config/test_mypy_config.py test_exclude_does_not_drop_core_package 5 0 0 100%
tests/config/test_mypy_config.py (no function) 9 0 0 100%
tests/config/test_shadow_pyproject_deprecation.py test_llm_adapter_script_is_not_exposed_via_shadow_package 4 0 0 100%
tests/config/test_shadow_pyproject_deprecation.py (no function) 4 0 0 100%
tests/conftest.py (no function) 18 4 0 78%
tests/docs/test_changelog_shadow_refs.py test_shadow_refs_limited_to_migration_section 12 0 0 100%
tests/docs/test_changelog_shadow_refs.py (no function) 3 0 0 100%
tests/docs/test_coverage_index_targets.py test_coverage_index_excludes_shadow_project 2 1 0 50%
tests/docs/test_coverage_index_targets.py (no function) 2 0 0 100%
tests/docs/test_coverage_status_targets.py test_coverage_status_targets_are_main_project_only 18 17 0 6%
tests/docs/test_coverage_status_targets.py (no function) 6 0 0 100%
tests/docs/test_en_index_llm_adapter.py test_llm_adapter_card_describes_provider_integration 13 0 0 100%
tests/docs/test_en_index_llm_adapter.py (no function) 4 0 0 100%
tests/docs/test_evidence_links.py test_llm_adapter_evidence_links 3 0 0 100%
tests/docs/test_evidence_links.py (no function) 8 0 0 100%
tests/docs/test_progress_20251004_sources.py test_progress_report_links_use_primary_adapter 4 0 0 100%
tests/docs/test_progress_20251004_sources.py (no function) 3 0 0 100%
tests/docs/test_readme_links.py test_readme_shadow_references_stay_within_allowlist 3 0 0 100%
tests/docs/test_readme_links.py (no function) 4 0 0 100%
tests/docs/test_release_v02_links.py test_release_v02_links_point_to_core_adapter 4 0 0 100%
tests/docs/test_release_v02_links.py (no function) 3 0 0 100%
tests/docs/test_runner_refactor_tasks_links.py doc_text 1 0 0 100%
tests/docs/test_runner_refactor_tasks_links.py test_runner_refactor_tasks_uses_adapter_core_sources 6 0 0 100%
tests/docs/test_runner_refactor_tasks_links.py (no function) 7 0 0 100%
tests/docs/test_shadow_readme_deprecation.py test_shadow_readme_has_deprecation_notice 5 0 0 100%
tests/docs/test_shadow_readme_deprecation.py (no function) 2 0 0 100%
tests/docs/test_shadow_tasks_deprecated.py test_shadow_tasks_doc_has_no_shadow_dependency_paths 2 0 0 100%
tests/docs/test_shadow_tasks_deprecated.py (no function) 3 0 0 100%
tests/docs/test_v02_roadmap_links.py test_v02_roadmap_links_llm_adapter_readme 3 0 0 100%
tests/docs/test_v02_roadmap_links.py (no function) 3 0 0 100%
tests/docs/test_v02_tasks_entries.py _load_tasks_markdown 1 0 0 100%
tests/docs/test_v02_tasks_entries.py test_provider_yaml_tasks_reflect_existing_files 8 0 0 100%
tests/docs/test_v02_tasks_entries.py test_shadow_dependency_cleanup_task_exists 2 0 0 100%
tests/docs/test_v02_tasks_entries.py (no function) 5 0 0 100%
tests/scripts/test_bootstrap_ps1.py test_bootstrap_uses_adapter_requirements_txt 7 0 0 100%
tests/scripts/test_bootstrap_ps1.py (no function) 3 0 0 100%
tests/scripts/test_bootstrap_sh.py test_bootstrap_targets_llm_adapter_requirements 3 0 0 100%
tests/scripts/test_bootstrap_sh.py (no function) 2 0 0 100%
tests/scripts/test_eslint_bin.py test_eslint_bin_ignored_path_patterns 6 0 0 100%
tests/scripts/test_eslint_bin.py (no function) 3 0 0 100%
tests/scripts/test_eslint_config.py test_eslint_config_ignores_shadow_directory 3 0 0 100%
tests/scripts/test_eslint_config.py (no function) 2 0 0 100%
tests/scripts/test_just_targets.py test_python_targets_point_to_primary_project 5 0 0 100%
tests/scripts/test_just_targets.py (no function) 2 0 0 100%
tests/shadow/test_runner_async_support_shim.py _load_module 5 0 0 100%
tests/shadow/test_runner_async_support_shim.py test_runner_async_support_shim_is_disabled 4 0 0 100%
tests/shadow/test_runner_async_support_shim.py (no function) 6 0 0 100%
tests/shadow/test_runner_logging_shim.py test_runner_logging_shim_executes_to_error 7 0 0 100%
tests/shadow/test_runner_logging_shim.py (no function) 6 0 0 100%
tests/shadow/test_runner_parallel_shim.py test_runner_parallel_shim_removed 3 0 0 100%
tests/shadow/test_runner_parallel_shim.py (no function) 3 0 0 100%
tests/shadow/test_runner_parallel_shim_exports.py test_runner_parallel_shim_import_raises_import_error 8 0 0 100%
tests/shadow/test_runner_parallel_shim_exports.py (no function) 5 0 0 100%
tests/shadow/test_runner_sequential_shim.py test_runner_sequential_shim_is_absent 3 0 0 100%
tests/shadow/test_runner_sequential_shim.py (no function) 4 0 0 100%
tests/test_adapter_import_shadow_guard.py test_adapter_import_does_not_shadow 10 0 0 100%
tests/test_adapter_import_shadow_guard.py clean_adapter_modules 7 0 0 100%
tests/test_adapter_import_shadow_guard.py (no function) 9 0 0 100%
tests/test_ci_metrics.py test_compute_run_history_excludes_other_statuses_from_pass_rate 4 0 0 100%
tests/test_ci_metrics.py (no function) 2 0 0 100%
tests/test_generate_ci_report.py sample_runs 1 0 0 100%
tests/test_generate_ci_report.py test_aggregate_status_counts_errored_as_error 2 0 0 100%
tests/test_generate_ci_report.py test_aggregate_status_counts_passed_status 5 0 0 100%
tests/test_generate_ci_report.py test_aggregate_status_counts_failure_status 5 0 0 100%
tests/test_generate_ci_report.py test_compute_last_updated 1 0 0 100%
tests/test_generate_ci_report.py test_normalize_flaky_rows_sorts_and_limits 5 0 0 100%
tests/test_generate_ci_report.py test_summarize_failure_kinds_counts_errored 3 0 0 100%
tests/test_generate_ci_report.py test_render_markdown_includes_summary 3 0 0 100%
tests/test_generate_ci_report.py test_render_markdown_formats_numeric_strings 3 0 0 100%
tests/test_generate_ci_report.py test_select_flaky_rows_includes_end_date 5 0 0 100%
tests/test_generate_ci_report.py (no function) 17 0 0 100%
tests/test_runner_shadow_metrics.py _build_metrics 2 0 0 100%
tests/test_runner_shadow_metrics.py _build_metrics.build_metrics 13 0 0 100%
tests/test_runner_shadow_metrics.py _make_execution 1 0 0 100%
tests/test_runner_shadow_metrics.py _run_single 4 0 0 100%
tests/test_runner_shadow_metrics.py test_shadow_metrics_capture 11 0 0 100%
tests/test_runner_shadow_metrics.py test_run_single_retries_rate_limit_preserves_shadow_metrics 19 7 0 63%
tests/test_runner_shadow_metrics.py test_run_single_retries_rate_limit_preserves_shadow_metrics.ShadowProvider.name 1 0 0 100%
tests/test_runner_shadow_metrics.py test_run_single_retries_rate_limit_preserves_shadow_metrics.ShadowProvider.capabilities 1 1 0 0%
tests/test_runner_shadow_metrics.py test_run_single_retries_rate_limit_preserves_shadow_metrics.ShadowProvider.invoke 2 0 0 100%
tests/test_runner_shadow_metrics.py test_run_single_retries_rate_limit_preserves_shadow_metrics.generate 4 4 0 0%
tests/test_runner_shadow_metrics.py (no function) 22 0 0 100%
tests/test_update_readme_metrics.py load_update_readme_metrics_module 8 2 0 75%
tests/test_update_readme_metrics.py test_format_top_flaky_includes_numeric_score 4 0 0 100%
tests/test_update_readme_metrics.py (no function) 5 0 0 100%
tests/tools/test_weekly_summary_cli.py test_top_failure_kinds_includes_errored_status 5 0 0 100%
tests/tools/test_weekly_summary_cli.py (no function) 11 1 0 91%
tests/tools/test_weekly_summary_io.py test_legacy_exports_continue_to_work 3 0 0 100%
tests/tools/test_weekly_summary_io.py test_io_module_provides_same_interfaces 14 0 0 100%
tests/tools/test_weekly_summary_io.py (no function) 16 1 0 94%
tools/__init__.py _ensure_namespace 8 1 0 88%
tools/__init__.py _load_package 8 2 0 75%
tools/__init__.py (no function) 22 0 0 100%
tools/ci_metrics.py normalize_status 8 0 0 100%
tools/ci_metrics.py _group_runs 17 3 0 82%
tools/ci_metrics.py compute_run_history 39 18 0 54%
tools/ci_metrics.py compute_recent_deltas 18 18 0 0%
tools/ci_metrics.py load_run_history 2 2 0 0%
tools/ci_metrics.py (no function) 32 0 0 100%
tools/ci_report/__init__.py (no function) 3 0 0 100%
tools/ci_report/processing.py compute_last_updated 9 1 0 89%
tools/ci_report/processing.py summarize_failure_kinds 10 1 0 90%
tools/ci_report/processing.py normalize_flaky_rows 20 3 0 85%
tools/ci_report/processing.py (no function) 9 0 0 100%
tools/ci_report/rendering.py build_json_payload 3 3 0 0%
tools/ci_report/rendering.py _format_flaky_markdown 14 2 0 86%
tools/ci_report/rendering.py render_markdown 10 0 0 100%
tools/ci_report/rendering.py (no function) 10 0 0 100%
tools/update_readme_metrics.py parse_args 5 5 0 0%
tools/update_readme_metrics.py load_payload 6 6 0 0%
tools/update_readme_metrics.py format_pass_rate 3 3 0 0%
tools/update_readme_metrics.py format_top_flaky 11 1 0 91%
tools/update_readme_metrics.py format_pass_rate_delta 6 6 0 0%
tools/update_readme_metrics.py format_int_delta 6 6 0 0%
tools/update_readme_metrics.py format_recent_runs 12 12 0 0%
tools/update_readme_metrics.py build_table 21 21 0 0%
tools/update_readme_metrics.py replace_section 12 12 0 0%
tools/update_readme_metrics.py main 6 6 0 0%
tools/update_readme_metrics.py (no function) 17 0 2 100%
tools/weekly_summary/__init__.py aggregate_status 14 1 0 93%
tools/weekly_summary/__init__.py compute_failure_top 7 1 0 86%
tools/weekly_summary/__init__.py extract_defect_dates 13 13 0 0%
tools/weekly_summary/__init__.py count_new_defects 1 1 0 0%
tools/weekly_summary/__init__.py select_flaky_rows 12 3 0 75%
tools/weekly_summary/__init__.py coerce_str 8 3 0 62%
tools/weekly_summary/__init__.py to_float 15 6 0 60%
tools/weekly_summary/__init__.py format_percentage 3 1 0 67%
tools/weekly_summary/__init__.py format_table 13 13 0 0%
tools/weekly_summary/__init__.py week_over_week_notes 5 5 0 0%
tools/weekly_summary/__init__.py build_front_matter 1 1 0 0%
tools/weekly_summary/__init__.py ensure_front_matter 10 10 0 0%
tools/weekly_summary/__init__.py fallback_write 16 16 0 0%
tools/weekly_summary/__init__.py (no function) 21 0 0 100%
tools/weekly_summary/__main__.py _parse_args_impl 8 8 0 0%
tools/weekly_summary/__main__.py parse_args 1 1 0 0%
tools/weekly_summary/__main__.py _collect_failure_kinds 8 1 0 88%
tools/weekly_summary/__main__.py _main_impl 56 56 0 0%
tools/weekly_summary/__main__.py _main_impl.sort_flaky 1 1 0 0%
tools/weekly_summary/__main__.py main 1 1 0 0%
tools/weekly_summary/__main__.py (no function) 14 0 2 100%
tools/weekly_summary/io.py parse_iso8601 11 5 0 55%
tools/weekly_summary/io.py coerce_str 8 4 0 50%
tools/weekly_summary/io.py load_runs 14 4 0 71%
tools/weekly_summary/io.py load_flaky 8 1 0 88%
tools/weekly_summary/io.py filter_by_window 9 1 0 89%
tools/weekly_summary/io.py (no function) 14 0 0 100%
Total   5160 2875 426 44%

No items found using the specified filter.