Source code for kuhl_haus.mdp.enum.market_data_cache_keys

"""Redis cache key patterns for internal market data storage.

Defines all cache key templates used within MDP for storing raw WebSocket data,
computed analytics, and rate-limiting state. Keys support pattern matching for
bulk operations (e.g., TOP_TRADES_RECENT_SCAN for multi-symbol cleanup).
These are internal MDC keys. For WDC-facing pub/sub and cache keys, use
:class:`~kuhl_haus.mdp.enum.widget_data_cache_keys.WidgetDataCacheKeys`.

The following members are deprecated as of v0.4.0 and will be removed in the
next minor release (no active usages found):

- ``TOP_TRADES_WIDGET_CACHE_KEY``
- ``TOP_TRADES_ALL_SYMBOLS_CACHE_KEY``
- ``DAILY_AGGREGATES``
- ``TOP_TRADES_SCANNER``
- ``TOP_GAINERS_SCANNER``
- ``TOP_GAPPERS_SCANNER``
- ``TOP_STOCKS_SCANNER``
- ``TOP_VOLUME_SCANNER``
"""
from enum import Enum

from kuhl_haus.mdp.enum.market_data_scanner_names import MarketDataScannerNames


[docs] class MarketDataCacheKeys(Enum): """Redis key patterns for caching raw data, analytics, and rate-limit state. Internal cache keys for MDP components. Includes both concrete keys and string templates with placeholders (e.g., {symbol}, {date}) for dynamic instantiation. Pattern-based keys ending in '*' enable SCAN operations for bulk cleanup and inspection. For WDC-facing pub/sub and cache keys (scanner channels, quote feed, news feeds), use :class:`~kuhl_haus.mdp.enum.widget_data_cache_keys.WidgetDataCacheKeys` instead. .. deprecated:: The following members are deprecated as of v0.4.0 and will be removed in the next minor release (no active usages found): - ``TOP_TRADES_WIDGET_CACHE_KEY`` - ``TOP_TRADES_ALL_SYMBOLS_CACHE_KEY`` - ``DAILY_AGGREGATES`` - ``TOP_TRADES_SCANNER`` - ``TOP_GAINERS_SCANNER`` - ``TOP_GAPPERS_SCANNER`` - ``TOP_STOCKS_SCANNER`` - ``TOP_VOLUME_SCANNER`` """ # MARKET DATA FEEDS AGGREGATE = 'stocks:agg' TRADES = 'stocks:trades' QUOTES = 'stocks:quotes' HALTS = 'stocks:luld' UNKNOWN = 'unknown' # LEADERBOARDS LEADERBOARD_TOP_VOLUME = "leaderboard:top_volume" LEADERBOARD_TOP_GAPPERS = "leaderboard:top_gappers" LEADERBOARD_TOP_GAINERS = "leaderboard:top_gainers" LEADERBOARD_PUBLISH_THROTTLE_KEY = "leaderboard:last_publish" LEADERBOARD_MARKET_DAY_KEY = "leaderboard:market:current_day_start" LEADERBOARD_MARKET_OPEN_RESET_KEY = "leaderboard:market:open_reset:{date}" # TOP TRADES ANALYZER TOP_TRADES_RECENT_PREFIX = "tta:{symbol}:recent" TOP_TRADES_RECENT_SCAN = "tta:*:recent" TOP_TRADES_STATS_PREFIX = "tta:{symbol}:stats" TOP_TRADES_LAST_PUBLISH_KEY = "tta:last_publish" # --- Deprecated members (no active usages) --- # @deprecated — no active usages; use WidgetDataCacheKeys.TOP_TRADES_WIDGET_CACHE_KEY TOP_TRADES_WIDGET_CACHE_KEY = "tta:{symbol}:widget" # @deprecated — no active usages; use WidgetDataCacheKeys.TOP_TRADES_ALL_SYMBOLS_CACHE_KEY TOP_TRADES_ALL_SYMBOLS_CACHE_KEY = "tta:all_symbols:widget" # MARKET DATA CACHE TICKER_SNAPSHOTS = 'mdc:snapshots' TICKER_AVG_VOLUME = 'mdc:avg_volume' TICKER_FREE_FLOAT = 'mdc:free_float' TICKER_SNAPSHOT_LOCK = 'mdc:lock:snapshots' TICKER_AVG_VOLUME_LOCK = 'mdc:lock:avg_volume' TICKER_FREE_FLOAT_LOCK = 'mdc:lock:free_float' # @deprecated — no active usages DAILY_AGGREGATES = 'mdc:aggregate:daily' # MARKET DATA PROCESSOR CACHE # @deprecated — no active usages; use WidgetDataCacheKeys equivalents TOP_TRADES_SCANNER = f'cache:{MarketDataScannerNames.TOP_TRADES.value}' # @deprecated — no active usages; use WidgetDataCacheKeys equivalents TOP_GAINERS_SCANNER = f'cache:{MarketDataScannerNames.TOP_GAINERS.value}' # @deprecated — no active usages; use WidgetDataCacheKeys equivalents TOP_GAPPERS_SCANNER = f'cache:{MarketDataScannerNames.TOP_GAPPERS.value}' # @deprecated — no active usages; use WidgetDataCacheKeys equivalents TOP_STOCKS_SCANNER = f'cache:{MarketDataScannerNames.TOP_STOCKS.value}' # @deprecated — no active usages; use WidgetDataCacheKeys equivalents TOP_VOLUME_SCANNER = f'cache:{MarketDataScannerNames.TOP_VOLUME.value}'
# NOT IMPLEMENTED FEEDS # NEWS = 'news'