Python 3 Types in the Wild: A Tale of Two Type Systems [pdf]

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • typeshed

    Collection of library stubs for Python, with static types

  • 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

  • PyCall.jl

    Package to call Python functions from the Julia language

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • pyml

    OCaml bindings for Python

  • quarchive

    Traditional "Web 2.0" social bookmarking, with small improvements

  • I've had this problem a few times., For example it happened with the 0.800+ versions. It got stricter, and was more aggressive in finding code (eg small scripts in not in the proper python hierarchy).

    I can't show any of my professional work (no publicly available src) but this side project of mine is locked to 0.790 until I can find time to sort the issues: https://github.com/calpaterson/quarchive/tree/master/src/ser...

    It's hard to classify anything as a "false negative" with mypy since it is very liberal (often unexpectedly so, which I think is one of the sharp edges of gradual typing).

  • doctest

    The fastest feature-rich C++11/14/17/20/23 single-header testing framework

  • Even aside from deliberate backwards-compatibility breaks in the standard, compilers sometimes break compatibility. Both MSVC and GCC 11 have changed their header file transitive includes within the past few years, causing projects (like doctest and Qt5) to stop compiling because they forgot to include headers, which built fine in the past but not anymore. IDK if it's "very common", but it's definitely happening in the wild.

    MSVC: https://github.com/onqtam/doctest/issues/183

    GCC:

    - https://invent.kde.org/qt/qt/qtbase/-/commit/8252ef5fc6d0430...

    - https://invent.kde.org/qt/qt/qtbase/-/commit/cb2da673f53815a...

  • Nuitka

    Nuitka is a Python compiler written in Python. It's fully compatible with Python 2.6, 2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, and 3.11. You feed it your Python app, it does a lot of clever things, and spits out an executable or extension module.

  • That's really neat, I hadn't heard of mypyc!

    How does it compare to Nuitka? https://nuitka.net

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts