Spaces:
Runtime error
Runtime error
Hermes Agent
feat: clean NZ symbols, interactive user sentiment poll, and premium speedometer gauge
8459105 | import asyncio | |
| import sys | |
| import os | |
| from pathlib import Path | |
| sys.path.insert(0, str(Path(__file__).parent.parent)) | |
| from app.services.database_service import DatabaseService | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| async def main(): | |
| db = DatabaseService(url=os.getenv("TURSO_URL"), token=os.getenv("TURSO_TOKEN")) | |
| await db.initialize() | |
| total_stocks = await db.get_stock_count() | |
| active_stocks = await db.get_active_stock_count() | |
| try: | |
| res = await db._execute("SELECT COUNT(*) as count FROM forecasts") | |
| forecasts_count = res[0]["count"] if res else 0 | |
| except Exception as e: | |
| print(f"Error querying forecasts count: {e}") | |
| forecasts_count = 0 | |
| try: | |
| res_by_country = await db._execute(""" | |
| SELECT s.country, COUNT(DISTINCT f.symbol) as forecasted_stocks, COUNT(*) as total_forecast_rows | |
| FROM forecasts f | |
| JOIN ( | |
| SELECT DISTINCT | |
| CASE WHEN symbol LIKE 'NZX:%' THEN SUBSTR(symbol, 6) ELSE symbol END || COALESCE(yfinance_suffix, '') as yf_symbol, | |
| country | |
| FROM stocks | |
| ) s ON s.yf_symbol = f.symbol | |
| GROUP BY s.country | |
| """) | |
| except Exception as e: | |
| print(f"Error querying forecasts by country: {e}") | |
| res_by_country = [] | |
| print("=" * 50) | |
| print("DATABASE COUNTS SUMMARY") | |
| print("=" * 50) | |
| print(f"Total Stocks: {total_stocks}") | |
| print(f"Active Stocks: {active_stocks}") | |
| print(f"Total Forecast Rows in DB: {forecasts_count}") | |
| print("-" * 50) | |
| print("Forecasted Stocks & Rows by Country:") | |
| for row in res_by_country: | |
| print(f" {row.get('country', 'unknown').upper()}: {row.get('forecasted_stocks', 0)} stocks ({row.get('total_forecast_rows', 0)} rows)") | |
| print("=" * 50) | |
| await db.close() | |
| if __name__ == "__main__": | |
| asyncio.run(main()) | |