""" Configuration settings for the API client """ import os from typing import Optional # Default configuration DEFAULT_BASE_URL = "https://airsltd-ocngx.hf.space" DEFAULT_USERNAME = "admin" DEFAULT_PASSWORD = "admin123" DEFAULT_TIMEOUT = 30 # Environment variable names ENV_BASE_URL = "API_BASE_URL" ENV_USERNAME = "API_USERNAME" ENV_PASSWORD = "API_PASSWORD" ENV_TIMEOUT = "API_TIMEOUT" ENV_LOG_LEVEL = "API_LOG_LEVEL" # HTTP status codes HTTP_OK = 200 HTTP_UNAUTHORIZED = 401 HTTP_BAD_REQUEST = 400 HTTP_INTERNAL_ERROR = 500 # Content types CONTENT_TYPE_JSON = "application/json" CONTENT_TYPE_HTML = "text/html" CONTENT_TYPE_TEXT = "text/plain" # Retry configuration DEFAULT_MAX_RETRIES = 3 DEFAULT_RETRY_BACKOFF = 1.0 class Config: """Configuration class for API client settings""" def __init__(self): self.base_url = os.getenv(ENV_BASE_URL, DEFAULT_BASE_URL) self.username = os.getenv(ENV_USERNAME, DEFAULT_USERNAME) self.password = os.getenv(ENV_PASSWORD, DEFAULT_PASSWORD) self.timeout = int(os.getenv(ENV_TIMEOUT, DEFAULT_TIMEOUT)) self.log_level = os.getenv(ENV_LOG_LEVEL, "INFO") def __repr__(self): return (f"Config(base_url='{self.base_url}', " f"username='{self.username}', " f"timeout={self.timeout})") def get_config() -> Config: """Get configuration instance""" return Config() def get_connection_params( base_url: Optional[str] = None, username: Optional[str] = None, password: Optional[str] = None, timeout: Optional[int] = None ) -> dict: """ Get connection parameters with fallback to environment variables and defaults. Args: base_url: Override base URL username: Override username password: Override password timeout: Override timeout Returns: Dictionary with connection parameters """ config = get_config() return { 'base_url': base_url or config.base_url, 'username': username or config.username, 'password': password or config.password, 'timeout': timeout or config.timeout }