Settings API¶
Configuration management using Pydantic Settings.
Overview¶
The chronos_lab.settings module provides centralized configuration management with automatic loading from ~/.chronos_lab/.env and environment variable override support.
Classes and Functions¶
chronos_lab.settings.Settings ¶
Bases: BaseSettings
Application configuration settings loaded from ~/.chronos_lab/.env file.
Pydantic Settings model that manages all application configuration with automatic loading from configuration file and environment variable override support. Settings are validated on instantiation.
Attributes:
| Name | Type | Description |
|---|---|---|
arcticdb_default_backend |
Optional[str]
|
Default ArcticDB backend type. Options: 'LMDB' or 'S3'. Defaults to 'LMDB'. |
arcticdb_default_library_name |
Optional[str]
|
Default ArcticDB library name used when none is specified. Defaults to 'uscomp'. |
arcticdb_local_path |
Optional[str]
|
Filesystem path for ArcticDB LMDB backend storage. Supports tilde expansion (~). Defaults to None. Example: '~/.chronos_lab/arcticdb' |
arcticdb_s3_bucket |
Optional[str]
|
S3 bucket name for ArcticDB S3 backend storage. Defaults to None. |
dataset_local_path |
Optional[str]
|
Filesystem path for local dataset JSON file storage. Supports tilde expansion (~). Defaults to None. Example: '~/.chronos_lab/datasets' |
dataset_ddb_table_name |
Optional[str]
|
DynamoDB table name for dataset storage. Required for DynamoDB-backed datasets (names starting with 'ddb_'). Defaults to None. |
dataset_ddb_map |
Optional[str]
|
JSON string mapping dataset names to DynamoDB key structure. Maps dataset names to partition key (pk) and sort key (sk) patterns. Defaults to None. Example: '{"ddb_securities": {"pk": "DATASET#securities", "sk": "ticker"}}' |
hamilton_cache_path |
Optional[str]
|
Filesystem path for Hamilton Driver caching. Supports tilde expansion (~). Defaults to None. Example: '~/.chronos_lab/cache' |
ib_gateway_host |
Optional[str]
|
Interactive Brokers Gateway or TWS hostname/IP address. Defaults to '127.0.0.1' (localhost). |
ib_gateway_port |
Optional[int]
|
Interactive Brokers Gateway or TWS port number. Defaults to 4001. Common ports: 4001 (IB Gateway paper), 4002 (IB Gateway live), 7496 (TWS paper), 7497 (TWS live). |
ib_gateway_readonly |
Optional[bool]
|
Read-only connection mode for IB. When True, prevents order placement and account modifications. Defaults to True. |
ib_gateway_client_id |
Optional[int]
|
Client ID for IB connection. Must be unique per connection. Defaults to None. Required for establishing connection. |
ib_gateway_account |
Optional[str]
|
IB account identifier (e.g., 'DU1234567' for paper trading). Defaults to None. |
ib_ref_data_concurrency |
int
|
Maximum number of concurrent reference data requests (contract details lookups) to IB API. Controls rate limiting for async operations. Defaults to 20. |
ib_historical_data_concurrency |
int
|
Maximum number of concurrent historical data requests to IB API. Controls rate limiting for async operations. Defaults to 20. |
intrinio_api_key |
Optional[str]
|
Intrinio API key for accessing financial data. Required for using Intrinio data sources. Defaults to None. |
log_level |
str
|
Logging level for the application. Valid values: 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'. Defaults to 'WARNING'. |
store_local_path |
Optional[str]
|
Filesystem path for generic local storage. Supports tilde expansion (~). Defaults to None. |
store_s3_bucket |
Optional[str]
|
S3 bucket name for generic storage. Defaults to None. |
Configuration
- Loads from: ~/.chronos_lab/.env
- Encoding: UTF-8
- Extra fields: Ignored (allows forward compatibility)
- Environment variables: All settings can be overridden using uppercase env vars
arcticdb_default_backend
class-attribute
instance-attribute
¶
arcticdb_default_library_name
class-attribute
instance-attribute
¶
dataset_ddb_table_name
class-attribute
instance-attribute
¶
ib_gateway_client_id
class-attribute
instance-attribute
¶
ib_historical_data_concurrency
class-attribute
instance-attribute
¶
chronos_lab.settings.get_settings
cached
¶
Get cached singleton instance of application settings.
Returns a cached Settings object loaded from ~/.chronos_lab/.env with environment variable overrides. Uses @lru_cache to ensure only one Settings instance is created per Python process.
Returns:
| Type | Description |
|---|---|
Settings
|
Singleton Settings instance with loaded configuration. |