Неразрешенная проблема со ссылкой на атрибут в PyCharm в строке do c - PullRequest
1 голос
/ 07 января 2020

Когда я использую библиотеку attrs для создания класса, docstring в PyCharm показывает ошибку распечатки неразрешенная ссылка на атрибут .

С другой стороны, когда я обычно создаю класс с помощью метода __init__. Это не показывает такой ошибки.

Я не могу понять, что эта ошибка генерируется из-за attrs или PyCharm, потому что attrs по умолчанию имеет все необходимые заглушки для проверки типа mypy. При использовании attrs я пока не нашел никаких ошибок в линтировании, за исключением этого времени в строках документов.


import attr


@attr.s
class UsingAttrs:
    """
    class created using attrs shows linting error.

    Attributes
    ----------
    attribute_with_attr : str
    """
    attribute_with_attr: str = attr.ib(default='some_string_value')


class NotUsingAttrs:
    """
    class created normally does not show linting error.

    Attributes
    ----------
    attribute_without_attr : str
    """
    attribute_without_attr: str

    def __init__(self, param='some string value'):
        self.attribute_without_attr = param

Ошибка лининга показана на рисунке ниже -

enter image description here

Любая помощь будет оценена.

1 Ответ

2 голосов
/ 07 января 2020

Это ошибка в PyCharm. attrs ничего не может поделать с их анализом, особенно с учетом того факта, что их задача - проверять строки документов. AFAIK они вообще не используют mypy для внутреннего использования и должны сами все переопределить.

PS Вы можете написать просто attribute_with_attr: str = "some_string_value", если используете @attr.s(auto_attrib=True)

...