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