import os import sys import subprocess import webbrowser import time import argparse def run_tensorboard(): """Run TensorBoard server and open browser""" parser = argparse.ArgumentParser(description='TensorBoard Launcher') parser.add_argument('--port', type=int, default=6006, help='Port for TensorBoard server') parser.add_argument('--logdir', type=str, default='runs', help='Log directory for TensorBoard') parser.add_argument('--no-browser', action='store_true', help='Do not open browser automatically') args = parser.parse_args() # Create log directory if it doesn't exist os.makedirs(args.logdir, exist_ok=True) # Print banner print("\n" + "="*60) print("📊 TRADING BOT - TENSORBOARD MONITORING 📊") print("="*60) print(f"Starting TensorBoard server on port {args.port}") print(f"Log directory: {args.logdir}") print("Press Ctrl+C to stop the server") print("="*60 + "\n") # Start TensorBoard server cmd = ["tensorboard", "--logdir", args.logdir, "--port", str(args.port)] try: # Start TensorBoard process process = subprocess.Popen( cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True ) # Wait for TensorBoard to start time.sleep(3) # Open browser if not args.no_browser: url = f"http://localhost:{args.port}" print(f"Opening browser to {url}") webbrowser.open(url) # Print TensorBoard output while True: output = process.stdout.readline() if output == '' and process.poll() is not None: break if output: print(output.strip()) return process.poll() except KeyboardInterrupt: print("\nStopping TensorBoard server...") process.terminate() return 0 except Exception as e: print(f"Error running TensorBoard: {str(e)}") return 1 if __name__ == "__main__": exit_code = run_tensorboard() sys.exit(exit_code)