All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Added
verify_literal()method to verify a value is a memger of a literal group (and narrow type)
All callback parameters now use Protocol types with position-only parameters. If you have custom type hints that reference the old callback signatures, you'll need to update them to use the new Protocol types.
- Added
retry()andretry_async()decorators with exponential backoff, jitter, and selective exception retry - Added Protocol types for all callback parameters
ExceptionCallbackDoExceptParamsCallbackNoArgCallbackAsyncDoExceptParamsCallbackAsyncNoArgCallbackRetryCallback
- Added
Buzz.retry()andBuzz.retry_async()class methods - Added pre-commit hooks configured to run
make qa/full - Added YAML linting with yamllint (inline config in Makefile)
- Added mutation testing with mutmut via
make qa/mutate(not part of regular QA) - Added
CONTRIBUTING.mdandCODE_OF_CONDUCT.md - Added
make qa/mutatetarget for mutation testing - Added colored help output to Makefile with section headers
- Added
publishtarget to Makefile for tagging releases - Added import auto-sorting to
make qa/format
- Made
messageparameter required positional (first parameter) inretry()andretry_async() - Updated all function signatures in
tools.pyandbase.pyto use Protocol types for callbacks - Used position-only parameters for Protocol callbacks to allow flexible parameter naming
- Reformatted Makefile to match consistent project pattern
- Fixed all basedpyright warnings in tests (added
overridedecorators, type hints, renamed unused params) - Fixed YAML indentation issues in GitHub Actions workflows
- Removed dead
_check_kwargs()method and its test (was never called)
- Added the
ensure_type()function - Some docs updates
- Renamed the
demopackage tobuzz_demoto avoid name collision
- Added
do_exceptanddo_elsetorequire_condition,enforce_defined, andcheck_expressions - Added unit tests for new functionality
- Added new functionality to the demos
- Removed
exc_builderoption fromBuzz - Added
exc_builderclassmethod forBuzz - Added rich demo
- Added demo page to docs
- Removed examples folder (see
src/demoinstead) - Updated the README
- Minor docs updates
- Updated tests
- Added
base_messagetoExcBuilderParams - Improved typing
- Improved function signatures and docstrings in base.py
- Added basedpyright to type checking
- Added and updated unit tests.
- Restored py.typed that was accidentally excluded
- Fixed badges in README.md
- Fixed wrong version (3.8) mention in README.md
- Fixed wrong version (3.8) mention in docs
- Converted to a uv project
- Fixed typing issues
- Update docstrings and docs for
handle_errors_async
- Added
handle_errors_asyncto exported list from base package
- Dropped support for Python 3.8
- Updated some dependencies
- Added
handle_errors_async
- Added
base_messageoption toDoExceptParams. - Changed
exc_builderoption to expect a newExcBuilderParamsclass. - Updated documentation.
- Added
ignore_exc_classoption tohandle_errors.
- Dropped support for Python 3.6 and Python 3.7
- Upgraded dev dependencies including Pytest 7
- Converted documentation to markdown
- Added
exc_builderoption to all methods.
- Added
enforce_defined()to Buzz class.
- Added
enforce_defined()function with tests and docs.
- Added
raise frominhandle_errors(how did I miss this for so long?)
- Returned support for Python 3.6
- Moved functions to standalone tools module
- Made Buzz re-use these methods
- Changed
handle_errorsexception_classparameter tohandle_exc_class - Changed
handle_errorsto sendDoExceptParamsas a single parameter - Removed
sanitize_err_stringas it should not be needed after 2.0.0 - Removed
re_raiseparameter fromhandle_errorsin tools. - Made passing
Nonetoraise_exc_classindicate no new exception should be raised - Added a Makefile for running quality checks easier.
- Updated and added examples.
- Updated docs a lot.
- Dropped support for Python 3.6
- Fixed args in
check_expressions
- Added ability to forward init args for derived classes
- Dropped support for python 3.5
- Removed deprecated features (format args especially)
- Added black & isort pre-commit hooks
- Updated examples and documentation
- Updated inflection dependency version
- Added tests for use of handle_errors as a decorator
- Added deprecation warnings for removal of format args, kwargs
- Updated README
- Updated examples
- Updated quickstart docs
- Added readme to pyproject.toml
- Deprecated accumulate errors (violated priniciple of least surprise)
- Added check_expressions as a more explicit multi-expression checker
- Moved Buzz class code into base.py
- Converted project to use poetry
- Added more documentation
- Removed reformat_exception_with_traceback
- Added get_traceback. Simplicity is better
- Added reformat_exception_with_traceback
- Added nox support
- Fixed travis deploy collision issue
- Updated long_description so pypi wouldn't fuck me over any more
- Extracted reformat_exception method
- Version bump because pypi is complaining about version conflicts
- Added several examples to show features and complex behavior
- Added decals to README
- Added documentation, hosted on readthedocs, and such
- Added ability to handle only specific exceptions to handle_errors
- Improved exception reporting from within handle_errors
- Added traceback to do_except
- Added ability for handle_errors to absorb exception
- Added traceback print out to handle_errors message
- Added exception class name to handle_errors output
- Added formatted message string to on_error parameters
- Renamed project to 'py-buzz'
- Added error sanitization for messages with embedded curly braces
- Fixed issues with packaging (took a lot of intermediary releases)
- Added accumulating context manager for checking expressions
- Added do_finally and on_error parameters to handle_errors
- Added repr function
- Added testing
- First release of buzz-lightyear
- This CHANGELOG
- README providing a brief overview of the project