Должен ли я привести строку, а затем int для mypy?Python

Программы на Python
Anonymous
Должен ли я привести строку, а затем int для mypy?

Сообщение Anonymous »

У меня есть конфигурация, которую я загрузил в dict. Он содержит целочисленную конфигурацию["logging"]["backup_count"]. Однако type(config["logging"]["backup_count"]) возвращает объект. Итак, когда я перейду к следующему:

Код: Выделить всё

TimedRotatingFileHandler(log_file, backupCount=config["logging"]["backup_count"], when="midnight", interval=1)
mypy жалуется, что я пытаюсь поместить объект туда, где ожидается int. Конечно, это можно исправить, добавив приведение типов:

Код: Выделить всё

TimedRotatingFileHandler(log_file, backupCount=int(str(config["logging"]["backup_count"])), when="midnight", interval=1)
но это кажется неуклюжим. Стоит ли мне это делать?
Я новичок в mypy и пишу на Python. Я хотел бы знать правильный протокол для решения подобных проблем. В частности, следует ли мне выполнять приведение -to-str-to-int или что-то еще?
РЕДАКТИРОВАТЬ: Должен ли я использовать TypedDict? Если мой словарь считывается, например, из файла .toml, есть ли простой способ создать из него TypedDict с правильным набором текста (я знаю, какие типы конфигурации должны быть впереди) времени)?

Подробнее здесь: https://stackoverflow.com/questions/788 ... t-for-mypy

Вернуться в «Python»