koji_habitude.solver

koji_habitude.solver

Dependency resolution order solver

author:

Christopher O’Brien <obriencj@gmail.com>

license:

GNU General Public License v3

ai-assistant:

Claude 3.5 Sonnet via Cursor

class koji_habitude.solver.Node(obj: CoreObject | Reference, splitable: bool = None)

Bases: object

Represents a node in the dependency graph, wrapping a Base object of some type. Used internally by the Solver to track dependency links.

add_dependency(node: Node) → None
get_priority() → Tuple[bool, bool, int]
property score: int
class koji_habitude.solver.Solver(resolver: Resolver, work: List[Tuple[str, str]] | None = None)

Bases: object

A Solver is a container for a set of nodes, iterated over in a dependency solved order. It can optionally accept a list of work keys to use as a limited starting point for depsolving from the namespace, in which case it will only solve for those keys and their dependencies.

prepare() → None
remaining_keys() → Set[Tuple[str, str]]
report() → ResolverReport