Coverage report: 84%

Files Functions Classes

coverage.py v7.9.2, created at 2025-09-18 21:15 +0100

File function statements missing excluded coverage
src/chat_limiter/__init__.py (no function) 9 0 0 100%
src/chat_limiter/adapters.py ProviderAdapter.is_reasoning_model 4 0 0 100%
src/chat_limiter/adapters.py ProviderAdapter.format_request 1 1 0 0%
src/chat_limiter/adapters.py ProviderAdapter.parse_response 1 1 0 0%
src/chat_limiter/adapters.py ProviderAdapter.get_endpoint 1 1 0 0%
src/chat_limiter/adapters.py OpenAIAdapter.format_request 35 1 0 97%
src/chat_limiter/adapters.py OpenAIAdapter.parse_response 17 0 0 100%
src/chat_limiter/adapters.py OpenAIAdapter.get_endpoint 1 0 0 100%
src/chat_limiter/adapters.py AnthropicAdapter.format_request 25 3 0 88%
src/chat_limiter/adapters.py AnthropicAdapter.parse_response 19 0 0 100%
src/chat_limiter/adapters.py AnthropicAdapter.get_endpoint 1 0 0 100%
src/chat_limiter/adapters.py OpenRouterAdapter.format_request 28 8 0 71%
src/chat_limiter/adapters.py OpenRouterAdapter.parse_response 17 0 0 100%
src/chat_limiter/adapters.py OpenRouterAdapter.get_endpoint 1 0 0 100%
src/chat_limiter/adapters.py get_adapter 1 0 0 100%
src/chat_limiter/adapters.py (no function) 28 0 0 100%
src/chat_limiter/batch.py BatchConfig.__post_init__ 4 0 0 100%
src/chat_limiter/batch.py BatchProcessor.__init__ 6 0 0 100%
src/chat_limiter/batch.py BatchProcessor.process_item 1 1 0 0%
src/chat_limiter/batch.py BatchProcessor.process_item_sync 1 1 0 0%
src/chat_limiter/batch.py BatchProcessor.create_batch_items 10 4 0 60%
src/chat_limiter/batch.py BatchProcessor.process_batch 25 3 0 88%
src/chat_limiter/batch.py BatchProcessor.process_batch_sync 27 4 0 85%
src/chat_limiter/batch.py BatchProcessor._group_items 11 1 0 91%
src/chat_limiter/batch.py BatchProcessor._process_item_with_retry 39 15 0 62%
src/chat_limiter/batch.py BatchProcessor._process_item_sync_with_retry 22 4 0 82%
src/chat_limiter/batch.py BatchProcessor.get_success_rate 4 4 0 0%
src/chat_limiter/batch.py BatchProcessor.get_successful_results 1 1 0 0%
src/chat_limiter/batch.py BatchProcessor.get_failed_results 1 1 0 0%
src/chat_limiter/batch.py BatchProcessor.get_stats 7 7 0 0%
src/chat_limiter/batch.py ChatCompletionBatchProcessor.process_item 23 11 0 52%
src/chat_limiter/batch.py ChatCompletionBatchProcessor.process_item_sync 23 11 0 52%
src/chat_limiter/batch.py process_chat_completion_batch 2 0 0 100%
src/chat_limiter/batch.py process_chat_completion_batch_sync 2 0 0 100%
src/chat_limiter/batch.py create_chat_completion_requests 6 0 0 100%
src/chat_limiter/batch.py (no function) 83 1 0 99%
src/chat_limiter/limiter.py ChatLimiter.__init__ 33 0 0 100%
src/chat_limiter/limiter.py ChatLimiter.for_model 43 10 0 77%
src/chat_limiter/limiter.py ChatLimiter._init_http_clients 19 0 0 100%
src/chat_limiter/limiter.py ChatLimiter._init_rate_limiters 12 0 0 100%
src/chat_limiter/limiter.py ChatLimiter.__aenter__ 8 1 0 88%
src/chat_limiter/limiter.py ChatLimiter.__aexit__ 2 0 0 100%
src/chat_limiter/limiter.py ChatLimiter.__enter__ 8 1 0 88%
src/chat_limiter/limiter.py ChatLimiter.__exit__ 2 0 0 100%
src/chat_limiter/limiter.py ChatLimiter._discover_rate_limits 11 3 0 73%
src/chat_limiter/limiter.py ChatLimiter._discover_rate_limits_sync 9 6 0 33%
src/chat_limiter/limiter.py ChatLimiter._update_rate_limits 40 12 0 70%
src/chat_limiter/limiter.py ChatLimiter._estimate_tokens 9 0 0 100%
src/chat_limiter/limiter.py ChatLimiter._acquire_rate_limits 19 8 0 58%
src/chat_limiter/limiter.py ChatLimiter._acquire_rate_limits_sync 19 12 0 37%
src/chat_limiter/limiter.py ChatLimiter._get_retry_decorator 1 1 0 0%
src/chat_limiter/limiter.py ChatLimiter.get_current_limits 1 0 0 100%
src/chat_limiter/limiter.py ChatLimiter.reset_usage_tracking 3 0 0 100%
src/chat_limiter/limiter.py ChatLimiter.chat_completion 30 5 0 83%
src/chat_limiter/limiter.py ChatLimiter.chat_completion_sync 30 12 0 60%
src/chat_limiter/limiter.py ChatLimiter.simple_chat 5 0 0 100%
src/chat_limiter/limiter.py ChatLimiter.simple_chat_sync 5 1 0 80%
src/chat_limiter/limiter.py ChatLimiter.set_print_rate_limit_info 1 0 0 100%
src/chat_limiter/limiter.py ChatLimiter.set_print_request_initiation 1 0 0 100%
src/chat_limiter/limiter.py ChatLimiter._print_rate_limit_info_details 18 18 0 0%
src/chat_limiter/limiter.py (no function) 54 0 0 100%
src/chat_limiter/models.py ModelDiscoveryResult.get_all_models 8 1 0 88%
src/chat_limiter/models.py ModelDiscoveryResult.get_total_models_found 8 0 0 100%
src/chat_limiter/models.py ModelDiscovery.get_openai_models 20 0 0 100%
src/chat_limiter/models.py ModelDiscovery.get_anthropic_models 20 3 0 85%
src/chat_limiter/models.py ModelDiscovery.get_openrouter_models 24 3 0 88%
src/chat_limiter/models.py ModelDiscovery.get_openai_models_sync 1 0 0 100%
src/chat_limiter/models.py ModelDiscovery.get_anthropic_models_sync 1 0 0 100%
src/chat_limiter/models.py ModelDiscovery.get_openrouter_models_sync 1 0 0 100%
src/chat_limiter/models.py detect_provider_from_model_async 62 9 0 85%
src/chat_limiter/models.py detect_provider_from_model_sync 1 0 0 100%
src/chat_limiter/models.py clear_model_cache 2 0 0 100%
src/chat_limiter/models.py (no function) 36 0 0 100%
src/chat_limiter/providers.py get_provider_config 1 0 0 100%
src/chat_limiter/providers.py detect_provider_from_url 8 0 0 100%
src/chat_limiter/providers.py extract_rate_limit_info 17 0 0 100%
src/chat_limiter/providers.py _safe_int 6 0 0 100%
src/chat_limiter/providers.py _safe_float 6 0 0 100%
src/chat_limiter/providers.py (no function) 42 0 0 100%
src/chat_limiter/types.py detect_provider_from_model 27 0 0 100%
src/chat_limiter/types.py (no function) 53 0 0 100%
src/chat_limiter/utils.py _get_background_executor 1 0 0 100%
src/chat_limiter/utils.py run_coro_blocking 28 6 0 79%
src/chat_limiter/utils.py run_coro_blocking._runner 1 0 0 100%
src/chat_limiter/utils.py (no function) 8 0 0 100%
Total   1252 196 0 84%

No items found using the specified filter.