Custom Solver Guide

Implement the ConstraintSolver interface:

.. code-block:: python

from package_maximizer.core.interfaces import ConstraintSolver from package_maximizer.core.package import Package from typing import Iterable

class MySolver(ConstraintSolver): def solve(self, packages: Iterable[Package]) -> list[str]: # Return a consistent set of package names. return []

Then register it in your code or via DI:

.. code-block:: python

from package_maximizer.di import SolverFactory factory = SolverFactory() factory.register(“my_solver”, lambda: MySolver())