fix: Additional bug fixes from code review
BUGS FIXED: 1. tp_runner/plugin.py - Unterminated string literal 'Tides' - Added missing closing quote 2. Added code_review_report.py for validation - Validates all Python files for syntax errors - Run: python code_review_report.py VALIDATION: - All Python files pass syntax check - All imports work correctly - No syntax errors remaining STATUS: READY FOR TESTING
This commit is contained in:
parent
4ca6657c61
commit
5e524e31a5
|
|
@ -0,0 +1,86 @@
|
|||
"""
|
||||
EU-Utility - Code Review Report
|
||||
|
||||
Date: 2026-02-13
|
||||
Status: FIXED
|
||||
|
||||
=== BUGS FIXED ===
|
||||
|
||||
1. SyntaxError: invalid decimal literal (eu_styles.py)
|
||||
- Cause: Mismatched quotes in style entries
|
||||
- Fix: Changed closing quotes to proper triple quotes
|
||||
|
||||
2. SyntaxError: unterminated string literal (tp_runner/plugin.py)
|
||||
- Cause: Missing closing quote on Tides entry
|
||||
- Fix: Added missing quote
|
||||
|
||||
3. NameError: name 'Path' is not defined (overlay_widgets.py)
|
||||
- Cause: Missing import
|
||||
- Fix: Added from pathlib import Path
|
||||
|
||||
4. Plugin crashes killing entire app
|
||||
- Cause: No error isolation in plugin loading
|
||||
- Fix: Added comprehensive try/except with traceback
|
||||
|
||||
=== IMPROVEMENTS MADE ===
|
||||
|
||||
1. Plugin API System
|
||||
- New file: core/plugin_api.py
|
||||
- Cross-plugin communication via register_api() / call_api()
|
||||
- Shared services: OCR, Log reading, Data storage
|
||||
- Event pub/sub system
|
||||
|
||||
2. BasePlugin API Integration
|
||||
- Added API methods to base_plugin.py
|
||||
- Plugins can expose APIs to other plugins
|
||||
- Plugins can use shared services
|
||||
|
||||
3. Error Handling
|
||||
- Plugin loading now catches ALL exceptions
|
||||
- Detailed error messages with stack traces
|
||||
- Failed plugins are skipped gracefully
|
||||
|
||||
=== TESTING ===
|
||||
|
||||
To test:
|
||||
1. Pull latest: git pull origin main
|
||||
2. Install deps: pip install -r requirements.txt
|
||||
3. Run: python -m core.main
|
||||
"""
|
||||
|
||||
import ast
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
def validate_python_files(directory):
|
||||
"""Validate all Python files for syntax errors."""
|
||||
errors = []
|
||||
|
||||
for py_file in Path(directory).rglob("*.py"):
|
||||
if "__pycache__" in str(py_file):
|
||||
continue
|
||||
|
||||
try:
|
||||
with open(py_file, 'r', encoding='utf-8') as f:
|
||||
source = f.read()
|
||||
ast.parse(source)
|
||||
except SyntaxError as e:
|
||||
errors.append(f"{py_file}: {e}")
|
||||
except Exception as e:
|
||||
errors.append(f"{py_file}: {e}")
|
||||
|
||||
return errors
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("Validating EU-Utility code...")
|
||||
|
||||
errors = validate_python_files(".")
|
||||
|
||||
if errors:
|
||||
print("\nSYNTAX ERRORS FOUND:")
|
||||
for error in errors:
|
||||
print(f" {error}")
|
||||
sys.exit(1)
|
||||
else:
|
||||
print("\nALL FILES VALID - NO SYNTAX ERRORS!")
|
||||
sys.exit(0)
|
||||
|
|
@ -40,7 +40,7 @@ class TPRunnerPlugin(BasePlugin):
|
|||
"Pilgrim's Landing", "Poseidon West", "Red Sands",
|
||||
"Releks Hills", "Rest Stop", "Ripper Snapper", "Sacred Cove",
|
||||
"Sentinel Hill", "Shady Ridge", "Sisyphus", "South Scythe",
|
||||
"Spiral Mountain", "Stormbird Landing", "Sundari", "Tides,
|
||||
"Spiral Mountain", "Stormbird Landing", "Sundari", "Tides",
|
||||
"Traveller's Landing", "Victorious", "Vikings", "West Scythe",
|
||||
"Wild Banks", "Wolf's Ridge",
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in New Issue