Spaces:
Running
Running
| from datetime import datetime, timedelta | |
| from db.local_database import LocalDatabase, DatabaseEntry, DataType | |
| from db.adapters import ( | |
| CalendarAdapter, | |
| FundamentalAdapter, | |
| NewsAdapter, | |
| TechnicalAnalysisAdapter | |
| ) | |
| def get_events(type:str, date_str:str): | |
| """Retrieve event data from the local database for a given type, ticker, and date""" | |
| db = LocalDatabase() | |
| entries = db.query(date_from=date_str, data_type=type) | |
| for entry in entries: | |
| if entry: | |
| return entry.data ## RETURN FIRST MATCHING ENTRY ONLY | |
| return None | |
| def get_event_ticker(type:str, ticker:str, date_str:str): | |
| """Retrieve event data from the local database for a given type, ticker, and date""" | |
| db = LocalDatabase() | |
| entry = db.get(date_str=date_str, data_type=type,ticker=ticker) | |
| if entry: | |
| return entry.data | |
| return None | |
| if __name__ == "__main__": | |
| # Example usage | |
| date_str = datetime.now().strftime("%Y-%m-%d") | |
| ticker = "ABNB" | |
| event_types = [ | |
| DataType.DIVIDENDS.value, | |
| DataType.STOCK_SPLIT.value, | |
| DataType.IPO.value, | |
| DataType.EARNINGS.value, | |
| DataType.ECONOMIC_EVENTS.value, | |
| DataType.FUNDAMENTAL.value, | |
| DataType.NEWS.value, | |
| DataType.TECHNICAL_ANALYSIS.value | |
| ] | |
| for event_type in event_types: | |
| print(event_type) | |
| event_data = get_events(event_type, date_str) | |
| print(f"Event Type: {event_type}, Date: {date_str}") | |
| print(f"Data: {event_data}\n") |