_emerge.resolver.backtracking module

class _emerge.resolver.backtracking.BacktrackParameter

Bases: object

circular_dependency
needed_license_changes
needed_p_mask_changes
needed_unstable_keywords
needed_use_config_changes
prune_rebuilds
rebuild_list
reinstall_list
runtime_pkg_mask
slot_operator_mask_built
slot_operator_replace_installed
class _emerge.resolver.backtracking.Backtracker(max_depth)

Bases: object

_add(node, explore=True)

Adds a newly computed backtrack parameter. Makes sure that it doesn’t already exist and that we don’t backtrack deeper than we are allowed by –backtrack.

_check_runtime_pkg_mask(runtime_pkg_mask)

If a package gets masked that caused other packages to be masked before, we revert the mask for other packages (bug 375573).

_current_node
_feedback_config(changes, explore=True)

Handle config changes. Don’t count config changes for the maximum backtrack depth.

_feedback_missing_dep(dep)
_feedback_slot_conflict(conflict_data)
_feedback_slot_conflicts(conflicts_data)
_max_depth
_nodes
_root
_unexplored_nodes
backtracked()

If we didn’t backtrack, there is only the root.

feedback(infos)

Takes information from the depgraph and computes new backtrack parameters to try.

get()

Returns a backtrack parameter. The backtrack graph is explored with depth first.

get_best_run()

Like, get() but returns the backtrack parameter that has as many config changes as possible, but has no masks. This makes –autounmask effective, but prevents confusing error messages with “masked by backtracking”.

class _emerge.resolver.backtracking._BacktrackNode(parameter=<_emerge.resolver.backtracking.BacktrackParameter object>, depth=0, mask_steps=0, terminal=True)

Bases: object

depth
mask_steps
parameter
terminal