Environment¶
Run-level settings gathered in one place: data sources, date format, calendar and simulation defaults.
environment ¶
Session configuration.
An :class:Environment groups settings into categories (data sources, data
formats, calendar, simulation) and sets them by flat name through
set_environment(**kwargs). Its main use is to tell
beacon.data.loader.load_data where the market and reference data are,
either as in-memory DataFrames or as file paths.
Environment ¶
Centralized configuration for a Beacon session.
Settings are grouped into category dataclasses and can be set via
set_environment(**kwargs) using flat parameter names.
Attributes:
| Name | Type | Description |
|---|---|---|
data_source |
Where the input data comes from. |
|
data |
How input data is parsed. |
|
calendar |
Calendar conventions. |
|
simulation |
Simulation settings. |
set_environment ¶
Set one or more parameters by their flat field names.
Names are checked against every category's fields before anything is set, so an unknown name changes nothing. Values are not checked.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
**kwargs
|
Any
|
Field name to new value, e.g. |
{}
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If any name is not a field of a settings category. |
summary ¶
Return all current settings as a nested dict.
Returns:
| Name | Type | Description |
|---|---|---|
dict |
dict[str, dict[str, Any]]
|
Category name to |
dict[str, dict[str, Any]]
|
are left out. |
config ¶
Environment configuration dataclasses and the central Environment class.
beacon.data.loader.load_data reads the market and reference data settings
and DATE_FORMAT from an Environment. The other fields are stored, and
reported by :meth:Environment.summary, but nothing else in Beacon reads them.
DataSourceConfig
dataclass
¶
DataSourceConfig(
MARKET_DATA_PATH: str | None = None,
REFERENCE_DATA_PATH: str | None = None,
FUNDAMENTALS_DATA_PATH: str | None = None,
CORPORATE_ACTIONS_DATA_PATH: str | None = None,
FX_RATES_DATA_PATH: str | None = None,
MARKET_DATA: DataFrame | None = None,
REFERENCE_DATA: DataFrame | None = None,
FUNDAMENTALS_DATA: DataFrame | None = None,
CORPORATE_ACTIONS_DATA: DataFrame | None = None,
FX_RATES_DATA: DataFrame | None = None,
)
Where the input data comes from.
Each dataset can be given either as an in-memory DataFrame or as a file
path. When both are set for the same dataset, load_data uses the
DataFrame.
Attributes:
| Name | Type | Description |
|---|---|---|
MARKET_DATA_PATH |
str | None
|
File to read market data (prices) from. |
REFERENCE_DATA_PATH |
str | None
|
File to read reference data from. |
FUNDAMENTALS_DATA_PATH |
str | None
|
File to read fundamentals data from. |
CORPORATE_ACTIONS_DATA_PATH |
str | None
|
File to read corporate actions from. |
FX_RATES_DATA_PATH |
str | None
|
File to read FX rates from. |
MARKET_DATA |
DataFrame | None
|
Market data as a long-form DataFrame. |
REFERENCE_DATA |
DataFrame | None
|
Reference data as a DataFrame. |
FUNDAMENTALS_DATA |
DataFrame | None
|
Fundamentals data as a DataFrame. |
CORPORATE_ACTIONS_DATA |
DataFrame | None
|
Corporate actions as a DataFrame. |
FX_RATES_DATA |
DataFrame | None
|
FX rates as a DataFrame. |
DataConfig
dataclass
¶
How input data is parsed.
Attributes:
| Name | Type | Description |
|---|---|---|
DATE_FORMAT |
str
|
The strftime format of the market data's dates. |
CalendarConfig
dataclass
¶
Calendar conventions.
Attributes:
| Name | Type | Description |
|---|---|---|
TRADING_DAYS |
int
|
Trading days per year. |
DAY_COUNT_CONVENTION |
str
|
Day-count convention name, such as |
SimulationConfig
dataclass
¶
Simulation settings.
Attributes:
| Name | Type | Description |
|---|---|---|
TRANSACTION_COST |
float
|
Transaction cost. |
FLOAT_TOLERANCE |
float
|
Tolerance for floating-point comparisons. |
IndexConfig
dataclass
¶
Reserved for index settings. It holds none and is not part of Environment.
Environment ¶
Centralized configuration for a Beacon session.
Settings are grouped into category dataclasses and can be set via
set_environment(**kwargs) using flat parameter names.
Attributes:
| Name | Type | Description |
|---|---|---|
data_source |
Where the input data comes from. |
|
data |
How input data is parsed. |
|
calendar |
Calendar conventions. |
|
simulation |
Simulation settings. |
set_environment ¶
Set one or more parameters by their flat field names.
Names are checked against every category's fields before anything is set, so an unknown name changes nothing. Values are not checked.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
**kwargs
|
Any
|
Field name to new value, e.g. |
{}
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If any name is not a field of a settings category. |
summary ¶
Return all current settings as a nested dict.
Returns:
| Name | Type | Description |
|---|---|---|
dict |
dict[str, dict[str, Any]]
|
Category name to |
dict[str, dict[str, Any]]
|
are left out. |