Posts about the programming language that fits your brain.

Available sub-tags here:

Weekly Report, EuroPython 2023

Our new Security Developer in Residence is out and about, and publishes weekly updates on what he’s up to. That inspires me to resume doing the equivalent of those updates. And what better opportunity to do that than on the heels of EuroPython 2023!

Hey, come work with me on CPython full time!

There is a job opening for the Deputy CPython Developer in Residence. You should consider it, it’s an adventure of a lifetime!

I built an AM5 PC for Python-related things

16 cores, 128 GB of RAM, an RTX 3090. Sounds great but… don’t be an early adopter. While I’m pretty stoked about what this new machine lets me accomplish, it was quite painful to get it running.

Weekly Report August 1 - 7

This week I spent helping 3.11.0rc1 get released. This included both reviewing PRs and helping release blockers get resolved. There were two in particular that I spent most time on so I’ll talk briefly about them now.

Weekly Report July 25 - 31

Week in numbers: 3 closed issues, PRs: 6 authored, 22 closed, 1 reviewed.

Weekly Report, June 27 - July 3

Those reports aren’t really looking like blog posts, they are mostly activity logs. This is because my writing focus these days is the EuroPython talk I’ll be giving on July 15th.

Weekly Report, June 20 - 26

Probably the only highlight of the week was removing a long-standing issue with the CLA bot where if a GitHub account didn’t provide a public email, signing the CLA was impossible. Turns out this was a case sensitivity issue 🤦🏻‍♂️

Weekly Report, June 13 - 19

This week was almost entirely focused on iOS build support for CPython. I’m writing a blog post on my adventures with this. I also spent some time with the CLA bot. In terms of pull requests, I barely closed 13.

Weekly Report, June 6 - 12

The week in numbers: 7 closed issues, 1 opened. 47 closed PRs, 4 more reviewed.

Weekly Report, May 16 - 22

I need to return to those logs, it’s been a while since I made one. This one isn’t particularly exciting but puts me back on track!

Weekly Report, November 22 - 28

This was a week where I tried something new. Instead of cutting through tens of shallow PRs, I focused deeply on a single one. I installed Irit Katriel’s GH-29581 to try out PEP 654’s new except* and ExceptionGroup objects.

Weekly Report, November 15 - 21

Pretty typical week that started with a bang: an out of schedule release of Python 3.9 to fix a regression of argparse that turned out to be pretty disruptive for our users.

Weekly Report, November 1 - 7

Python 3.9.8 got released this week! At this point in the 3.9 lifecycle this should be a relatively uneventful release. Instead, it took us a few days of work to get it out of the door. I still managed to squeeze in 51 closed PRs and even organized a meeting between the core developers and Daan Leijen, the author of mimalloc.

Weekly Report, October 25 - 31

This week I spent most time mentoring as well as reviewing PRs. No highlights this time as the report’s late as is, sorry.

Weekly Report, October 18 - 24

Core developer sprint week! Apart from reviewing and merging pull requests through the week, I did a bunch of project management things.

Notes From the Meeting On Python GIL Removal Between Python Core and Sam Gross

During the annual Python core development sprint we held a meeting with Sam Gross, the author of nogil, a fork of Python 3.9 that removes the GIL. This is a non-linear summary of the meeting.

PEP 563 and PEP 649

As the author of PEP 563, I can summarize my position as follows: had PEP 563 never been implemented, it would be easy to accept PEP 649. However, in the current situation it’s not that clear because I find it very important to allow writing a single codebase that works on Python 3.7 - 3.11. If we can secure this behavior, I’m +1 to accepting PEP 649. If not, I have an alternative idea.

Where does all the effort go? Looking at Python core developer activity

One of the tasks given me by the Python Software Foundation as part of the Developer in Residence job was to look at the state of CPython as an active software development project. What are people working on? Which standard libraries require most work? Who are the active experts behind which libraries? Those were just some of the questions asked by the Foundation. In this post I’m looking into our Git repository history and our Github PR data to find answers.

Weekly Report, October 11 - 17

Very few merged PRs this week as I focused on pushing the report out. And it’s out 😅

Weekly Report, October 4 - 10

This week Pablo released Python 3.10.0. I was part of the “small” release party that ended up bringing a live audience of 400 people on YouTube, Guido included. It was a pleasure.

Weekly Report, September 27 - October 3

Another week gone by, and fast! This week I spent almost entirely on analyzing the Github contributor activity data. The blog post on it is still not finished yet, data quality turned out to be an issue so I had to redo parts of that. And between you and me, I’m a relatively slow coder.

Weekly Report 2021, September 20 - 26

This week in numbers: closed 13 issues, closed 46 PRs, and reviewed 7.

Weekly Report 2021, September 13 - 19

This week in numbers: closed 8 issues, authored 1 PR, closed 49 PRs, and reviewed 6. No highlights this time since I badly hoped to be able to squeeze in some work on Saturday but that turned out not to be possible (it’s birthday season in my family).

Weekly Report 2021, September 6 - 12

Slower week this time as Monday was off due to US Labor Day. Apart from reviewing and merging pull requests, I spent some time on Thursday getting to know Datasette, fiddling with the SQLite data format to find one that lends itself best to analytical queries, and making sure that the dataset can be periodically updated. I’ll be writing a separate post with the findings from that.

Weekly Report 2021, August 30 - September 5

Slower week in terms of pull requests as I coded more myself and did some release management work.

Weekly Report 2021, August 23 - 29

I spent the week preparing for releases of Python 3.9.7 and 3.8.12 next week. Namely, making sure that pending security content is merged and including other high-profile fixes.

Weekly Report 2021, August 16 - 22

This week my family and I visited the Polish seaside. Since I’m admittedly not a big fan of doing nothing at the beach for 8+ hours a day for a week, I decided to just keep working for that week. I figured that since I was already remote, being a little more remote this week won’t make much difference.

Weekly Report 2021, August 9 - 15

Can you believe it? I’ve been doing this for a full month now! More deep dives this week. Mostly around making reference leak tests run on macOS, which I need to be able to check PRs locally before landing them. This will take at least another week to get right. I also made progress on gathering data from all Github PRs which will allow us to answer some interesting questions about our behavior as a team.

Weekly Report 2021, August 2 - August 8

While this week I wasn’t sprinting so crazily towards beating the 1,400 open PRs, we managed to keep the number of PRs around that line. In fact, I deliberately spent more time this week to do more coding.

Weekly Report 2021, July 26 - August 1

This week I tried to drop the open pull request count below 1,400. This was a grueling task and I barely succeeded.

Weekly Report 2021, July 19 - 25

Second week passed as fast as the first one, if not faster. This time I dug into more non-trivial issues. While most were around typing, there was also quite a bit of C involved. Also, we were able to close Dennis’ PR to speed up fastsearch.h (bytes.find is now 22%+ faster on real-world data).

Weekly Report 2021, July 12 - 18

First week of work done. While there are bigger overarching goals for the role, this week I decided to dive right into PR review which looking at our growing open PR numbers needs more help.

I am the new CPython Developer in Residence

This is some of the most amazing news in the past few years for me. Python needs full-time development to stay competitive, I’ve been talking about this for years, dreaming about it for even longer than that. Now it’s becoming a reality. Today is my first day. It’s both scary and exciting.

Why does `Black` insist on reformatting my entire project?

Some thoughts about why Black recommends adopting it by reformatting your entire codebase in one go and refuses to do “region reformatting”. This started as a tweet but there’s a bit too much content for 280 characters.

Why the sad face?

When you first encounter Black, a few things about it might surprise you. One of the those things might be "sadface dedent", the style in which closing parentheses in function signatures and other block headers are put on its own line. I arrived at this formatting style long before creating the auto-formatter. It’s got a few objective advantages.

Zen of Python, Again

There used to be a different blog here which I started in March 2012. The first entry was called “The Zen of Python and Me” where I went through each of the koans and explained what it meant to my day-to-day Python programming. What changed since then?