Coverage report: 91%

Files Functions Classes

coverage.py v7.13.2, created at 2026-01-28 09:30 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
sentimatrix / __init__.py (no function)   100% 6 0 0   100% 0 0   100%
sentimatrix / analysis / __init__.py (no function)   100% 0 0 0   100% 0 0   100%
sentimatrix / core / __init__.py (no function)   100% 5 0 0   100% 0 0   100%
sentimatrix / core / cache.py CacheEntry.is_expired   100% 3 0 0   100% 2 0   100%
sentimatrix / core / cache.py CacheEntry.ttl_remaining   100% 4 0 0   100% 2 0   100%
sentimatrix / core / cache.py CacheEntry.touch   100% 2 0 0   100% 0 0   100%
sentimatrix / core / cache.py CacheStats.hit_rate   100% 2 0 0   100% 0 0   100%
sentimatrix / core / cache.py CacheStats.to_dict   100% 1 0 0   100% 0 0   100%
sentimatrix / core / cache.py BaseCacheBackend.get   0% 1 1 0   100% 0 0   0%
sentimatrix / core / cache.py BaseCacheBackend.set   0% 1 1 0   100% 0 0   0%
sentimatrix / core / cache.py BaseCacheBackend.delete   0% 1 1 0   100% 0 0   0%
sentimatrix / core / cache.py BaseCacheBackend.exists   0% 1 1 0   100% 0 0   0%
sentimatrix / core / cache.py BaseCacheBackend.clear   0% 1 1 0   100% 0 0   0%
sentimatrix / core / cache.py BaseCacheBackend.get_stats   0% 1 1 0   100% 0 0   0%
sentimatrix / core / cache.py BaseCacheBackend.close   0% 1 1 0   100% 0 0   0%
sentimatrix / core / cache.py MemoryCache.__init__   100% 6 0 0   100% 0 0   100%
sentimatrix / core / cache.py MemoryCache.get   90% 20 2 0   100% 6 0   92%
sentimatrix / core / cache.py MemoryCache.set   88% 16 2 0   100% 4 0   90%
sentimatrix / core / cache.py MemoryCache.delete   100% 7 0 0   100% 2 0   100%
sentimatrix / core / cache.py MemoryCache.exists   67% 9 3 0   75% 4 1   69%
sentimatrix / core / cache.py MemoryCache.clear   100% 11 0 0   100% 4 0   100%
sentimatrix / core / cache.py MemoryCache.get_stats   75% 12 3 0   75% 4 1   75%
sentimatrix / core / cache.py MemoryCache.close   100% 1 0 0   100% 0 0   100%
sentimatrix / core / cache.py MemoryCache._evict_lru   75% 8 2 0   67% 6 2   71%
sentimatrix / core / cache.py MemoryCache.get_many   100% 6 0 0   100% 4 0   100%
sentimatrix / core / cache.py MemoryCache.set_many   100% 2 0 0   100% 2 0   100%
sentimatrix / core / cache.py MemoryCache.delete_many   100% 5 0 0   100% 4 0   100%
sentimatrix / core / cache.py CacheManager.__init__   100% 3 0 0   100% 0 0   100%
sentimatrix / core / cache.py CacheManager.initialize   67% 12 4 2   67% 6 2   67%
sentimatrix / core / cache.py CacheManager._ensure_initialized   50% 2 1 0   50% 2 1   50%
sentimatrix / core / cache.py CacheManager._make_key   100% 1 0 0   100% 0 0   100%
sentimatrix / core / cache.py CacheManager.hash_key   100% 1 0 0   100% 0 0   100%
sentimatrix / core / cache.py CacheManager.get   78% 9 2 0   100% 2 0   82%
sentimatrix / core / cache.py CacheManager.set   75% 8 2 0   100% 2 0   80%
sentimatrix / core / cache.py CacheManager.delete   0% 5 5 0   0% 2 0   0%
sentimatrix / core / cache.py CacheManager.exists   0% 5 5 0   0% 2 0   0%
sentimatrix / core / cache.py CacheManager.clear   0% 5 5 0   0% 2 0   0%
sentimatrix / core / cache.py CacheManager.get_or_set   90% 10 1 0   83% 6 1   88%
sentimatrix / core / cache.py CacheManager.get_stats   75% 4 1 0   50% 2 1   67%
sentimatrix / core / cache.py CacheManager.close   100% 3 0 0   100% 2 0   100%
sentimatrix / core / cache.py CacheManager.enabled   0% 1 1 0   100% 0 0   0%
sentimatrix / core / cache.py CacheManager.backend_type   0% 1 1 0   100% 0 0   0%
sentimatrix / core / cache.py CacheManager.__aenter__   100% 2 0 0   100% 0 0   100%
sentimatrix / core / cache.py CacheManager.__aexit__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / cache.py cache_key   100% 4 0 0   100% 0 0   100%
sentimatrix / core / cache.py cached   100% 2 0 0   100% 0 0   100%
sentimatrix / core / cache.py cached.decorator   100% 2 0 0   100% 0 0   100%
sentimatrix / core / cache.py cached.decorator.wrapper   100% 13 0 0   83% 6 1   95%
sentimatrix / core / cache.py (no function)   100% 91 0 0   100% 0 0   100%
sentimatrix / core / config.py ProxyConfig.validate_proxy_config   100% 3 0 0   100% 2 0   100%
sentimatrix / core / config.py LLMConfig.resolve_api_key_from_env   100% 4 0 0   100% 2 0   100%
sentimatrix / core / config.py CacheConfig.validate_backend_config   100% 5 0 0   100% 4 0   100%
sentimatrix / core / config.py SentimatrixConfig.from_file   90% 21 2 0   100% 6 0   93%
sentimatrix / core / config.py SentimatrixConfig.from_env   100% 1 0 0   100% 0 0   100%
sentimatrix / core / config.py SentimatrixConfig.to_dict   100% 1 0 0   100% 0 0   100%
sentimatrix / core / config.py SentimatrixConfig.to_yaml   100% 1 0 0   100% 0 0   100%
sentimatrix / core / config.py SentimatrixConfig.save   80% 10 2 0   75% 4 1   79%
sentimatrix / core / config.py SentimatrixConfig.with_overrides   100% 3 0 0   100% 0 0   100%
sentimatrix / core / config.py SentimatrixConfig._deep_merge   100% 4 0 0   100% 4 0   100%
sentimatrix / core / config.py get_config   100% 3 0 0   100% 2 0   100%
sentimatrix / core / config.py (no function)   100% 163 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py SentimatrixError.__init__   100% 5 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py SentimatrixError.__str__   100% 6 0 0   100% 4 0   100%
sentimatrix / core / exceptions.py SentimatrixError.__repr__   100% 0 0 7   100% 0 0   100%
sentimatrix / core / exceptions.py SentimatrixError.to_dict   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ConfigurationError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ConfigNotFoundError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ConfigValidationError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ValidationError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py InvalidInputError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py MissingRequiredFieldError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ProviderError.__init__   100% 4 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ProviderNotFoundError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ProviderInitializationError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py LLMProviderError.__init__   100% 5 0 0   100% 2 0   100%
sentimatrix / core / exceptions.py AuthenticationError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py InvalidModelError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ContentFilteredError.__init__   100% 4 0 0   50% 2 1   83%
sentimatrix / core / exceptions.py TokenLimitExceededError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py InvalidResponseError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py OpenAIError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py AnthropicError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py GroqError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py GeminiError.__init__   0% 1 1 0   100% 0 0   0%
sentimatrix / core / exceptions.py OllamaError.__init__   0% 1 1 0   100% 0 0   0%
sentimatrix / core / exceptions.py ScraperError.__init__   100% 5 0 0   100% 2 0   100%
sentimatrix / core / exceptions.py ScraperConnectionError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ScraperTimeoutError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ScraperBlockedError.__init__   100% 4 0 0   50% 2 1   83%
sentimatrix / core / exceptions.py CaptchaDetectedError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ScraperParseError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py PlaywrightError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py SeleniumError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ModelError.__init__   100% 4 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ModelNotFoundError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ModelLoadError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ModelInferenceError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py DeviceError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py RateLimitError.__init__   100% 7 0 0   100% 2 0   100%
sentimatrix / core / exceptions.py QuotaExceededError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py TimeoutError.__init__   100% 6 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ConnectionTimeoutError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py ReadTimeoutError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py CacheError.__init__   100% 4 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py CacheConnectionError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py CacheReadError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py CacheWriteError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py CacheSerializationError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py PipelineError.__init__   100% 8 0 0   100% 4 0   100%
sentimatrix / core / exceptions.py PipelineStepError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py PipelineStateError.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / exceptions.py (no function)   100% 143 0 1   100% 0 0   100%
sentimatrix / core / logger.py LogContext.__init__   100% 2 0 0   100% 0 0   100%
sentimatrix / core / logger.py LogContext.__enter__   100% 4 0 0   100% 0 0   100%
sentimatrix / core / logger.py LogContext.__exit__   100% 2 0 0   50% 2 1   75%
sentimatrix / core / logger.py LogContext.get   100% 1 0 0   100% 0 0   100%
sentimatrix / core / logger.py LogContext.set   100% 1 0 0   100% 0 0   100%
sentimatrix / core / logger.py LogContext.update   100% 3 0 0   100% 0 0   100%
sentimatrix / core / logger.py LogContext.clear   100% 1 0 0   100% 0 0   100%
sentimatrix / core / logger.py JsonFormatter.__init__   100% 4 0 0   100% 0 0   100%
sentimatrix / core / logger.py JsonFormatter.format   100% 15 0 0   100% 10 0   100%
sentimatrix / core / logger.py TextFormatter.__init__   100% 4 0 0   100% 0 0   100%
sentimatrix / core / logger.py TextFormatter.format   80% 25 5 0   75% 12 3   78%
sentimatrix / core / logger.py StructuredLogger.__init__   100% 1 0 0   100% 0 0   100%
sentimatrix / core / logger.py StructuredLogger.name   100% 1 0 0   100% 0 0   100%
sentimatrix / core / logger.py StructuredLogger.level   100% 1 0 0   100% 0 0   100%
sentimatrix / core / logger.py StructuredLogger._log   100% 4 0 0   100% 2 0   100%
sentimatrix / core / logger.py StructuredLogger.debug   100% 1 0 0   100% 0 0   100%
sentimatrix / core / logger.py StructuredLogger.info   100% 1 0 0   100% 0 0   100%
sentimatrix / core / logger.py StructuredLogger.warning   100% 1 0 0   100% 0 0   100%
sentimatrix / core / logger.py StructuredLogger.error   100% 1 0 0   100% 0 0   100%
sentimatrix / core / logger.py StructuredLogger.critical   100% 1 0 0   100% 0 0   100%
sentimatrix / core / logger.py StructuredLogger.exception   100% 1 0 0   100% 0 0   100%
sentimatrix / core / logger.py StructuredLogger.bind   100% 1 0 0   100% 0 0   100%
sentimatrix / core / logger.py BoundLogger.__init__   100% 2 0 0   100% 0 0   100%
sentimatrix / core / logger.py BoundLogger._log   83% 6 1 0   75% 4 1   80%
sentimatrix / core / logger.py BoundLogger.bind   100% 3 0 0   100% 0 0   100%
sentimatrix / core / logger.py LogManager.__new__   100% 3 0 0   100% 2 0   100%
sentimatrix / core / logger.py LogManager.__init__   100% 6 0 0   100% 2 0   100%
sentimatrix / core / logger.py LogManager.configure   67% 27 9 0   60% 10 2   65%
sentimatrix / core / logger.py LogManager.get_logger   86% 7 1 0   75% 4 1   82%
sentimatrix / core / logger.py LogManager.set_level   83% 6 1 0   75% 4 1   80%
sentimatrix / core / logger.py LogManager.shutdown   100% 5 0 0   100% 2 0   100%
sentimatrix / core / logger.py get_logger   75% 4 1 0   50% 2 1   67%
sentimatrix / core / logger.py configure_logging   100% 2 0 0   100% 0 0   100%
sentimatrix / core / logger.py set_log_level   100% 2 0 0   100% 0 0   100%
sentimatrix / core / logger.py (no function)   100% 63 0 0   100% 0 0   100%
sentimatrix / input / __init__.py (no function)   100% 0 0 0   100% 0 0   100%
sentimatrix / output / __init__.py (no function)   100% 0 0 0   100% 0 0   100%
sentimatrix / providers / __init__.py (no function)   100% 2 0 0   100% 0 0   100%
sentimatrix / providers / base.py ProviderCapabilities.to_dict   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py ProviderInfo.to_dict   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py TokenUsage.__add__   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py LLMResponse.to_dict   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py ScrapedContent.to_dict   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py Review.to_dict   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py PredictionResult.to_dict   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py BaseProvider.__init__   100% 2 0 0   100% 0 0   100%
sentimatrix / providers / base.py BaseProvider.info   0% 1 1 0   100% 0 0   0%
sentimatrix / providers / base.py BaseProvider.name   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py BaseProvider.is_initialized   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py BaseProvider.initialize   0% 1 1 0   100% 0 0   0%
sentimatrix / providers / base.py BaseProvider.close   0% 1 1 0   100% 0 0   0%
sentimatrix / providers / base.py BaseProvider.__aenter__   100% 2 0 0   100% 0 0   100%
sentimatrix / providers / base.py BaseProvider.__aexit__   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py BaseProvider._ensure_initialized   100% 2 0 0   50% 2 1   75%
sentimatrix / providers / base.py BaseLLMProvider.__init__   100% 2 0 0   100% 0 0   100%
sentimatrix / providers / base.py BaseLLMProvider.generate   0% 1 1 0   100% 0 0   0%
sentimatrix / providers / base.py BaseLLMProvider.generate_stream   0% 1 1 0   100% 0 0   0%
sentimatrix / providers / base.py BaseLLMProvider.generate_with_functions   0% 1 1 2   100% 0 0   0%
sentimatrix / providers / base.py BaseLLMProvider.embed   0% 1 1 2   100% 0 0   0%
sentimatrix / providers / base.py BaseLLMProvider.count_tokens   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py BaseLLMProvider.model   0% 1 1 0   100% 0 0   0%
sentimatrix / providers / base.py BaseLLMProvider.supports_streaming   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py BaseLLMProvider.supports_vision   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py BaseLLMProvider.supports_function_calling   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py BaseScraperProvider.__init__   100% 2 0 0   100% 0 0   100%
sentimatrix / providers / base.py BaseScraperProvider.scrape   0% 1 1 0   100% 0 0   0%
sentimatrix / providers / base.py BaseScraperProvider.scrape_reviews   0% 1 1 0   100% 0 0   0%
sentimatrix / providers / base.py BaseScraperProvider.screenshot   0% 1 1 2   100% 0 0   0%
sentimatrix / providers / base.py BaseScraperProvider.get_supported_platforms   0% 1 1 0   100% 0 0   0%
sentimatrix / providers / base.py BaseScraperProvider.supports_platform   75% 4 1 0   50% 2 1   67%
sentimatrix / providers / base.py BaseModelProvider.__init__   100% 3 0 0   100% 0 0   100%
sentimatrix / providers / base.py BaseModelProvider.predict   0% 1 1 0   100% 0 0   0%
sentimatrix / providers / base.py BaseModelProvider.predict_batch   0% 1 1 0   100% 0 0   0%
sentimatrix / providers / base.py BaseModelProvider.get_model_info   0% 1 1 0   100% 0 0   0%
sentimatrix / providers / base.py BaseModelProvider.model_name   100% 1 0 0   100% 0 0   100%
sentimatrix / providers / base.py BaseModelProvider.device   0% 1 1 0   100% 0 0   0%
sentimatrix / providers / base.py ProviderRegistry.__new__   100% 5 0 0   100% 2 0   100%
sentimatrix / providers / base.py ProviderRegistry.register   80% 5 1 0   50% 4 2   67%
sentimatrix / providers / base.py ProviderRegistry.register_factory   80% 5 1 0   50% 4 2   67%
sentimatrix / providers / base.py ProviderRegistry.get   60% 10 4 0   67% 6 2   62%
sentimatrix / providers / base.py ProviderRegistry.list_providers   100% 8 0 0   83% 6 1   93%
sentimatrix / providers / base.py ProviderRegistry.is_registered   100% 4 0 0   50% 2 1   83%
sentimatrix / providers / base.py get_provider   100% 2 0 0   100% 0 0   100%
sentimatrix / providers / base.py register_provider   0% 2 2 0   100% 0 0   0%
sentimatrix / providers / base.py list_providers   100% 2 0 0   100% 0 0   100%
sentimatrix / providers / base.py (no function)   100% 161 0 0   100% 0 0   100%
sentimatrix / providers / llm / __init__.py (no function)   100% 0 0 0   100% 0 0   100%
sentimatrix / providers / models / __init__.py (no function)   100% 0 0 0   100% 0 0   100%
sentimatrix / providers / scrapers / __init__.py (no function)   100% 0 0 0   100% 0 0   100%
sentimatrix / utils / __init__.py (no function)   100% 0 0 0   100% 0 0   100%
Total     92% 1245 96 16   80% 204 33   91%

No items found using the specified filter.