cb_events.config

Configuration for the Chaturbate Events API client.

This module provides ClientConfig for customizing client behavior including timeouts, retry logic, and validation strictness.

Example

Custom configuration:

from cb_events import ClientConfig, EventClient

config = ClientConfig(
    timeout=30,
    retry_attempts=5,
    strict_validation=False,
)
async with EventClient(
    "https://eventsapi.chaturbate.com/events/user/token/",
    config=config,
) as client:
    async for event in client:
        print(event)

Classes

ClientConfig

Immutable configuration for EventClient behavior.

Module Contents

class cb_events.config.ClientConfig(/, **data: Any)[source]

Bases: pydantic.BaseModel

Immutable configuration for EventClient behavior.

Controls timeouts, retry logic, and validation strictness.

Example

Lenient configuration for development:

config = ClientConfig(
    strict_validation=False,
    retry_attempts=3,
)

Note

This class is immutable (frozen). Create a new instance to change configuration values.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

validate_delays() Self[source]

Validate retry delay configuration.

Returns:

Validated configuration instance.

Return type:

Self

Raises:

ValueError – If retry_max_delay is less than retry_backoff.

model_config[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

retry_attempts: int = None[source]

Total attempts including the initial request (must be >= 1).

retry_backoff: float = None[source]

Initial retry delay in seconds.

retry_factor: float = None[source]

Backoff multiplier applied after each retry.

retry_max_delay: float = None[source]

Maximum delay between retries in seconds.

strict_validation: bool = False[source]

Raise on invalid events vs. skip and log.

timeout: int = None[source]

Server long-poll timeout in seconds.