Optapy

Latest version: v9.37.0b0

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

8.19.0a1

- Remove memory leak caused by old best solution being retained until solving finishes
- Add support for `tuple` and `set` collections, and collections that extend the `collection.abc` abstract base classes
- Allow group by keys to be interacted with like normal python objects

8.19.0a0

New Features:

- Ability to load a SolverConfig via XML from `solver_config_create_from_xml_file(pathlib.Path)`
- Can modify the log level of optapy at runtime with `logging`

Fixed Bugs:

- Logback configuration logs will no longer appear

8.17.0a0

- New decorator `planning_list_variable`, which can be used to model variables as an ordered disjoint set (for example, the customers to visit in vehicle routing).
- Support for `problem_change`, which allows changing the problem during solving.
- List available subpackages in optapy.config, validate collection decorators.

8.16.1a0

- Upgrade OptaPlanner version to 8.16.1.Final
- Add `easy_score_calculator` decorator
- Add `incremental_score_calculator` decorator
- Fix bug in ScoreManager that causes an exception in concurrent requests in different threads
- Add SolverStatus to `optapy.types`

8.14.0a0

New Features:

- All Python Types are supported in Joiners/ConstraintCollectors/etc, so that TypeError now never happens. If you happen to return a bad type in a method that expects a particular type (ex: returning a str instead of a bool in a filter), a TypeError will be raised with some general helping info
- The following API from OptaPlanner have been exposed: SolverFactory, SolverManager, ScoreManager (which can be accessed via solver_factory_create, solver_manager_create, score_manager_create).
- The following annotations from OptaPlanner been exposed as annotations: anchor_shadow_variable, inverse_relation_shadow_variable, planning_pin; pinning_filter is also now available as an optional value that can be defined on planning_entity
- SolverFactory is for blocking solving, SolverManager is for asynchronously solving, ScoreManager is to get the score and violated constraints without solving.
- Type stubs have been added via stubgenj

Deprecations:

- from have been deprecated in OptaPlanner (from_ in OptaPy) due to its semantics changing depending on if over-constrained planning is used. Now use forEach/forEachIncludingNullVars instead, which has consistent semantics in both regular and over-constrained planning.

Breaking Changes:

- solve as a global function has been removed from OptaPy as there is no equivalent static method in OptaPlanner yet. Replace solve(solver_config, problem) with solver_factory_create(solver_config).buildSolver().solve(problem).

8.11.0a2

Fixes a Windows file in use error that occurs when python terminates

Page 2 of 3

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.