Может ли mypy проверить строки документов? - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть строки документов в стиле нумпидока :

def foobar(filename, copy, dtype, iterable, shape, files):
    """
    foobar is 42.

    Parameters
    ----------
    filename : str
    copy : bool
    dtype : data-type
    iterable : iterable object
    shape : int or tuple of int
    files : list of str

    Returns
    -------
    foobarfoo : int
    """
    pass

Можно ли проверить, могут ли типы строк документации быть правильными?

(дополнительный вопрос: может ли numpy возвращать / печатать сигнатуры функций, которые он обнаружил?)

Например, я ожидаю, что следующее не получится:

Типы возврата

def foobar():
    """
    Returns
    -------
    blub : int
    """
    return "foo"

или

def foobar(a, b):
    """
    Parameters
    ----------
    a : number
    b : number

    Returns
    -------
    blub : int
    """
    if a > b:
        return "foo"
    return 42

Типы параметров

def foobar(a, b):
    """
    Parameters
    ----------
    a : str
    b : int

    Returns
    -------
    blub : int
    """
    return a * b

1 Ответ

0 голосов
/ 09 ноября 2018

Нет, mypy понимает только официальную нотацию Python. См. mypy docs . И это нормально, нам не нужно много альтернативных способов ввода аннотации, как

Должен быть один - и желательно только один - очевидный способ сделать это.

...