All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Add formal Python 3.11 support
- Misc CI updates
- Fix a missing README file in the assertionlib sdist distribution
- Increase the
NDRepr.maxstring
default to 800. - Fixed the signature of
assertion.str_eq
.
- Added three new
NDRepr
methods. - Added a missing
AssertionManager.assert_
overload.
- Updated the typehints.
- Updated the Cancel Workflow Action version.
- Updated the string representation of exceptions.
- Enabled tests for Python 3.9.
- Enable Cancel Workflow Action for the unit tests.
- Added tests for building documentation.
- Minor changes.
- Added assertion.issuperset() and assertion.issubset().
- Export the source to PyPi.
- Updated MyPy settings.
- Added Nano-Utils as a dependency; moved a number of functions there.
- Removed requirements.txt in favor of .readthedocs.yml.
- Removed travis tests in favor of GitHub Actions.
- Removed CITATION.cff in favor of Zenodo.
- Added codecov and zenodo badges.
- Added support for the
python stup.py test
command. - Added support for the
python stup.py build_sphinx
command. - Added a GitHub Actions workflow for automatic PyPi publishing.
- Enabled codecov for the GitHub Action tests.
- Updated the package classifiers and keywords in
setup.py
.
- Added the
AssertionManager.xor()
,AssertionManager.isdisjoint()
andAssertionManager.length_hint()
methods. - Annotate most
AssertionManager
methods using Protocols. - Moved Protocols to their own separate stub module.
- Cleaned up the
_MetaAM
metaclass. - Reworked some of the internals of
AssertionManager
. - Added tests using pydocstyle.
- Windows bug fix: Check for the presence of the
AssertionManager._isdir()
rather than the type of operating system.
- Replaced pycodestyle tests with pytest-flake8.
- Added tests using doctest.
- Added a mypy test.
- Further refined type annotations.
- Marked AssertionLib as a typed package (PEP 561).
- Introduced updates and fixes to the type-annotations across the board.
- Exposed
NDRepr
,aNDRepr
andAbstractDataClass
in the main__init__.py
file. - Added the
__slots__
attribute toAbstractDataClass
. - Added the
AssertionManager.any()
andAssertionManager.all()
methods. - Added the
post_process
andmessage
keywords to allAssertionManager
assertion methods.
- Made the recursion safeguard in
AbstractDataClass
thread-safe. - Added the
AbstractDataClass._str()
function for creating string-representations of key/value pairs. - Added the
AbstractDataClass._eq()
function for comparing two attribute values. - Minor Improvements to
Exception
handling.
- Added new
AssertionManager()
methods based on the builtinmath
module. - Swapped the
allclose()
function withmath.isclose()
. Note that one of its keyword arguments has now changed names fromrtol
torel_tol
. - Added tests for OSX.
- Fixed an issue where
AssertionManager.function_eq()
would raise anAttributeError
if the two functions__code__
attributes were not equal in length.
- Added the new
AssertionManager.function_eq()
method for testing the equivalency of functions.
- Changed the license from lgpl-3.0 to apache-2.0.
- Added tests for
AbstractDataClass
. - Release of version 1.0.0.
- Added the
AssertionManager.shape_eq()
method for comparing array shapes. - Re-enabled all NumPy-related tests.
- Fixed indentation and attribute ordering in
AbstractDataClass.__repr__()
: https://github.com/nlesc-nano/AssertionLib/commit/4d6c16d0d2bc85c92c52507605f026ee1ef1d06f. NDRepr._get_ndformatter()` no longer raises a ``TypeError
when handling zero-sized arrays: https://github.com/nlesc-nano/AssertionLib/commit/e1601b5b41b53884436c51fd2ee98ff615447dac.
- Reduced the
AssertionManager()
traceback verbosity. - Added the
AssertionManager.__call__()
method which simply asserts the supplied value. - A couple of docstring, codestyle and consistency improvements.
- Added tests for Python 3.8.
- Added precautions against recursive calls of
AbstractDataClass.__repr__()
,__eq__()
and__hash__()
. - Fixed a bug where
AbstractDataClass.__repr__()
would crash when passing empty instances. - Deleted
AbstractDataClass.__str__()
; rely onAbstractDataClass.__repr__()
for printing. - Setting
AbstractDataClass._HASHABLE
toFalse
now truly removes the__hash__
method. - The frozenset stored in
AbstractDataClass._PRIVATE_ATTR
is now always added to class instances as a normal (unfrozen) set.
bind_callable()
can now handle all types of keyword arguments.bind_callable()
can now handle methods.
- Added tests.
- Release.
- Empty Python project directory structure.