# Copyright (c) OpenMMLab. All rights reserved. | |
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') | |