Always validate configuration parameters and environment variables at initialization time, providing clear error messages for missing or invalid values. This helps catch configuration issues early and makes debugging easier.
Always validate configuration parameters and environment variables at initialization time, providing clear error messages for missing or invalid values. This helps catch configuration issues early and makes debugging easier.
Key practices:
Example:
def __init__(self, api_key: Optional[str] = None):
# Check required env vars early
if not api_key and "REQUIRED_API_KEY" not in os.environ:
raise ValueError(
"API key must be provided either through initialization parameter "
"or REQUIRED_API_KEY environment variable"
)
# Respect parameter hierarchy
self.api_key = api_key or os.environ["REQUIRED_API_KEY"]
# Only import optional dependencies if configured
if self.api_key:
try:
from optional_package import OptionalClient
self.client = OptionalClient(self.api_key)
except ImportError:
raise ImportError(
"Optional package is required when using this feature. "
"Install it with: pip install optional_package"
)
Enter the URL of a public GitHub repository