Skip to content

Which static analysis tools use PEP 484 yet? #200

Closed

Description

@matthiaskramm

I know of:

  • pylint, which has plans to support PEP 484
  • mypy, which can type check PEP 484 programs, and uses PEP 484 on its own code
  • pytype, which can type check PEP 484 programs, and generate PEP 484 annotations

Which other static analysis tools have picked up PEP 484, and/or can do useful checking of (or anything else, with) annotated Python source?

Activity

  1. gvanrossum commented on Apr 12, 2016

    @gvanrossum
    Member
  2. prechelt commented on Apr 12, 2016

    @prechelt

    Don't ignore dynamic checking, which may help where static checking does not reach:

    https://pypi.python.org/pypi/typecheck-decorator

    Nice for instance for incremental sense-making when maintaining somebody else's code:

    find out something, annotate it, run tests, and see whether it is indeed usually true.

    Lutz

  3. markshannon commented on Apr 12, 2016

    @markshannon
    Member

    How about the best dynamic checker of them all, Python itself?
    100% accuracy in determining runtime type errors, with no annotations
    required whatsoever :)

    Cheers,
    Mark

  4. o11c commented on Apr 12, 2016

    @o11c
    Contributor

    How about the best dynamic checker of them all, Python itself? 100% accuracy in determining runtime type errors, with no annotations required whatsoever :)

    There are plenty of cases where Python will silently Do The Wrong Thing due to type errors.

    One of the simple examples is if you end up calling iter('foo') rather than iter(['foo']).

  5. ilevkivskyi commented on Apr 12, 2016

    @ilevkivskyi
    Member

    Since someone already mentioned this, I could add another runtime type checking tool that I have seen: https://github.com/agronholm/typeguard

  6. JelleZijlstra commented on Apr 11, 2021

    @JelleZijlstra
    Member

    Closing as this is no longer relevant

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions