proxywhirl.config¶
Configuration management for ProxyWhirl CLI.
This module handles TOML configuration discovery, loading, saving, and credential encryption for the CLI interface.
Classes¶
Complete CLI configuration. |
|
Configuration for what data to persist to the database. |
|
Configuration for a single proxy. |
Functions¶
|
Decrypt all encrypted credential fields. |
|
Discover configuration file location. |
|
Encrypt all SecretStr fields in proxy configurations. |
|
Get or create the encryption key. |
|
Load and validate TOML configuration. |
|
Save configuration to TOML file with credential encryption. |
Module Contents¶
- class proxywhirl.config.CLIConfig(/, **data)[source]¶
Bases:
pydantic.BaseModelComplete CLI configuration.
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.
- Parameters:
data (Any)
- class proxywhirl.config.DataStorageConfig(/, **data)[source]¶
Bases:
pydantic.BaseModelConfiguration for what data to persist to the database.
All fields are configurable to allow users to: - Reduce storage by disabling less-critical fields - Improve privacy by opting out of geo/IP data - Balance performance vs analytics granularity
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.
- Parameters:
data (Any)
- class proxywhirl.config.ProxyConfig(/, **data)[source]¶
Bases:
pydantic.BaseModelConfiguration for a single proxy.
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.
- Parameters:
data (Any)
- proxywhirl.config.discover_config(explicit_path=None)[source]¶
Discover configuration file location.
- Parameters:
explicit_path (pathlib.Path | None) – User-provided config file path (highest priority)
- Returns:
Path to config file, or None if not found
- Return type:
pathlib.Path | None
- Priority:
Explicit path provided by user
./pyproject.toml (project-local)
~/.config/proxywhirl/config.toml (user-global)
None (use defaults)
- proxywhirl.config.encrypt_credentials(config)[source]¶
Encrypt all SecretStr fields in proxy configurations.
- proxywhirl.config.get_encryption_key(config)[source]¶
Get or create the encryption key.
Priority: 1. Environment variable (if set) 2. Persisted key file (~/.config/proxywhirl/key.enc) 3. Generate new key and persist it
- proxywhirl.config.load_config(path=None)[source]¶
Load and validate TOML configuration.
- Parameters:
path (pathlib.Path | None) – Path to config file (if None, uses defaults)
- Returns:
Validated CLIConfig instance
- Return type:
- proxywhirl.config.save_config(config, path)[source]¶
Save configuration to TOML file with credential encryption.
- Parameters:
config (CLIConfig) – Configuration to save
path (pathlib.Path) – Destination file path
- Return type:
None