输入返回 loguru 记录器的提示

Kur*_*ine 4 python logging python-3.x

有谁知道返回 loguru 记录器的正确类型提示?使用loguru.Logger通过 mypy 检查,但是当get_logger调用该函数时出现错误AttributeError: module 'loguru' has no attribute 'Logger'

import copy
from pathlib import Path
from sys import stdout

from loguru import logger
import loguru


def get_logger(log_path: Path) -> loguru.Logger:
    logger.remove()
    logger_ = copy.deepcopy(logger)
    logger_.add(stdout)
    logger_.add(f"{log_path}.log")

    return logger_

Run Code Online (Sandbox Code Playgroud)

Kur*_*ine 6

我了解到这是正确的,如果添加到导入列表中,则loguru.Logger可以使用而不会引发错误。from __future__ import annotations

这来自loguru 类型提示文档

例子:

from __future__ import annotations

import loguru

def get_logger(
    colorize: bool = True,
    serialize: bool = False,
    file_format: str = LOG_FORMAT_SIMPLE,
) -> loguru.Logger:
Run Code Online (Sandbox Code Playgroud)