Skip to content

Changelog

All notable changes to Sentimatrix are documented here.

[0.2.1] - 2026-02-02

Fixed

Apify Integration

  • Fixed actor ID URL format - Apify API uses tilde (~) instead of slash (/)
  • Fixed 403 errors by only sending optional parameters when explicitly provided
  • Added required pageFunction for cheerio-scraper actor

Amazon Scraper

  • Added graceful fallback to HTTPX-only mode when Playwright isn't available
  • Playwright initialization failures now emit warnings instead of crashing

Reddit Scraper

  • Added comprehensive HTTP error handling (rate limits, forbidden, not found)
  • Added support for Reddit's full ID format (t3_ prefix)
  • Improved user-friendly error messages

Added

Integration Tests

  • test_pypi_live.py - Live tests for PyPI package
  • test_commercial_scrapers.py - Commercial API tests
  • test_all_scrapers.py - Comprehensive scraper tests

[0.2.0] - 2026-01-29

Added

LLM Providers (19 total)

  • Cloud Providers: OpenAI, Anthropic, Google Gemini, Mistral, Cohere, Groq
  • Inference Providers: Together AI, Fireworks, OpenRouter, Cerebras, DeepSeek
  • Local Providers: Ollama, LM Studio, vLLM, llama.cpp, ExLlamaV2
  • Enterprise: Azure OpenAI, AWS Bedrock

Platform Scrapers (8 platforms)

  • Amazon product reviews
  • Steam game reviews
  • YouTube comments
  • Reddit posts and comments
  • IMDB movie reviews
  • Yelp business reviews
  • Trustpilot company reviews
  • Google Reviews

Commercial Scraping APIs (7 services)

  • ScraperAPI integration
  • Apify integration
  • Bright Data integration
  • Oxylabs integration
  • Zyte integration
  • ScrapingBee integration
  • ScrapingAnt integration

Core Features

  • Async-first architecture with asyncio
  • Context manager pattern (async with)
  • Batch processing for efficiency
  • Comprehensive error handling
  • Rate limiting with multiple strategies
  • Retry logic with exponential backoff
  • Caching (memory, Redis, SQLite)
  • Structured logging with structlog

Sentiment Analysis

  • Quick sentiment (3-class)
  • Fine-grained sentiment (5-class)
  • Aspect-based sentiment analysis
  • Comparative sentiment analysis
  • Temporal sentiment tracking
  • Domain-specific analysis

Emotion Detection

  • Ekman's 6 basic emotions
  • GoEmotions 28-class taxonomy
  • Plutchik's wheel of emotions
  • Multi-label detection
  • Emotion intensity analysis

LLM Features

  • Review summarization
  • Insight generation (pros/cons)
  • Streaming responses
  • Function calling
  • JSON mode output

Changed

  • Complete rewrite from V1
  • Pydantic v2 for configuration
  • Modern Python 3.10+ features

Fixed

  • ScraperConnectionError missing provider argument
  • Abstract method implementation in BaseCommercialClient

[0.1.0] - Initial Release

Added

  • Basic sentiment analysis
  • OpenAI integration
  • Simple web scraping

Migration Guide

From V1 to V2

Configuration

# V1 (deprecated)
from sentimatrix import SentimentAnalyzer
analyzer = SentimentAnalyzer(api_key="...")

# V2
from sentimatrix import Sentimatrix
from sentimatrix.config import SentimatrixConfig, LLMConfig

config = SentimatrixConfig(
    llm=LLMConfig(provider="openai", api_key="...")
)

async with Sentimatrix(config) as sm:
    result = await sm.analyze("Hello")

Async Pattern

# V1 (sync)
result = analyzer.analyze("Hello")

# V2 (async)
async with Sentimatrix() as sm:
    result = await sm.analyze("Hello")

Web Scraping

# V1
reviews = analyzer.scrape_amazon("url")

# V2
reviews = await sm.scrape_reviews(
    url="url",
    platform="amazon",
    use_browser=True
)

Versioning

Sentimatrix follows Semantic Versioning:

  • MAJOR: Breaking API changes
  • MINOR: New features, backward compatible
  • PATCH: Bug fixes, backward compatible

Releases

Version Date Python Status
0.2.1 2026-02-02 3.10+ Current
0.2.0 2026-01-29 3.10+ Stable
0.1.0 2024-01-15 3.9+ Deprecated