debug.py 724 B

12345678910111213141516171819202122
  1. import sys
  2. from typing import Callable, List, Optional, Any
  3. # Warning: name could conflict with Python's built-in logging module
  4. logging: bool = False
  5. version_check: bool = True
  6. version: Optional[str] = None
  7. log_handler: Callable = print # More specifically: Callable[[Any, Optional[Any]], None]
  8. logs: List[str] = []
  9. def log(text: Any, file: Optional[Any] = None) -> None:
  10. """Log a message if logging is enabled."""
  11. if logging:
  12. log_handler(text, file=file)
  13. def error(error: Any, name: Optional[str] = None) -> None:
  14. """Log an error message to stderr."""
  15. log(
  16. error if isinstance(error, str) else f"{type(error).__name__ if name is None else name}: {error}",
  17. file=sys.stderr
  18. )