Release 3.5.0¶
Release date: 2026-06-20
ChangeLog¶
Refactor type hints of
fast_append_exceptionandfast_suppress_exitin_errortools/future.py.Refactor and improve compatibility in
_errortools/_speedup.c.Refactor
_errortools/cli.pyto improve robustness, structure and consistency.Replace fragile
"logger" in sys.argv[0]substring test with a basename-based_detect_mode()helper (handles.exe,.py,.pyw,.pyz,.shsuffixes) so paths likemy_logger_toolor/usr/bin/loggerno longer mis-detect the CLI family.Cache the detected mode at import time as
_CLI_MODE: Final[str]instead of recomputing on every call.Split
parse_args()into_build_errortools_parser()and_build_logger_parser()so each CLI family owns its own argument schema.Extract
_make_parser(prog, description)helper to deduplicate the Python 3.14+color=Truebranch.Replace
args.message == "shell"dispatch anti-pattern withargs.subcmdchecks plus a defensive fallback branch.Split each
--*flag action into its own named function (_show_version,_show_author, …) and mark_FLAG_ACTIONSasFinal.Unify
--versionoutput (errortools 3.4.9) with the format already used by--info.Add a friendly
ImportErrorhandler for--run-testsso missing test extras produce an actionable message and exit code 2 instead of a traceback.Switch
parse_args/mainsignatures toSequence[str] | Nonefor broader caller compatibility and enablefrom __future__ import annotationsfor PEP 604 syntax on Python 3.8+.Add module-level docstring documenting both CLI families.
Add example cli in
_errortools/version.py,_errortools/metadata.pyand_errortools/plugins.py.Change format of
_errortools/classes/protocol.pyback to black’s format.Add more comments in
_errortools/ignore.py.Improve compatibility in
errortools/__init__.pyto Python 3.10 (forNameErrorLikeandAttributeErrorLikecompatibility).Fix flake8 error W504 and E704 in
_errortools/classes/protocol.py.Fix flake8 error B042 in
_errortools/classes/group.py.Fix flake8 error B027 in
_errortools/logging/sink.py.Fix flake8 W504 error in
_errortools/classes/protocol.py.Add interactive
logger shellREPL with pre-imported logging shortcuts and std-lib logging base classes.Add remove time in deprecated 4 type alias in
_errortools/typing.py.