Python 3 で mypy を使用してログ モジュールに注釈を付けようとしていますが、namer 関数の注釈に問題があります。
import logging
def _namer(name: str) -> str:
return name + '.gz'
def get_logger(file_name: str, level: str) -> logging.Logger:
logger = logging.getLogger(__name__)
handler = TimedRotatingFileHandler(file_name, backupCount=30, when='midnight')
handler.namer = _namer
return logger
mypy を実行すると、_namer を handler.namer に割り当てると、次のエラーが発生します。
error: Incompatible types in assignment (expression has type Callable[[str], str], variable has type "Optional[Callable[[str], None]]")
mypy が文句を言わないように _namer にどのように注釈を付けるべきか考えていますか?