Skip to content

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_backend: Optional[str] = 'LMDB'

arcticdb_default_library_name class-attribute instance-attribute

arcticdb_default_library_name: Optional[str] = 'uscomp'

arcticdb_local_path class-attribute instance-attribute

arcticdb_local_path: Optional[str] = None

arcticdb_s3_bucket class-attribute instance-attribute

arcticdb_s3_bucket: Optional[str] = None

dataset_local_path class-attribute instance-attribute

dataset_local_path: Optional[str] = None

dataset_ddb_table_name class-attribute instance-attribute

dataset_ddb_table_name: Optional[str] = None

dataset_ddb_map class-attribute instance-attribute

dataset_ddb_map: Optional[str] = None

hamilton_cache_path class-attribute instance-attribute

hamilton_cache_path: Optional[str] = None

ib_gateway_host class-attribute instance-attribute

ib_gateway_host: Optional[str] = '127.0.0.1'

ib_gateway_port class-attribute instance-attribute

ib_gateway_port: Optional[int] = 4001

ib_gateway_readonly class-attribute instance-attribute

ib_gateway_readonly: Optional[bool] = True

ib_gateway_client_id class-attribute instance-attribute

ib_gateway_client_id: Optional[int] = None

ib_gateway_account class-attribute instance-attribute

ib_gateway_account: Optional[str] = None

ib_ref_data_concurrency class-attribute instance-attribute

ib_ref_data_concurrency: int = 20

ib_historical_data_concurrency class-attribute instance-attribute

ib_historical_data_concurrency: int = 20

intrinio_api_key class-attribute instance-attribute

intrinio_api_key: Optional[str] = None

log_level class-attribute instance-attribute

log_level: str = 'WARNING'

store_local_path class-attribute instance-attribute

store_local_path: Optional[str] = None

store_s3_bucket class-attribute instance-attribute

store_s3_bucket: Optional[str] = None

chronos_lab.settings.get_settings cached

get_settings() -> Settings

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.