| |
| """Quick validation script for SAGE app.py (v3.0)""" |
| import ast |
| import sys |
| import os |
|
|
| |
| if sys.platform == "win32": |
| os.environ.setdefault("PYTHONIOENCODING", "utf-8") |
| try: |
| sys.stdout.reconfigure(encoding="utf-8") |
| except Exception: |
| pass |
|
|
|
|
| def validate(): |
| with open("app.py", "r", encoding="utf-8") as f: |
| code = f.read() |
|
|
| ok = True |
|
|
| |
| try: |
| ast.parse(code) |
| print("[OK] Syntax: PASS") |
| except SyntaxError as e: |
| print(f"[FAIL] Syntax: FAIL -- {e}") |
| return 1 |
|
|
| |
| required = ["gradio", "httpx", "matplotlib", "numpy"] |
| for mod in required: |
| if f"import {mod}" in code or f"from {mod}" in code: |
| print(f"[OK] Import {mod}: FOUND") |
| else: |
| print(f"[WARN] Import {mod}: NOT FOUND") |
|
|
| |
| classes = [ |
| "SageConfig", "BackendClient", "SAGEProAPIClient", |
| "OllamaClient", "DemoClient", "VisualizationEngine", |
| ] |
| for cls in classes: |
| if f"class {cls}" in code: |
| print(f"[OK] Class {cls}: FOUND") |
| else: |
| print(f"[FAIL] Class {cls}: MISSING") |
| ok = False |
|
|
| |
| v3_features = [ |
| ("render_code", "Glass Renderer"), |
| ("vision_debug", "Vision Debugger"), |
| ("toggle_dreamer", "Chaos Dreamer Toggle"), |
| ("get_dreamer_stats", "Chaos Dreamer Stats"), |
| ("_chat_stream", "Streaming Chat (split)"), |
| ] |
| for method, label in v3_features: |
| if method in code: |
| print(f"[OK] v3 Feature [{label}]: FOUND") |
| else: |
| print(f"[FAIL] v3 Feature [{label}]: MISSING") |
| ok = False |
|
|
| |
| v3_tabs = ["Live Preview", "Vision Debugger", "Chaos Dreamer"] |
| for tab in v3_tabs: |
| if tab in code: |
| print(f"[OK] UI Tab [{tab}]: FOUND") |
| else: |
| print(f"[FAIL] UI Tab [{tab}]: MISSING") |
| ok = False |
|
|
| if ok: |
| print("\nAll validations passed! (v3.0)") |
| return 0 |
| else: |
| print("\nSome validations FAILED.") |
| return 1 |
|
|
|
|
| if __name__ == "__main__": |
| sys.exit(validate()) |
|
|