mirror of
https://github.com/open-mmlab/mmengine.git
synced 2025-06-03 21:54:44 +08:00
Add Priority (#92)
This commit is contained in:
parent
2d782b4998
commit
ac666711ab
1
mmengine/runner/__init__.py
Normal file
1
mmengine/runner/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
60
mmengine/runner/priority.py
Normal file
60
mmengine/runner/priority.py
Normal file
@ -0,0 +1,60 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
from enum import Enum
|
||||
from typing import Union
|
||||
|
||||
|
||||
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: Union[int, str, Priority]) -> int:
|
||||
"""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')
|
Loading…
x
Reference in New Issue
Block a user