Mypy - это дополнительная программа проверки статического типа для Python.
1 ответ

Callable является недействительным базовым классом?

Может кто-нибудь объяснить, почему наследование от непараметризованного и параметризованного Callable: from typing import Callable from typing import NoReturn from typing import TypeVar T = TypeVar('T', str, int) C = Callable[[T], NoReturn] class Fo…
04 окт '18 в 17:42
2 ответа

Есть ли способ полностью игнорировать все ошибки MyPy в определенных пакетах проекта?

Есть ли способ игнорировать все ошибки в определенных пакетах в моем проекте? Часть кода в моем проекте представляет собой скомпилированный код Protocol Buffers, который не проходит проверку MyPy. Все это находится в каталоге /myproj/ Генерируемый /…
07 янв '19 в 13:21
1 ответ

mypy: "__eq__" несовместим с супертипом "object"

Это мой код: class Person: def __init__(self, id): self.id = id def __eq__(self, other: 'Person') -> bool: return self.id == other.id def compare(self, other: 'Person') -> bool: return self.id == other.id бросок мипи error: Argument 1 of "__eq…
21 фев '19 в 07:50
1 ответ

Можем ли мы использовать Union внутри generic typehinting в python?

Я пишу функцию, которая анализирует объект типа Union со списком синтаксических анализаторов (с конкретными типами) и возвращает объединенный тип. Однако я обнаружил, что не могу заставить Union корректно работать с универсальным списком. from typin…
23 янв '19 в 09:18
2 ответа

mypy и sqlalchemy: ошибка: имя 'sqlalchemy' не определено

У меня есть следующая функция: def _init_db() -> "sqlalchemy.orm.session.Session": engine = create_engine("sqlite:///my_db.db") Base.metadata.create_all(engine) # Creating Session from sqlalchemy.orm import sessionmaker Session = sessionmaker(bin…
31 янв '19 в 10:09
1 ответ

Mypy: несовместимый тип (объект) со словарем функций

Следующий код: from typing import Union def a() -> int: return 1 def b() -> str: return 'a' def c(arg: str = 'a') -> Union[int, str]: return {'a': a, 'b': b}[arg]() запускает следующее исключение mypy: error: Incompatible return value type …
12 фев '19 в 12:56
3 ответа

Возможно ли типизированное неявное преобразование (принуждение) в Python 3.x?

Возможно ли реализовать пользовательское автоматическое / неявное преобразование (также называемое принуждением) в Python 3.6+, которое не сделает mypy а другие статические анализаторы печальны? Примером может быть def(foo: A)и дано def b_to_a(b: B)…
19 июн '18 в 01:55
1 ответ

Пользовательский тип, явно объявляющий вложенный тип

Я считаю действительно полезным иметь такие типы Python, как Dict[str, int], которые объявляют типы, которые они содержат, и позволяют им также проверяться на тип. Однако я не могу найти, как я могу создать такой тип. Если, например, я напишу class …
19 янв '19 в 08:38
1 ответ

Ошибка Mypy - несовместимые типы в присваивании

Моя функция выглядит следующим образом: def my_func() -> dict: result = {"success": False} if condition: result["success"] = True return result else: result["message"] = "error message" return result Когда я запускаю Mypy (версия 0.52), я получаю…
11 май '17 в 09:02
6 ответов

Каковы основные отличия NamedTuple и TypedDict в Python / mypy

Мне кажется, что NamedTuple а также TypedDict довольно похожи, и сами разработчики Python признали это. Что касается PEP, я бы предпочел добавить общий раздел о NamedTuple и TypedDict, они очень похожи, и последний уже ведет себя структурно. Как вы …
21 ноя '18 в 09:40
1 ответ

Поиск изменений интерфейса путем сравнения файлов заглушек Python

Я пытаюсь определить изменения интерфейсов открытых частей пакета python по сравнению с предыдущей версией. Это поможет с семантическим версионированием (MAJOR_CHANGE.MINOR_CHANGE.PATCH). Лучший способ, которым я могу придумать, это сделать следующе…
23 янв '18 в 12:52
2 ответа

Как намекнуть, что переменная является классом, унаследованным от другого класса?

Рассмотрим этот придуманный фрагмент кода: class Fooer(): def __init__(self, *args, **kwargs): # do things def foo(self) -> int: # do more things def foo(fooer, *args, **kwargs) -> int: return x(*args, **kwargs).foo() Я хочу намекнуть, что foo…
12 июн '18 в 16:56
1 ответ

Выполнять универсальные функции на определенной типизированной конечной точке REST, сохраняя типы

Я делаю типизированную библиотеку REST, где у всех конечных точек есть определенные классы и их методы установлены на объекте. Скажем, у нас есть список строк, возвращаемых конечной точкой A, это будет иметь класс MVCE A ниже. Я добавляю методы, кот…
01 ноя '18 в 14:52
1 ответ

Как установить mypy-lang на python 2.7?

Новая версия должна поддерживать 2.7, но при установке pip происходит сбой с SyntaxError на строке с синтаксисом аннотации типов python 3 (что довольно иронично): Traceback (most recent call last): ... from mypy import git File "mypy/git.py", line 1…
20 фев '16 в 21:13
3 ответа

Используйте Mypy с Ruamel.yaml

Я пытаюсь использовать MyPy с модулями, которые используют ruamel.yaml, и Mypy не может найти ruamel.yaml, даже несмотря на то, что у Python нет проблем с его поиском. Я озадачен, потому что не могу найти модуль с именем YAML.py или класс с именем Y…
05 сен '18 в 15:54
1 ответ

Именованный кортеж из словаря с использованием оператора двойной звезды: также распакованы ли вложенные поля?

У меня есть два класса: Top и Nested, и для их создания мне нужно предоставить объекты TopDefinition и NestedDefinition, которые имеют тип NamedTuple (определения необходимы для аннотаций типов). А Class Top содержит атрибут, который представляет со…
05 окт '18 в 14:19
1 ответ

Настройка набора текста.NamedTuple

Я использую NamedTuples для хранения данных, и я хочу добавить метод, который может наследоваться несколькими NamedTuple основанные классы. Но когда я пытаюсь использовать множественное наследование или подклассы NamedTuple основанные классы, это не…
16 май '18 в 09:52
1 ответ

Как объявить, что сама функция имеет определенный тип?

Скажем, у меня есть функция, которая принимает другие функции в качестве аргументов: Metric = Callable[List[float], float] def metric_doubler(metric: Metric, lst: List[float]): return 2*metric(lst) И я хочу написать другие функции и объявить, что он…
03 авг '18 в 19:30
5 ответов

Как я могу указать тип функции в моих подсказках типа?

Я хочу использовать подсказки типа в моем текущем проекте Python 3.5. Моя функция должна получить функцию в качестве параметра. Как я могу указать функцию типа в моих подсказках типа? import typing def my_function(name:typing.AnyStr, func: typing.Fu…
15 июн '16 в 12:14
1 ответ

Python mypy Тип Подсказка shutil.copyfileobj() имеет несовместимый тип "Union[HTTPResponse, BinaryIO]"; ожидаемый IO[любой]

Я получаю следующую ошибку mypy для кода ниже. Как я могу правильно привести объект ответа, чтобы mypy была счастлива, передав мне метод shutil.copyfileobj? error:Argument 1 to "copyfileobj" has incompatible type "Union[HTTPResponse, BinaryIO]"; exp…
14 фев '17 в 19:27