pyre-check VS typeshed

Compare pyre-check vs typeshed and see what are their differences.

Our great sponsors
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • Scout APM - Less time debugging, more time building
  • OPS - Build and Run Open Source Unikernels
pyre-check typeshed
12 7
5,735 2,587
1.0% 3.5%
10.0 9.9
7 days ago about 3 hours ago
OCaml Python
MIT License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

pyre-check

Posts with mentions or reviews of pyre-check. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-11-30.

typeshed

Posts with mentions or reviews of typeshed. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-12-14.
  • Comparison of Python TOML parser libraries
    19 projects | dev.to | 14 Dec 2021
    typeshed
  • On autoloading: a rant about rails
    1 project | news.ycombinator.com | 5 Nov 2021
    Python these days is sprouting type annotations all over the show, the benefits are too good to ignore.

    And if a given library doesn't use type annotations, people will often create type stubs for it that mypy can consume.

    https://github.com/python/typeshed/tree/master/stubs

  • Tests aren’t enough: Case study after adding type hints to urllib3
    4 projects | news.ycombinator.com | 18 Oct 2021
    I agree with all the benefits of mypy cited in this article. For me, most important thing for the long-term health of a codebase is its readability/maintainability, and mypy static typing makes such a huge difference for that in large Python codebases. I'm really excited to see large libraries doing this migration.

    I'll add for folks thinking about this transition that we took a pretty different strategy for converting Zulip to be type-checked: https://blog.zulip.com/2016/10/13/static-types-in-python-oh-...

    The post is from 2016 and thus a bit stale in terms of the names of mypy options and the like, but the incremental approach we took involved only using mypy's native exclude tooling, and might be useful for some projects thinking about doing this transition.

    One particular convention that I think many other projects may find useful is how we do `type: ignore` in comments in the Zulip codebase, which is to have a second comment on the line explaining why we needed a `type: ignore`, like so:

    * # type: ignore[type-var] # https://github.com/python/typeshed/issues/4234

    * # type: ignore[attr-defined] # private member missing from stubs

    * # type: ignore[assignment] # Apparent mypy bug with Optional[int] setter.

    * # type: ignore[misc] # This is an undocumented internal API

    We've find this to be a lot more readable than using the commit message to record why we needed a `type: ignore`, and in particular it makes the work of removing these with time feel a lot more manageable to have the information organized this way.

    (And we can have a linter enforce that `type: ignore` always comes with such a comment).

  • Python has some useful commands
    1 project | reddit.com/r/ProgrammerHumor | 16 Jul 2021
    Type stub files usually have plenty.
  • I packaged python typeshed annotations to AUR
    1 project | reddit.com/r/archlinux | 7 Jul 2021
    Typeshed is the python annotation to third party libraries. (for example python-toml) For some reason it was missing from both official or AUR. Probably because it did not come with an install script so I had to create my own.
  • Mypy 0.900 Released
    3 projects | reddit.com/r/Python | 9 Jun 2021
    I have a feeling this is an edge case in how the numbers tower works (unlikely) or I don’t understand how the type hints work for int: https://github.com/python/typeshed/blob/c601d5cf3d8968f3dc1fe792bc1da5b43c6a9ed9/stdlib/builtins.pyi#L169
  • Python 3 Types in the Wild: A Tale of Two Type Systems [pdf]
    6 projects | news.ycombinator.com | 14 Apr 2021
    I wonder if that's a mypy issue or more that the typeshed types are bugged, since type shed versions also get shipped (used to?) with new type checker versions.

    https://github.com/python/typeshed

What are some alternatives?

When comparing pyre-check and typeshed you can also consider the following projects:

mypy - Optional static typing for Python

pytype - A static type analyzer for Python code

pyright - Static type checker for Python

flake8

typing - Python static typing home. Contains the source for typing_extensions and the documentation. Also hosts a user help forum.

flask-parameter-validation - Get and validate all Flask input parameters with ease.

NumPy - The fundamental package for scientific computing with Python.

psst - Fast and multi-platform Spotify client with native GUI

mamba - The Fast Cross-Platform Package Manager

librespot - Open Source Spotify client library

isort - A Python utility / library to sort imports.

spot - Native Spotify client for the GNOME desktop