|
8 | 8 | retains only the functions that depend on ``iris.rpc.logging_pb2``. |
9 | 9 | """ |
10 | 10 |
|
| 11 | +from iris.rpc import logging_pb2 |
11 | 12 |
|
12 | | -def str_to_log_level(level_name: str) -> int: |
| 13 | +_STR_TO_ENUM = { |
| 14 | + "DEBUG": logging_pb2.LOG_LEVEL_DEBUG, |
| 15 | + "INFO": logging_pb2.LOG_LEVEL_INFO, |
| 16 | + "WARNING": logging_pb2.LOG_LEVEL_WARNING, |
| 17 | + "ERROR": logging_pb2.LOG_LEVEL_ERROR, |
| 18 | + "CRITICAL": logging_pb2.LOG_LEVEL_CRITICAL, |
| 19 | +} |
| 20 | + |
| 21 | + |
| 22 | +def str_to_log_level(level_name: str | None) -> int: |
13 | 23 | """Convert a canonical level name (e.g. "INFO") to the LogLevel proto enum value. |
14 | 24 |
|
15 | | - Returns LOG_LEVEL_UNKNOWN (0) for unrecognized names. |
16 | | - Uses lazy import to avoid pulling in protobuf at module load time. |
| 25 | + Returns ``LOG_LEVEL_UNKNOWN`` (0) for ``None``, empty strings, and |
| 26 | + unrecognized names. |
17 | 27 | """ |
18 | | - from iris.rpc import logging_pb2 |
19 | | - |
20 | | - _STR_TO_ENUM = { |
21 | | - "DEBUG": logging_pb2.LOG_LEVEL_DEBUG, |
22 | | - "INFO": logging_pb2.LOG_LEVEL_INFO, |
23 | | - "WARNING": logging_pb2.LOG_LEVEL_WARNING, |
24 | | - "ERROR": logging_pb2.LOG_LEVEL_ERROR, |
25 | | - "CRITICAL": logging_pb2.LOG_LEVEL_CRITICAL, |
26 | | - } |
27 | | - return ( |
28 | | - _STR_TO_ENUM.get(level_name.upper(), logging_pb2.LOG_LEVEL_UNKNOWN) |
29 | | - if level_name |
30 | | - else logging_pb2.LOG_LEVEL_UNKNOWN |
31 | | - ) |
| 28 | + if not level_name: |
| 29 | + return logging_pb2.LOG_LEVEL_UNKNOWN |
| 30 | + return _STR_TO_ENUM.get(level_name.upper(), logging_pb2.LOG_LEVEL_UNKNOWN) |
0 commit comments