diff options
Diffstat (limited to 'lib/_emerge/DepPrioritySatisfiedRange.py')
-rw-r--r-- | lib/_emerge/DepPrioritySatisfiedRange.py | 53 |
1 files changed, 32 insertions, 21 deletions
diff --git a/lib/_emerge/DepPrioritySatisfiedRange.py b/lib/_emerge/DepPrioritySatisfiedRange.py index e056e676f..fb0d7db4e 100644 --- a/lib/_emerge/DepPrioritySatisfiedRange.py +++ b/lib/_emerge/DepPrioritySatisfiedRange.py @@ -8,17 +8,18 @@ class DepPrioritySatisfiedRange: not satisfied and buildtime HARD not satisfied and runtime 7 MEDIUM - not satisfied and runtime_post 6 MEDIUM_SOFT - satisfied and buildtime_slot_op 5 SOFT - satisfied and buildtime 4 SOFT - satisfied and runtime 3 SOFT - satisfied and runtime_post 2 SOFT + satisfied and buildtime_slot_op 6 MEDIUM_SOFT + satisfied and buildtime 5 MEDIUM_SOFT + satisfied and runtime 4 MEDIUM_SOFT + runtime_post 3 MEDIUM_POST + satisfied and runtime_post 2 MEDIUM_POST optional 1 SOFT (none of the above) 0 NONE """ MEDIUM = 7 MEDIUM_SOFT = 6 - SOFT = 5 + MEDIUM_POST = 3 + SOFT = 1 NONE = 0 @classmethod @@ -35,42 +36,51 @@ class DepPrioritySatisfiedRange: return True if not priority.satisfied: return False + if priority.buildtime or priority.runtime: + return False return bool(priority.runtime_post) @classmethod - def _ignore_satisfied_runtime(cls, priority): + def _ignore_runtime_post(cls, priority): if priority.__class__ is not DepPriority: return False if priority.optional: return True - if not priority.satisfied: + if priority.buildtime or priority.runtime: return False - return not priority.buildtime + return bool(priority.runtime_post) @classmethod - def _ignore_satisfied_buildtime(cls, priority): + def _ignore_satisfied_runtime(cls, priority): if priority.__class__ is not DepPriority: return False if priority.optional: return True - if priority.buildtime_slot_op: + if priority.buildtime: return False + if not priority.runtime: + return True return bool(priority.satisfied) @classmethod - def _ignore_satisfied_buildtime_slot_op(cls, priority): + def _ignore_satisfied_buildtime(cls, priority): if priority.__class__ is not DepPriority: return False - return bool(priority.optional or \ - priority.satisfied) + if priority.optional: + return True + if priority.buildtime_slot_op: + return False + return bool(priority.satisfied) @classmethod - def _ignore_runtime_post(cls, priority): + def _ignore_satisfied_buildtime_slot_op(cls, priority): if priority.__class__ is not DepPriority: return False - return bool(priority.optional or \ - priority.satisfied or \ - priority.runtime_post) + if priority.optional: + return True + if priority.satisfied: + return True + return not priority.buildtime and not priority.runtime @classmethod def _ignore_runtime(cls, priority): @@ -81,17 +91,18 @@ class DepPrioritySatisfiedRange: not priority.buildtime) ignore_medium = _ignore_runtime - ignore_medium_soft = _ignore_runtime_post - ignore_soft = _ignore_satisfied_buildtime + ignore_medium_soft = _ignore_satisfied_buildtime_slot_op + ignore_medium_post = _ignore_runtime_post + ignore_soft = _ignore_optional DepPrioritySatisfiedRange.ignore_priority = ( None, DepPrioritySatisfiedRange._ignore_optional, DepPrioritySatisfiedRange._ignore_satisfied_runtime_post, + DepPrioritySatisfiedRange._ignore_runtime_post, DepPrioritySatisfiedRange._ignore_satisfied_runtime, DepPrioritySatisfiedRange._ignore_satisfied_buildtime, DepPrioritySatisfiedRange._ignore_satisfied_buildtime_slot_op, - DepPrioritySatisfiedRange._ignore_runtime_post, DepPrioritySatisfiedRange._ignore_runtime ) |