| # Copyright 1999-2013 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| from _emerge.AbstractDepPriority import AbstractDepPriority |
| |
| |
| class DepPriority(AbstractDepPriority): |
| |
| __slots__ = ("satisfied", "optional", "ignored") |
| |
| def __int__(self): |
| """ |
| Note: These priorities are only used for measuring hardness |
| in the circular dependency display via digraph.debug_print(), |
| and nothing more. For actual merge order calculations, the |
| measures defined by the DepPriorityNormalRange and |
| DepPrioritySatisfiedRange classes are used. |
| |
| Attributes Hardness |
| |
| buildtime_slot_op 0 |
| buildtime -1 |
| runtime -2 |
| runtime_post -3 |
| optional -4 |
| (none of the above) -5 |
| |
| """ |
| |
| if self.optional: |
| return -4 |
| if self.buildtime_slot_op: |
| return 0 |
| if self.buildtime: |
| return -1 |
| if self.runtime: |
| return -2 |
| if self.runtime_post: |
| return -3 |
| return -5 |
| |
| def __str__(self): |
| if self.ignored: |
| return "ignored" |
| if self.optional: |
| return "optional" |
| if self.buildtime_slot_op: |
| return "buildtime_slot_op" |
| if self.buildtime: |
| return "buildtime" |
| if self.runtime_slot_op: |
| return "runtime_slot_op" |
| if self.runtime: |
| return "runtime" |
| if self.runtime_post: |
| return "runtime_post" |
| return "soft" |