- Notifications
You must be signed in to change notification settings - Fork71
Releases: python-constraint/python-constraint
2.4.0: Negative values support, improved MinSumConstraint and more
This release brings support for negative values - an important feature that had long been latent and neglected, that is now actively developed and tested. Please report any issues you might run into.
This release also includes the following improvements:
- MinSumConstraint is now much faster thanks to preprocessing
- Variables values can be instantiated with any type that can be iterable, such as sets
- Two issues (#13 and#65) relating to the examples have been resolved
- Various minor improvements
Full Changelog:2.3.2...2.4.0
Assets2
Uh oh!
There was an error while loading.Please reload this page.
2.3.2: bug fix, extended tests and documentation dependency update
This release brings a bug fix for the issue described in#101. It also includes extended tests and docstring tests for theREADME, as well as dependency updates for the documentation builder.
Full Changelog:2.3.1...2.3.2
Assets2
Uh oh!
There was an error while loading.Please reload this page.
2.3.1: minor fix after major update
Minor fix to ensure variables less than one are tracked where required for theExactProdConstraint andMaxProdConstraint constraints.
Full Changelog:2.3.0...2.3.1
Assets2
Uh oh!
There was an error while loading.Please reload this page.
2.3.0: major improvements for built-in constraints and parsing
This release brings three exciting improvements:
- Python Constraint now has an entirely new type of built-in constraints, allowing comparisons with variables on both sides (e.g.
"x == y / z") to be evaluated much more efficiently. - Constraint rewriting has been extended to include subtraction and division operators.
- Rewriting of restrictions with less-than or greater-than operators now supports floats as well.
In addition:
- Tests have been extended and amended to reflect changes introduced.
- Documentation has been extended and amended to reflect changes introduced.
- Various minor bugs have been resolved.
- Bump requests from 2.32.3 to 2.32.4 in /docs by@dependabot in#99
Full Changelog:2.2.3...2.3.0
Assets2
Uh oh!
There was an error while loading.Please reload this page.
2.2.3: extend wheel binaries to older manylinux versions, updated documentation dependencies
This release adds additional wheel binaries for older manylinux versions.
It also updates the dependencies for the documentation and brings an improved changelog and pyproject.
Full Changelog:2.2.2...2.2.3
Assets2
Uh oh!
There was an error while loading.Please reload this page.
2.2.2: bug fix for sorting issue
This update brings a bug fix for an issue where variable names of incomparable types would raise an issue, as described in#96.
Full Changelog:2.2.1...2.2.2
Assets2
Uh oh!
There was an error while loading.Please reload this page.
2.2.1: update to classifiers and performance benchmarking
This fix update adds Python version classifiers and adjusts the performance benchmarking threshold.
Full Changelog:2.2.0...2.2.1
Assets2
Uh oh!
There was an error while loading.Please reload this page.
2.2.0: overall quality improvements
This release raises the overall quality of python-constraint with a wide variety of improvements, such as:
- Automatic performance benchmarking and validation with real-world cases and automatic reporting (see#93).
- Preparations for free-threading (no GIL) capabilities (see#94).
- Removed NumPy dependency in micro benchmarks, updated dependencies, and optimized test interfaces.
- Changed development status from Beta to Production / Stable.
Full Changelog:2.1.0...2.2.0
Assets2
Uh oh!
There was an error while loading.Please reload this page.
2.1.0: string constraints and parallel solver
This release provides two exciting improvements: string constraints and a parallel solver!
Introducing string constraints, a new interface for addConstraint where users can simply write their constraint(s) as a list of Python-evaluable strings. Writing constraints in the new string format is preferable over functions and lambdas. These strings, even as compound statements, are automatically parsed to faster built-in constraints, are more concise, and do not require constraint solving familiarity by the user to be efficient.
For example,problem.addConstraint(["50 <= x * y < 100"]) is parsed to[MinProdConstraint(50, ["x", "y"]), MaxProdConstraint(100, ["x", "y"])].
This feature is in beta and subject to possible change, please provide feedback.
The new Parallel Solver is a solver that is able to parallelize solving for all solutions over the largest domain in both ProcessPool and ThreadPool mode. In ProcessPool mode, string constraints must be used instead of functions or lambdas, as these can't be pickled. This Parallel Solver is currently experimental and unlikely to provide an actual speedup - it is recommended to use the default OptimizedBacktrackingSolver for now.
In addition, Python 3.13 and 3.14 support has been added and dependencies updated.
For more details, see#91.
Full Changelog:2.0.3...2.1.0
Assets2
Uh oh!
There was an error while loading.Please reload this page.
2.0.3: Finding module path at runtime
ff3b966