pybroker.cache module

Contains caching utilities.

Copyright (C) 2023 Edward West. All rights reserved.

This code is licensed under Apache 2.0 with Commons Clause license (see LICENSE for details).

class CacheDateFields(start_date: datetime, end_date: datetime, tf_seconds: int, between_time: tuple[str, str] | None, days: tuple[int] | None)[source]

Bases: object

Date fields for keying cache data.

start_date

Start date of cache data.

Type:

datetime.datetime

end_date

End date of cache data.

Type:

datetime.datetime

tf_seconds

Timeframe resolution of cache data represented in seconds.

Type:

int

between_time

tuple[str, str] of times of day (e.g. 9:00-9:30 AM) that were used to filter the cache data.

Type:

tuple[str, str] | None

days

Days (e.g. "mon", "tues" etc.) that were used to filter the cache data.

Type:

tuple[int] | None

class DataSourceCacheKey(symbol: str, tf_seconds: int, start_date: datetime, end_date: datetime, adjust: str | None, source: str)[source]

Bases: object

Cache key used for pybroker.data.DataSource data.

adjust: str | None
classmethod from_date_fields(*, symbol: str, adjust: str | None, source: str, fields: CacheDateFields) DataSourceCacheKey[source]
source: str
symbol: str
class IndicatorCacheKey(symbol: str, tf_seconds: int, start_date: datetime, end_date: datetime, between_time: tuple[str, str] | None, days: tuple[int] | None, ind_name: str)[source]

Bases: object

Cache key used for indicator data.

classmethod from_date_fields(*, symbol: str, ind_name: str, fields: CacheDateFields) IndicatorCacheKey[source]
ind_name: str
symbol: str
class ModelCacheKey(symbol: str, tf_seconds: int, start_date: datetime, end_date: datetime, between_time: tuple[str, str] | None, days: tuple[int] | None, model_name: str, pooled_symbols: tuple[str, ...] | None = None, lookahead: int | None = None)[source]

Bases: object

Cache key used for trained models.

classmethod from_date_fields(*, symbol: str, model_name: str, fields: CacheDateFields, pooled_symbols: Iterable[str] | None = None, lookahead: int | None = None) ModelCacheKey[source]
lookahead: int | None = None
model_name: str
pooled_symbols: tuple[str, ...] | None = None
symbol: str
clear_caches()[source]

Clears cached data from all caches. enable_caches() must be called first before clearing.

clear_data_source_cache()[source]

Clears data cached from pybroker.data.DataSources. enable_data_source_cache() must be called first before clearing.

clear_indicator_cache()[source]

Clears cached indicator data. enable_indicator_cache() must be called first before clearing.

clear_model_cache()[source]

Clears cached trained models. enable_model_cache() must be called first before clearing.

disable_caches()[source]

Disables all caches.

disable_data_source_cache()[source]

Disables caching data retrieved from pybroker.data.DataSources.

disable_indicator_cache()[source]

Disables caching indicator data.

disable_model_cache()[source]

Disables caching trained models.

enable_caches(namespace: str, cache_dir: str | None = None, l1_maxsize: int = 1024)[source]

Enables all caches.

Parameters:
  • namespace – Namespace shared by cached data.

  • cache_dir – Directory used to store cached data.

  • l1_maxsize – Maximum in-process L1 cache entries per cache.

enable_data_source_cache(namespace: str, cache_dir: str | None = None, l1_maxsize: int = 1024) Cache[source]

Enables caching of data retrieved from pybroker.data.DataSources.

Parameters:
  • namespace – Namespace of the cache.

  • cache_dir – Directory used to store cached data.

  • l1_maxsize – Maximum in-process L1 cache entries.

Returns:

diskcache.Cache instance.

enable_indicator_cache(namespace: str, cache_dir: str | None = None, l1_maxsize: int = 1024) Cache[source]

Enables caching indicator data.

Parameters:
  • namespace – Namespace of the cache.

  • cache_dir – Directory used to store cached indicator data.

  • l1_maxsize – Maximum in-process L1 cache entries.

Returns:

diskcache.Cache instance.

enable_model_cache(namespace: str, cache_dir: str | None = None, l1_maxsize: int = 1024) Cache[source]

Enables caching trained models.

Parameters:
  • namespace – Namespace of the cache.

  • cache_dir – Directory used to store cached models.

  • l1_maxsize – Maximum in-process L1 cache entries.

Returns:

diskcache.Cache instance.