You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a critical bugfix patch version. Previously, we determined the invariants based on the self passed to the function. However, in case of super().__init__, the invariants that need to be checked after the call are those belonging to to the super class, not the current (child) class. This lead to erroneous invariant checks, where the invariants of the child class where checked after the super-init call in the parent class.
Fixed invariants leak between related classes (#297)
This is a critical bugfix patch version. We introduced a bug in 2.7.0 (#292) where invariants defined on derived classes leaked up to parent classes. The bug is fixed in this version.
Allowed to enforce invariants on attribute setting (#292)
Originally, we had enforced invariants only at calls to "normal" methods, and excluded __setattr__ since it is usually too expensive to verify invariants whenever setting an attribute.
However, there are use cases where the users prefer to incur to computational overhead for correctness. To that end, we introduced the feature to steer when the invariants are enforced (at method calls, on setting attributes, or in both situations).
Updated typeguard and deal to latest versions (#284)
This change is needed so that distributions can successfully run the necessary tests with the development dependencies. Previously, the dependencies were outdated, and the old versions were already deprecated in distributions (notably, typegard and deal).
This patch is important as we silently broke setup.py, which was
tolerated by older versions of setuptools, but not any more by
the newer ones. With this patch, icontract's setup.py is made
valid again.
The support for Python 3.6 has been dropped in #257 as GitHub removed
its support in the CI pipeline. With this patch, we restored
the support of Python 3.6. Notably, we had to add
the package contextvars conditioned on Python 3.6.