HTTPConfig

http_config - HTTP client configuration for USPTO API requests.

This module provides configuration for HTTP transport-level settings including timeouts, retries, connection pooling, and custom headers.

class pyUSPTO.http_config.HTTPConfig(timeout=30.0, connect_timeout=10.0, max_retries=3, backoff_factor=2.0, retry_status_codes=<factory>, pool_connections=10, pool_maxsize=10, download_chunk_size=8192, custom_headers=None)[source]

Bases: object

HTTP client configuration for request handling.

This class separates transport-level HTTP concerns from API-level configuration, allowing fine-grained control over request behavior.

timeout

Read timeout in seconds for requests (default: 30.0)

connect_timeout

Connection establishment timeout in seconds (default: 10.0)

max_retries

Maximum number of retry attempts (default: 3)

backoff_factor

Exponential backoff multiplier for retries (default: 2.0)

retry_status_codes

HTTP status codes that trigger retries

pool_connections

Number of connection pools to cache (default: 10)

pool_maxsize

Maximum number of connections per pool (default: 10)

download_chunk_size

Chunk size in bytes for streaming file downloads (default: 8192)

custom_headers

Additional headers to include in all requests

__post_init__()[source]

Validate configuration after initialization.

Return type:

None

backoff_factor: float = 2.0
connect_timeout: float | None = 10.0
custom_headers: dict[str, str] | None = None
download_chunk_size: int = 8192
classmethod from_env()[source]

Create HTTPConfig from environment variables.

Environment variables:

USPTO_REQUEST_TIMEOUT: Request timeout in seconds USPTO_CONNECT_TIMEOUT: Connection timeout in seconds USPTO_MAX_RETRIES: Maximum retry attempts USPTO_BACKOFF_FACTOR: Retry backoff factor USPTO_POOL_CONNECTIONS: Connection pool size USPTO_POOL_MAXSIZE: Max connections per pool USPTO_DOWNLOAD_CHUNK_SIZE: Chunk size for streaming downloads (bytes)

Return type:

HTTPConfig

Returns:

HTTPConfig instance with values from environment or defaults

get_timeout_tuple()[source]

Get timeout as tuple for requests library.

Return type:

tuple[float | None, float | None]

Returns:

Tuple of (connect_timeout, read_timeout) for requests

max_retries: int = 3
pool_connections: int = 10
pool_maxsize: int = 10
retry_status_codes: list[int]
timeout: float | None = 30.0