Files
2026-02-21 07:43:33 +01:00

3.1 KiB

config

aiomql.core.config — Singleton configuration manager for the aiomql package.

Overview

The Config class manages all runtime settings — login credentials, paths, database names, trade-recording preferences, and shutdown signals. It implements the singleton pattern and can load values from a JSON file (default aiomql.json) or be configured programmatically.

Classes

Config

Singleton configuration class.

Key Attributes

Attribute Type Default Description
login int None MetaTrader account number
password str "" Account password
server str "" Account server name
path str | Path "" Path to the MT5 terminal executable
timeout int 60000 Connection timeout (ms)
filename str "aiomql.json" Config file name to search for
root Path CWD Project root directory
trade_record_mode Literal["csv","json","sql"] "sql" Trade recording format
record_trades bool True Enable/disable trade recording
records_dir_name str "trade_records" Trade records directory name
db_dir_name str "db" Database directory name
db_name str | Path "" SQLite database file name
shutdown bool False Graceful shutdown signal
force_shutdown bool False Forced shutdown signal
stop_trading bool False Stop opening new trades
db_commit_interval float 30 Database commit interval (seconds)
auto_commit bool False Auto-commit database changes
flush_state bool False Flush state on init
state State Persistent key-value store
store Store Key-value database store
task_queue TaskQueue Background task queue
bot Bot None Associated bot instance

__init__(**kwargs)

Loads the config file and sets attributes. If already initialised and no root or config_file is provided, only the extra kwargs are applied.

load_config(*, config_file=None, filename=None, root=None, **kwargs)

Sets the project root, locates/loads the JSON config file, initialises the database, and applies all settings. Returns self for chaining.

set_root(root=None)

Resolves and creates the project root directory. Falls back to CWD.

find_config_file()

Searches up from CWD through parent directories for the config filename.

Returns: Path | None

set_attributes(**kwargs)

Sets attributes, but prevents root and config_file from being changed here (use load_config instead).

state (property)

Lazily initialised State instance.

store (property)

Lazily initialised Store instance.

records_dir (cached property)

Path to the trade records directory. Created on first access.

plots_dir (cached property)

Path to the plots directory. Created on first access.

account_info (property)

Returns {"login": …, "password": …, "server": …}.