Python 3.11.0 final is now available

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

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

    In-house conventions and styles

  • I work on a reasonably large Django project (1M+ LOC) with approximately 100 developers and mostly have a reasonable time debugging. We use mypy, lots of linters (some custom flake8 plugins), and a fairly strict layered architecture[0] that's enforced with tooling[1].

    Without the tooling it's a nightmare. My previous Django project with approx 500k LOC had linting and some typing and that was a mess.

    [0] https://github.com/octoenergy/conventions/blob/master/patter...

  • import-linter

    Import Linter allows you to define and enforce rules for the internal and external imports within your Python project.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • CPython

    The Python programming language

  • About this new asyncio.TaskGroup thing, I found this from Guido on the related GH issue*

    > After some conversations with Yury, and encouraged by the SC's approval of PEP-654, I am proposing to add a new class, asyncio.TaskGroup, which introduces structured concurrency similar to nurseries in Trio.

    I have never used but have been told that Trio's nurseries make it much easier to handle exceptions in asyncio tasks. Does someone more knowledgeable can tell if this will help? Looking at the docs*, this only seems to be a helper when you want to await several tasks at once, so I am not sure this changes much for exception handling.

    * https://github.com/python/cpython/issues/90908

    * https://docs.python.org/3.11/library/asyncio-task.html#task-...

  • Flake8

    flake8 is a python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins to check the style and quality of some python code.

  • That probably won't happen any time soon.

    See https://github.com/PyCQA/flake8/issues/234#issuecomment-1206...

  • redframes

    General Purpose Data Manipulation Library

  • If you like writing chain-able pandas, you should check out: https://github.com/maxhumber/redframes

  • sigstore-website

    Codebase for sigstore.dev

  • For anyone browsing in Android and confused, the signature website has a major design issue hiding the menu button on some devices. You need to scroll the page to the right: https://github.com/sigstore/sigstore-website/issues/132

  • conda

    A system-level, binary package and environment manager running on all major operating systems and platforms.

  • 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
  • celery-types

    :seedling: Type stubs for Celery and its related packages

  • While it's of course not ideal, stub files can help with this issue. For example you can get stubs for Celery that make both `shared_task` and `delay` properly typed: https://github.com/sbdchd/celery-types

  • python-feedstock

    A conda-smithy repository for python.

  • It's already there:

    https://anaconda.org/conda-forge/python

    https://github.com/conda-forge/python-feedstock/pull/577

    Using mamba to create a new encoding called py311 with python 3.11:

        mamba create -n py311 python=3.11

  • django-stubs

    PEP-484 stubs for Django

  • > Yes, there are type stubs for these libraries but they’re either forced to be more strict, preventing use of dynamism, or opt for being less strict but allowing you to use all the library features, at the cost of safety.

    There are type stubs for Django that somewhat avoid these compromises: https://github.com/typeddjango/django-stubs

    To be able to do this they have to use a Mypy plugin though. And even then it's still far from perfect.

  • nogil

    Multithreaded Python without the GIL

  • I'm worried about the speedup

    My understanding is that it's based on the most recent attempt to remove the GIL by Sam Gross

    https://github.com/colesbury/nogil

    In addition to some ways to try to not have nogil have as much overhead he added a lot of unrelated speed improvements so that python without the gil would still be faster not slower in single thread mode. They seem to have merged those performance patches first that means if they add his Gil removal patches in say python 3.12 it will still be substantially slower then 3.11 although faster then 3.10. I hope that doesn't stop them from removing the gil (at least by default)

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