mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-05-15 10:03:31 +00:00
Remove unused imports across 86 files in src/, web_interface/, test/, and scripts/ using autoflake. No logic changes — only dead import statements and unused names in from-imports are removed. Also remove bare exception aliases where the variable is never referenced in the handler body: - src/cache/disk_cache.py: except (IOError, OSError, PermissionError) as e - src/cache_manager.py: except (OSError, IOError, PermissionError) as perm_error - src/plugin_system/resource_monitor.py: except Exception as e - web_interface/app.py: except Exception as read_err 86 files changed, 205 lines removed, 18 pre-existing test failures unchanged. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
73 lines
3.1 KiB
Python
Executable File
73 lines
3.1 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import logging
|
|
import sys
|
|
import os
|
|
import argparse
|
|
|
|
# Prevent Python from creating __pycache__ directories in plugin dirs.
|
|
# The root service loads plugins via importlib, and root-owned __pycache__
|
|
# files block the web service (non-root) from updating/uninstalling plugins.
|
|
sys.dont_write_bytecode = True
|
|
|
|
# Add project directory to Python path (needed before importing src modules)
|
|
project_dir = os.path.dirname(os.path.abspath(__file__))
|
|
if project_dir not in sys.path:
|
|
sys.path.insert(0, project_dir)
|
|
|
|
# Parse command-line arguments BEFORE any imports
|
|
parser = argparse.ArgumentParser(description='LEDMatrix Display Controller')
|
|
parser.add_argument('-e', '--emulator', action='store_true',
|
|
help='Run in emulator mode (uses pygame/RGBMatrixEmulator instead of hardware)')
|
|
parser.add_argument('-d', '--debug', action='store_true',
|
|
help='Enable debug logging and verbose output')
|
|
args = parser.parse_args()
|
|
|
|
# Set emulator mode if requested (must be done BEFORE any imports that check EMULATOR env var)
|
|
if args.emulator:
|
|
os.environ["EMULATOR"] = "true"
|
|
print("=" * 60)
|
|
print("LEDMatrix Emulator Mode Enabled")
|
|
print("=" * 60)
|
|
print("Using pygame/RGBMatrixEmulator for display")
|
|
print("Press ESC to exit\n")
|
|
|
|
# Project directory already added above
|
|
|
|
# Debug output (only in debug mode or emulator mode)
|
|
debug_mode = args.debug or args.emulator or os.environ.get('LEDMATRIX_DEBUG', '').lower() == 'true'
|
|
if debug_mode:
|
|
print(f"DEBUG: Project directory: {project_dir}", flush=True)
|
|
print(f"DEBUG: Python path[0]: {sys.path[0]}", flush=True)
|
|
print(f"DEBUG: Current working directory: {os.getcwd()}", flush=True)
|
|
print(f"DEBUG: EMULATOR mode: {os.environ.get('EMULATOR', 'false')}", flush=True)
|
|
|
|
# Additional debugging for plugin system (only in debug mode)
|
|
if debug_mode:
|
|
try:
|
|
plugin_system_path = os.path.join(project_dir, 'src', 'plugin_system')
|
|
if plugin_system_path not in sys.path:
|
|
sys.path.insert(0, plugin_system_path)
|
|
print(f"DEBUG: Added plugin_system path to sys.path: {plugin_system_path}", flush=True)
|
|
|
|
# Try to import the plugin system directly to get better error info
|
|
print("DEBUG: Attempting to import src.plugin_system...", flush=True)
|
|
print("DEBUG: Plugin system import successful", flush=True)
|
|
except ImportError as e:
|
|
print(f"DEBUG: Plugin system import failed: {e}", flush=True)
|
|
print(f"DEBUG: Import error details: {type(e).__name__}", flush=True)
|
|
except Exception as e:
|
|
print(f"DEBUG: Unexpected error during plugin system import: {e}", flush=True)
|
|
|
|
# Configure logging before importing any other modules
|
|
# Use centralized logging configuration
|
|
from src.logging_config import setup_logging
|
|
|
|
log_level = logging.DEBUG if debug_mode else logging.INFO
|
|
format_type = 'readable' # Use 'json' for structured logging in production
|
|
setup_logging(level=log_level, format_type=format_type, include_location=debug_mode)
|
|
|
|
# Now import the display controller
|
|
from src.display_controller import main
|
|
|
|
if __name__ == "__main__":
|
|
main() |