Source code for pyUSPTO.config

"""
config - Configuration management for USPTO API clients

This module provides configuration management for USPTO API clients.
"""

import os
from typing import Optional


[docs] class USPTOConfig: """Configuration for USPTO API clients."""
[docs] def __init__( self, api_key: Optional[str] = None, bulk_data_base_url: str = "https://api.uspto.gov/api/v1/datasets", patent_data_base_url: str = "https://api.uspto.gov/api/v1/patent", ): """ Initialize the USPTOConfig. Args: api_key: API key for authentication, defaults to USPTO_API_KEY environment variable bulk_data_base_url: Base URL for the Bulk Data API patent_data_base_url: Base URL for the Patent Data API """ # Use environment variable only if api_key is None, not if it's an empty string self.api_key = ( api_key if api_key is not None else os.environ.get("USPTO_API_KEY") ) self.bulk_data_base_url = bulk_data_base_url self.patent_data_base_url = patent_data_base_url
[docs] @classmethod def from_env(cls) -> "USPTOConfig": """ Create a USPTOConfig from environment variables. Returns: USPTOConfig instance """ return cls( api_key=os.environ.get("USPTO_API_KEY"), bulk_data_base_url=os.environ.get( "USPTO_BULK_DATA_BASE_URL", "https://api.uspto.gov/api/v1/datasets" ), patent_data_base_url=os.environ.get( "USPTO_PATENT_DATA_BASE_URL", "https://api.uspto.gov/api/v1/patent" ), )