Skip to content

Commit d036aea

Browse files
committed
Move viewer into package
1 parent 5a5c0d1 commit d036aea

9 files changed

Lines changed: 36 additions & 5 deletions

File tree

codeclash/__init__.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,9 @@
11
__version__ = "0.0.0"
2+
3+
# Optional viewer import - only if Flask dependencies are available
4+
try:
5+
from . import viewer
6+
7+
__all__ = ["viewer"]
8+
except ImportError:
9+
__all__ = []

codeclash/viewer/__init__.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
"""
2+
CodeClash Trajectory Viewer
3+
4+
A Flask-based web application to visualize AI agent game trajectories
5+
"""
6+
7+
from .app import app
8+
9+
__all__ = ["app"]

viewer.py renamed to codeclash/viewer/app.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,9 @@ def nl2br(value):
139139
@app.route("/")
140140
def index():
141141
"""Main viewer page"""
142-
# Get available log directories
143-
logs_dir = Path("logs")
142+
# Get available log directories (relative to project root)
143+
project_root = Path(__file__).parent.parent.parent
144+
logs_dir = project_root / "logs"
144145
log_folders = []
145146
if logs_dir.exists():
146147
log_folders = [d.name for d in logs_dir.iterdir() if d.is_dir()]
@@ -182,7 +183,8 @@ def trajectory_detail(player_id: int, round_num: int):
182183
if not selected_folder:
183184
return jsonify({"error": "No folder specified"})
184185

185-
logs_dir = Path("logs")
186+
project_root = Path(__file__).parent.parent.parent
187+
logs_dir = project_root / "logs"
186188
parser = LogParser(logs_dir / selected_folder)
187189
trajectory = parser.parse_trajectory(player_id, round_num)
188190

@@ -192,5 +194,4 @@ def trajectory_detail(player_id: int, round_num: int):
192194
return render_template("trajectory.html", trajectory=trajectory)
193195

194196

195-
if __name__ == "__main__":
196-
app.run(debug=True, host="0.0.0.0", port=5001)
197+
# Use run_viewer.py to launch the application
File renamed without changes.

run_viewer.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/bin/env python3
2+
"""
3+
Launch script for the CodeClash Trajectory Viewer
4+
"""
5+
6+
if __name__ == "__main__":
7+
from codeclash.viewer import app
8+
9+
print("🎮 Starting CodeClash Trajectory Viewer...")
10+
print("📊 Navigate to http://localhost:5001 to view game trajectories")
11+
print("🔧 Press Ctrl+C to stop the server")
12+
13+
app.run(debug=True, host="0.0.0.0", port=5001)

0 commit comments

Comments
 (0)