all written video podcast

  • Why pylock.toml includes digital attestations - Brett Cannon

    Why pylock.toml includes digital attestations - Brett Cannon

    2026-03-26
    A Python project got hacked where malicious releases were directly uploaded to PyPI. I said on Mastodon that had the project used trusted publishing with digital attestations, then people using a pylock.toml file would have noticed something odd was...
  • State of WASI support for CPython: March 2026 - Brett Cannon

    State of WASI support for CPython: March 2026 - Brett Cannon

    2026-03-02
    It's been a while since I posted about WASI support in CPython! 😅 Up until now, most of the work I have been doing around WASI has been making its maintenance easier for me and other core developers. For instance, the cpython-devcontainer repo now...
  • CLI subcommands with lazy imports - Brett Cannon

    CLI subcommands with lazy imports - Brett Cannon

    2026-02-21
    In case you didn't hear, PEP 810 got accepted which means Python 3.15 is going to support lazy imports! One of the selling points of lazy imports is with code that has a CLI so that you only import code as necessary, making the app a bit
  • Should I rewrite the Python Launcher for Unix in Python? - Brett Cannon

    Should I rewrite the Python Launcher for Unix in Python? - Brett Cannon

    2025-11-22
    I want to be upfront that this blog post is for me to write down some thoughts that I have on the idea of rewriting the Python Launcher for Unix from Rust to pure Python. This blog post is not meant to explicitly be educational or enlightening for others, but
  • The varying strictness of TypedDict - Brett Cannon

    The varying strictness of TypedDict - Brett Cannon

    2025-11-20
    I was writing some code where I was using httpx.get() and its params parameter. I decided to use a TypedDict for the dictionary I was passing as the argument since it was for a REST API, where the potential keys were fully known. I then ran Pyrefly over my
  • Why it took 4 years to get a lock files specification - Brett Cannon

    Why it took 4 years to get a lock files specification - Brett Cannon

    2025-10-11
    (This is the blog post version of my keynote from EuroPython 2025 in Prague, Czechia.)We now have a lock file format specification. That might not sound like a big deal, but for me it took 4 years of active work to get us that specification. Part...
  • Unravelling t-strings - Brett Cannon

    Unravelling t-strings - Brett Cannon

    2025-05-16
    PEP 750 introduced t-strings for Python 3.14. In fact, they are so new that as of Python 3.14.0b1 there still isn't any documentation yet for t-strings. 😅 As such, this blog post will hopefully help explain what exactly t-strings are and what you might use
  • Why I won't be attending PyCon US this year - Brett Cannon

    Why I won't be attending PyCon US this year - Brett Cannon

    2025-03-07
    I normally don't talk about politics here, but as I write this the US has started a trade war with Canada (which is partially paused for a month, but that doesn't remove the threat). It is so infuriating and upsetting that I will be skipping PyCon
  • My impressions of Gleam - Brett Cannon

    My impressions of Gleam - Brett Cannon

    2025-01-23
    When I was about to go on paternity leave, the Gleam programming language reached 1.0. It's such a small language that I was able to learn it over the span of two days. I tried to use it to convert a GitHub Action from JavaScript to Gleam,
  • What the PSF Conduct WG does - Brett Cannon

    What the PSF Conduct WG does - Brett Cannon

    2024-11-26
    In the past week I had two people separately tell me what they thought the Python Software Foundation Conduct WG did and both were wrong (and incidentally in the same way). As such, I wanted to clarify what exactly the WG does for people in case...
  • Don't return named tuples in new APIs - Brett Cannon

    Don't return named tuples in new APIs - Brett Cannon

    2024-11-02
    In my opinion, you should only introduce a named tuple to your code when you're updating a preexisting API that was already returning a tuple or you are wrapping a tuple return value from another API.Let's start with when you should use named...
  • My impressions of ReScript - Brett Cannon

    My impressions of ReScript - Brett Cannon

    2024-06-22
    I maintain a GitHub Action called check-for-changed-files. For the purpose of this blog post what the action does isn't important, but the fact that I authored it originally in TypeScript is. See, one day I tried to update the NPM dependencies....
  • Saying thanks to open source maintainers - Brett Cannon

    Saying thanks to open source maintainers - Brett Cannon

    2024-06-11
    After signing up for GitHub Sponsors, I had a nagging feeling that somehow asking for money from other people to support my open source work was inappropriate. But after much reflection, I realized that phrasing the use of GitHub Sponsors as a way to...
  • State of WASI support for CPython: March 2024 - Brett Cannon

    State of WASI support for CPython: March 2024 - Brett Cannon

    2024-03-17
    The biggest update since June 2023 is WASI is now a tier 2 platform for CPython! This means that the main branch of CPython should never be broken more than 24 hours for WASI and that a release will be blocked if WASI support is broken. This only applies to
  • An experimental pip subcommand for the Python Launcher for Unix - Brett Cannon

    An experimental pip subcommand for the Python Launcher for Unix - Brett Cannon

    2024-01-03
    There are a couple of things I always want to be true when I install Python packages for a project:I have a virtual environmentPip is up-to-dateFor virtual environments, you would like them to be created as fast as possible and (usually) with the...