Coverage report: 87%

Files Functions Classes

coverage.py v7.9.2, created at 2025-07-11 20:26 +0100

File function statements missing excluded coverage
src/chat_limiter/__init__.py (no function) 8 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.is_reasoning_model 1 0 0 100%
src/chat_limiter/adapters.py OpenAIAdapter.format_request 28 0 0 100%
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 20 1 0 95%
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 21 6 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 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 0 0 100%
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 0 0 100%
src/chat_limiter/batch.py BatchProcessor._process_item_with_retry 36 1 0 97%
src/chat_limiter/batch.py BatchProcessor._process_item_sync_with_retry 20 1 0 95%
src/chat_limiter/batch.py BatchProcessor.get_success_rate 4 1 0 75%
src/chat_limiter/batch.py BatchProcessor.get_successful_results 1 0 0 100%
src/chat_limiter/batch.py BatchProcessor.get_failed_results 1 0 0 100%
src/chat_limiter/batch.py BatchProcessor.get_stats 7 1 0 86%
src/chat_limiter/batch.py ChatBatchProcessor.process_item 27 11 0 59%
src/chat_limiter/batch.py ChatBatchProcessor.process_item_sync 27 11 0 59%
src/chat_limiter/batch.py process_chat_batch 2 0 0 100%
src/chat_limiter/batch.py process_chat_batch_sync 2 0 0 100%
src/chat_limiter/batch.py ChatCompletionBatchProcessor.process_item 18 11 0 39%
src/chat_limiter/batch.py ChatCompletionBatchProcessor.process_item_sync 18 11 0 39%
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) 81 1 0 99%
src/chat_limiter/limiter.py ChatLimiter.__init__ 32 0 0 100%
src/chat_limiter/limiter.py ChatLimiter.for_model 47 5 0 89%
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 2 0 78%
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 8 0 58%
src/chat_limiter/limiter.py ChatLimiter._get_retry_decorator 1 0 0 100%
src/chat_limiter/limiter.py ChatLimiter.request 12 2 0 83%
src/chat_limiter/limiter.py ChatLimiter._request_impl 17 2 0 88%
src/chat_limiter/limiter.py ChatLimiter.request_sync 6 2 0 67%
src/chat_limiter/limiter.py ChatLimiter._request_sync_impl 17 6 0 65%
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 8 0 0 100%
src/chat_limiter/limiter.py ChatLimiter.chat_completion_sync 8 0 0 100%
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_verbose_mode 1 0 0 100%
src/chat_limiter/limiter.py ChatLimiter._print_rate_limit_info 18 18 0 0%
src/chat_limiter/limiter.py (no function) 56 0 0 100%
src/chat_limiter/models.py ModelDiscoveryResult.get_all_models 8 0 0 100%
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 41 8 0 80%
src/chat_limiter/models.py detect_provider_from_model_sync 9 0 0 100%
src/chat_limiter/models.py detect_provider_from_model_sync.run_in_thread 1 0 0 100%
src/chat_limiter/models.py clear_model_cache 2 0 0 100%
src/chat_limiter/models.py (no function) 35 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 13 4 0 69%
src/chat_limiter/types.py (no function) 49 0 0 100%
Total   1209 157 0 87%

No items found using the specified filter.