Initial commit - production deployment
This commit is contained in:
43
services/external/app/ingestion/base_adapter.py
vendored
Normal file
43
services/external/app/ingestion/base_adapter.py
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
# services/external/app/ingestion/base_adapter.py
|
||||
"""
|
||||
Base adapter interface for city-specific data sources
|
||||
"""
|
||||
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import List, Dict, Any
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class CityDataAdapter(ABC):
|
||||
"""Abstract base class for city-specific data adapters"""
|
||||
|
||||
def __init__(self, city_id: str, config: Dict[str, Any]):
|
||||
self.city_id = city_id
|
||||
self.config = config
|
||||
|
||||
@abstractmethod
|
||||
async def fetch_historical_weather(
|
||||
self,
|
||||
start_date: datetime,
|
||||
end_date: datetime
|
||||
) -> List[Dict[str, Any]]:
|
||||
"""Fetch historical weather data for date range"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
async def fetch_historical_traffic(
|
||||
self,
|
||||
start_date: datetime,
|
||||
end_date: datetime
|
||||
) -> List[Dict[str, Any]]:
|
||||
"""Fetch historical traffic data for date range"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
async def validate_connection(self) -> bool:
|
||||
"""Validate connection to data source"""
|
||||
pass
|
||||
|
||||
def get_city_id(self) -> str:
|
||||
"""Get city identifier"""
|
||||
return self.city_id
|
||||
Reference in New Issue
Block a user