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
  • Sonar - Write Clean Python Code. Always.
  • InfluxDB - Access the most powerful time series database as a service
  • SaaSHub - Software Alternatives and Reviews
  • conventions

    In-house conventions and styles (by octoenergy)

    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.

  • Sonar

    Write Clean Python Code. Always.. Sonar helps you commit clean code every time. With over 225 unique rules to find Python bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.

  • 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.

  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • 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