Skip to content

F822 (flake8): Type-only definitions in stubs and __all__ #533

Open

Description

@srittau

I am not sure if this is something that should be fixed in pyflakes as it only concerns stub files and is a genuine error in Python files. Please consider:

__all__ = ["foo"]

foo: int

This reports undefined name 'foo' in __all__. This is true at runtime, although this example is still useful for stubs. (flake8 3.7.9, pyflakes 2.1.1)

Activity

  1. asottile commented on Apr 23, 2020

    @asottile
    Member

    is this the same as #486? (it also works if doing foo: int = ...)

  2. srittau commented on Apr 23, 2020

    @srittau
    MemberAuthor

    It might be due to the same root cause (foo: int not introducing a name). But I think the behavior should be a bit different. #486 is problematic since it rejects valid implementations, especially when from __future__ import annotations becomes the default. This problem only affects stubs and the warning should most likely remain for implementations.

  3. asottile commented on Apr 23, 2020

    @asottile
    Member

    could you answer my question in #486 then?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions