|
|
|
from enum import Enum
|
|
|
|
|
|
class Priority(Enum):
|
|
"""Hook priority levels.
|
|
|
|
+--------------+------------+
|
|
| Level | Value |
|
|
+==============+============+
|
|
| HIGHEST | 0 |
|
|
+--------------+------------+
|
|
| VERY_HIGH | 10 |
|
|
+--------------+------------+
|
|
| HIGH | 30 |
|
|
+--------------+------------+
|
|
| ABOVE_NORMAL | 40 |
|
|
+--------------+------------+
|
|
| NORMAL | 50 |
|
|
+--------------+------------+
|
|
| BELOW_NORMAL | 60 |
|
|
+--------------+------------+
|
|
| LOW | 70 |
|
|
+--------------+------------+
|
|
| VERY_LOW | 90 |
|
|
+--------------+------------+
|
|
| LOWEST | 100 |
|
|
+--------------+------------+
|
|
"""
|
|
|
|
HIGHEST = 0
|
|
VERY_HIGH = 10
|
|
HIGH = 30
|
|
ABOVE_NORMAL = 40
|
|
NORMAL = 50
|
|
BELOW_NORMAL = 60
|
|
LOW = 70
|
|
VERY_LOW = 90
|
|
LOWEST = 100
|
|
|
|
|
|
def get_priority(priority):
|
|
"""Get priority value.
|
|
|
|
Args:
|
|
priority (int or str or :obj:`Priority`): Priority.
|
|
|
|
Returns:
|
|
int: The priority value.
|
|
"""
|
|
if isinstance(priority, int):
|
|
if priority < 0 or priority > 100:
|
|
raise ValueError('priority must be between 0 and 100')
|
|
return priority
|
|
elif isinstance(priority, Priority):
|
|
return priority.value
|
|
elif isinstance(priority, str):
|
|
return Priority[priority.upper()].value
|
|
else:
|
|
raise TypeError('priority must be an integer or Priority enum value')
|
|
|