29 lines
748 B
Python
29 lines
748 B
Python
from __future__ import annotations
|
|
|
|
from typing import Any, Protocol
|
|
|
|
from backend.data.contracts import DataSource, ProviderResult
|
|
|
|
|
|
class ProviderError(RuntimeError):
|
|
pass
|
|
|
|
|
|
class MarketDataProvider(Protocol):
|
|
source: DataSource
|
|
|
|
@property
|
|
def configured(self) -> bool: ...
|
|
|
|
def calendar(self, start_date: str, end_date: str) -> ProviderResult: ...
|
|
|
|
def entities(self) -> ProviderResult: ...
|
|
|
|
def daily(self, entity_type: str, identifier: str, end_date: str) -> ProviderResult: ...
|
|
|
|
def minute(self, entity_type: str, identifier: str, trade_date: str) -> ProviderResult: ...
|
|
|
|
def snapshot_inputs(
|
|
self, trade_date: str, previous_trade_date: str
|
|
) -> dict[str, ProviderResult | dict[str, Any]]: ...
|