#!/usr/bin/env python3 """ Simple test for main.py to verify basic functionality """ import sys import os import time from datetime import datetime # Add parent directory to path sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) print("šŸš€ Simple Main.py Test") print(f"šŸ“… Started at: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") print("-" * 60) try: # Import modules print("šŸ“¦ Importing modules...") from tradingagents.graph.trading_graph import TradingAgentsGraph from tradingagents.default_config import DEFAULT_CONFIG print("āœ… Modules imported successfully") # Create config print("\nšŸ”§ Creating configuration...") config = DEFAULT_CONFIG.copy() config["llm_provider"] = "google" config["backend_url"] = "https://generativelanguage.googleapis.com/v1" config["deep_think_llm"] = "gemini-2.0-flash" config["quick_think_llm"] = "gemini-2.0-flash" config["max_debate_rounds"] = 1 config["online_tools"] = True print("āœ… Configuration created") # Initialize graph print("\nšŸ”§ Initializing TradingAgentsGraph...") start_init = time.time() ta = TradingAgentsGraph(debug=True, config=config) print(f"āœ… Graph initialized in {time.time() - start_init:.2f}s") # Run propagation print("\nšŸ”„ Running propagation for NVDA on 2024-05-10...") print("ā³ This may take 30-60 seconds...") # Track messages during propagation message_count = 0 agent_activity = [] # Custom propagate to track activity init_agent_state = ta.propagator.create_initial_state("NVDA", "2024-05-10") args = ta.propagator.get_graph_args() print("\nšŸ“Š Streaming analysis...") start_prop = time.time() for chunk_idx, chunk in enumerate(ta.graph.stream(init_agent_state, **args)): # Log progress every 10 chunks if chunk_idx % 10 == 0: elapsed = time.time() - start_prop print(f" ā³ Processing chunk {chunk_idx} ({elapsed:.1f}s elapsed)") # Track messages if len(chunk.get("messages", [])) > 0: message_count += len(chunk["messages"]) # Track completed reports reports = ['market_report', 'sentiment_report', 'news_report', 'fundamentals_report', 'investment_plan', 'trader_investment_plan', 'final_trade_decision'] for report in reports: if report in chunk and chunk[report]: agent_activity.append((time.time() - start_prop, report)) print(f" āœ… {report} completed at {time.time() - start_prop:.1f}s") prop_time = time.time() - start_prop print(f"\nāœ… Propagation completed in {prop_time:.2f}s") print(f"šŸ“Š Total messages processed: {message_count}") # Process signal if hasattr(ta, 'curr_state') and ta.curr_state: decision = ta.process_signal(ta.curr_state.get("final_trade_decision", "")) print(f"šŸ“Š Final decision: {decision}") # Validate results print("\nšŸ” Validating results:") for report in reports: if report in ta.curr_state and ta.curr_state[report]: print(f" āœ… {report}: {len(str(ta.curr_state[report]))} chars") else: print(f" āŒ {report}: Missing") print("\nāœ… TEST PASSED - Main.py is working correctly") except Exception as e: print(f"\nāŒ TEST FAILED: {str(e)}") import traceback traceback.print_exc() sys.exit(1) print("\n" + "-" * 60) print("Test completed successfully!")