mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-04 14:25:08 +00:00
ci: mypy ratchet -- keep type-clean modules clean (71 modules, 536 -> 442 errors) (#661)
* ci: mypy ratchet -- keep type-clean modules clean mypy-clean.txt lists the 71 modules under src/ that type-check clean; scripts/check_types.py runs mypy (--follow-imports=silent) on exactly those files and fails on any error or a missing/unsorted/duplicate entry. A new "Type check (mypy ratchet)" CI job runs it with mypy 1.20.2 and pinned stubs; the manual pre-commit mypy hook now runs the same script (a local hook, so mypy sees the installed requirements like CI does). 35 modules were made clean with annotation-only fixes: hints, typing.cast, TYPE_CHECKING imports, implicit-Optional defaults made explicit, and annotations widened (never guards removed) where mypy called a defensive isinstance check unreachable. No runtime behaviour change. mypy.ini: numpy and orjson are treated as Any (follow_imports=skip, also for stubs). numpy 2.3+ stubs use 3.12 `type` statements that mypy won't parse at python_version 3.10, and orjson is optional, so seeing its stubs made the result depend on whether it was installed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore: annotate check_types.py's list-form mypy subprocess Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+7
-5
@@ -5,11 +5,13 @@ Provides specific exception types for different error categories,
|
||||
enabling better error handling and debugging.
|
||||
"""
|
||||
|
||||
from typing import Optional
|
||||
|
||||
|
||||
class LEDMatrixError(Exception):
|
||||
"""Base exception for all LEDMatrix errors."""
|
||||
|
||||
def __init__(self, message: str, context: dict = None):
|
||||
def __init__(self, message: str, context: Optional[dict] = None):
|
||||
"""
|
||||
Initialize the exception.
|
||||
|
||||
@@ -32,7 +34,7 @@ class LEDMatrixError(Exception):
|
||||
class CacheError(LEDMatrixError):
|
||||
"""Exception raised for cache-related errors."""
|
||||
|
||||
def __init__(self, message: str, cache_key: str = None, context: dict = None):
|
||||
def __init__(self, message: str, cache_key: Optional[str] = None, context: Optional[dict] = None):
|
||||
"""
|
||||
Initialize cache error.
|
||||
|
||||
@@ -53,7 +55,7 @@ class CacheError(LEDMatrixError):
|
||||
class ConfigError(LEDMatrixError):
|
||||
"""Exception raised for configuration-related errors."""
|
||||
|
||||
def __init__(self, message: str, config_path: str = None, field: str = None, context: dict = None):
|
||||
def __init__(self, message: str, config_path: Optional[str] = None, field: Optional[str] = None, context: Optional[dict] = None):
|
||||
"""
|
||||
Initialize config error.
|
||||
|
||||
@@ -79,7 +81,7 @@ class ConfigError(LEDMatrixError):
|
||||
class PluginError(LEDMatrixError):
|
||||
"""Exception raised for plugin-related errors."""
|
||||
|
||||
def __init__(self, message: str, plugin_id: str = None, context: dict = None):
|
||||
def __init__(self, message: str, plugin_id: Optional[str] = None, context: Optional[dict] = None):
|
||||
"""
|
||||
Initialize plugin error.
|
||||
|
||||
@@ -100,7 +102,7 @@ class PluginError(LEDMatrixError):
|
||||
class DisplayError(LEDMatrixError):
|
||||
"""Exception raised for display-related errors."""
|
||||
|
||||
def __init__(self, message: str, display_mode: str = None, context: dict = None):
|
||||
def __init__(self, message: str, display_mode: Optional[str] = None, context: Optional[dict] = None):
|
||||
"""
|
||||
Initialize display error.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user