Skip to main content

Shared utilities and models for TL;DR.tv platform

Project description

Common Module

Shared utilities and models for the TL;DR.tv platform.

Structure

common/
├── src/common/
│   ├── core/          # Core functionality (config, exceptions, dependencies)
│   ├── dao/           # Data Access Objects
│   ├── database/      # Database connectivity
│   ├── logging/       # Logging configuration
│   ├── message/       # Message queue models
│   ├── models/        # Domain models
│   ├── platform/      # Platform-specific APIs (Twitch, Kick)
│   └── utils/         # Utility functions
└── tests/
    ├── unit/          # Unit tests
    └── integration/   # Integration tests

Installation

The common module is part of the uv workspace and is automatically available to other services.

For development:

uv pip install -e common

Usage

Data Access Objects (DAOs)

from common.dao import UserDAO, StreamDAO, ClipDAO
from common.database import Db, DBConfig

# Initialize database
db = Db(DBConfig())

# Create DAOs
user_dao = UserDAO(db)
stream_dao = StreamDAO(db)
clip_dao = ClipDAO(db)

Platform APIs

from common.platform.twitch import TwitchApi, TwitchApiConfig
from common.platform.kick import KickApi, KickApiConfig

# Initialize APIs
twitch_api = TwitchApi(config=TwitchApiConfig())
kick_api = KickApi(config=KickApiConfig())

Message Models

from common.message import StreamOnlineMessage, StreamOfflineMessage

# Create messages for RabbitMQ
message = StreamOnlineMessage(
    stream_id="12345",
    user_id=67890,
    platform="twitch",
    started_at=datetime.now()
)

Exception Handling

from common.core.exceptions import (
    DatabaseError,
    TwitchError,
    KickError,
    ValidationError,
    RateLimitError
)

try:
    # Database operation
    user = await user_dao.get_user_by_id(user_id)
except DatabaseError as e:
    logger.error(f"Database error: {e}")

Testing

Run all tests:

uv run pytest common/tests/

Run unit tests only:

uv run pytest common/tests/unit/

Run integration tests:

uv run pytest common/tests/integration/

Type Checking

The module includes type information (py.typed). Run type checking with:

uv run ty check common/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tldr_common-2.0.7.tar.gz (119.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tldr_common-2.0.7-py3-none-any.whl (146.2 kB view details)

Uploaded Python 3

File details

Details for the file tldr_common-2.0.7.tar.gz.

File metadata

  • Download URL: tldr_common-2.0.7.tar.gz
  • Upload date:
  • Size: 119.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for tldr_common-2.0.7.tar.gz
Algorithm Hash digest
SHA256 c566a7bacea494f7bc83936212bbe4e9dc478a70afe9a01ef0228d64a1a782e5
MD5 53e8d263e66920cee417e6bb8fa62e4e
BLAKE2b-256 71f4389fdacd0f624841cb62f0edf4d9d4c571826c96f2f022cee5d5e79ded41

See more details on using hashes here.

File details

Details for the file tldr_common-2.0.7-py3-none-any.whl.

File metadata

  • Download URL: tldr_common-2.0.7-py3-none-any.whl
  • Upload date:
  • Size: 146.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for tldr_common-2.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 68556baf19f6f17f3919f19f568825148dd124b8920598ea4744c61543d9f81e
MD5 3a07d997224d08548789afe67dc7a7f6
BLAKE2b-256 55aa24cd66ac10fdbfbf65d8a794f7d6b38a9d5bc6b41d433d3b4f1cae553444

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page