Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: python-constraint/python-constraint

2.2.3: extend wheel binaries to older manylinux versions, updated documentation dependencies

10 Apr 09:56
Compare
Choose a tag to compare

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

2.2.2: bug fix for sorting issue

30 Mar 19:40
Compare
Choose a tag to compare

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

2.2.1: update to classifiers and performance benchmarking

26 Mar 10:08
Compare
Choose a tag to compare

This fix update adds Python version classifiers and adjusts the performance benchmarking threshold.

Full Changelog: 2.2.0...2.2.1

2.2.0: overall quality improvements

25 Mar 10:47
Compare
Choose a tag to compare

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

2.1.0: string constraints and parallel solver

11 Feb 16:05
Compare
Choose a tag to compare

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

2.0.3: Finding module path at runtime

11 Feb 11:35
ff3b966
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.0.2...2.0.3

2.0.2: minor improvements to MinConflictsSolver and packaging

01 Feb 23:53
Compare
Choose a tag to compare

What's Changed

  • Add ability to pass custom Random to MinConflictsSolver by @Timmmm in #81
  • Include .so compiled cpython libraries to wheel package by @iyanmv in #88
  • Minor improvements to changelog
  • Updated dependencies

New Contributors

Full Changelog: 2.0.1...2.0.2

2.0.1: minor packaging fix

01 Feb 12:05
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.0.0...2.0.1

2.0.0: major performance boost and other improvements

29 Jan 14:32
Compare
Choose a tag to compare

After 16 months of public beta and 8 beta versions, python-constraint 2 is ready for release 🎉
It brings major performance optimizations, an overhaul of the project structure, and automated testing and reporting.
This new version can be installed with pip install python-constraint.

Summary of major optimizations:

  • Cythonized the package and added typing
  • Added the (now default) OptimizedBacktracking solver based on #62
  • Added the MaxProd and MinProd constraints
  • Optimized the Function and MaxSum constraints
  • Wider choice of output formats (use getSolutionsOrderedList or getSolutionsAsListDict)
  • Overall optimization of common bottlenecks

In all, this results in a two- to three- orders of magnitude speedup over the old version.

Various engineering changes were made as well, including:

  • Split the codebase into multiple files for convenience
  • Achieved and requires test coverage of at least 80%
  • Switched from setup.py to pyproject.toml
  • Added nox for local testing against all supported Python versions
  • Added ruff for code style testing
  • Dropped Python 3.4, 3.5, 3.6, 3.7, 3.8 support

For more extensive information on these changes, check #76 and here

2.0.0b8: beta release of revamped python-constraint

02 Nov 09:26
Compare
Choose a tag to compare

This is a beta release for early access to the new features. Not intended for production use.
It includes the now stable Python 3.13 in the supported versions as requested in #82, while Python 3.8 has been dropped. Dependencies have been updated.