25 lines
604 B
Python
25 lines
604 B
Python
from __future__ import annotations
|
|
|
|
from typing import 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: ...
|