|
|
|
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') |
|
|