Sign in

Quentin Pradet

@quentin.pradet.me
1.2K followers 164 following 152 posts

I like maintaining things: the Elasticsearch Python clients by day, urllib3 and trustme by night. I write about #Python, HTTP, async/await, open source and performance! he/him

PostsRepliesMedia
Reposted by Quentin Pradet
Seth Larson @sethmlarson.dev · 30/09/2026
I've just published 10 blog posts detailing the #Python Language Summit 2026. The Language Summit was held in Kraków, Poland and included discussions about free-threading, #Rust, garbage collectors, and type annotations. Please enjoy and thank you for your patience: blog.python.org/2026/09/lang...
Group photo of the attendees of the 2026 Python Language Summit. Notably, Larry Hastings is laying flat on the ground with his eyes closed.
2107
Quentin Pradet @quentin.pradet.me · 25/09/2026
urllib3 is up there too, with exactly the same ratio, while having been around for much longer
010
Quentin Pradet @quentin.pradet.me · 26/08/2026
Human heat?
010
Reposted by Quentin Pradet
Marcelo Trylesinski @marcelotryle.bsky.social · 29/05/2026
Last week I published a security advisory for Starlette, and the project got hit with a wave of negative press. So I wrote down my perspective as the maintainer. marcelotryle.com/blog/2026/05...
marcelotryle.com
CVE-2026-48710: A Maintainer's Perspective - Marcelo Trylesinski
052
Quentin Pradet @quentin.pradet.me · 06/11/2025
Apparently drag and drop works
000
Quentin Pradet @quentin.pradet.me · 06/11/2025
QuickTime!
100
Quentin Pradet @quentin.pradet.me · 28/10/2025
To be fair they "just" ported pyupgrade to Rust
110
Reposted by Quentin Pradet
Loren @lorencrary.bsky.social · 27/10/2025
@sethmlarson.dev and I went through months of intense, complex work to climb a steep and slippery learning curve, only to be stopped short at the very end by a hard ethical line we couldn't cross—it was gut-wrenching. I'm proud of what we did and I'm proud of what we didn't do.
45714
Reposted by Quentin Pradet
Seth Larson @sethmlarson.dev · 01/10/2025
This post was 5 years in the making, @shazow.net and I made a bet about whether "six", the Python 2/3 compatibility shim, would still be a popular package in 2025: sethmlarson.dev/winning-a-be...
sethmlarson.dev
Winning a bet about “six”, the Python 2 compatibility shim
Exactly five years ago today Andrey Petrov and I made a bet about whether “six”, the compatibility shim for Python 2 and 3 APIs, would still be in the top 20 daily downloads on PyPI. I said it woul...
083
Quentin Pradet @quentin.pradet.me · 24/09/2025
Couldn’t agree more! Also the Bluesky automation is fixed 🥳
110
Quentin Pradet @quentin.pradet.me · 03/09/2025
Example Discuss thread: discuss.python.org/t/fiscal-pro...
discuss.python.org
Fiscal projection: PSF will default by 2027 - 50% salary increases, salaries >170.000, multimillion pycon US losses, costly consultancy contracts
Unofficial financial projections based on public documents (tax forms) etc. Thread dedicated purely to fact finding and making financial projections. I suggest to focus only on facts in this thread. ...
020
Quentin Pradet @quentin.pradet.me · 03/09/2025
Hey Trey, did you notice your automated Bkuesky posts suffer from encoding issues?
100
Reposted by Quentin Pradet
Cult.Repo @cultrepo.bsky.social · 29/08/2025
Our Python doc is officially out in the wild! 🐍 Thanks to everyone who joined the premiere 🙌 such a good vibe. Here’s the link so you can watch it on repeat youtu.be/GfH4QL4VqJ0
youtu.be
Python: The Documentary | An origin story
YouTube video by CultRepo (formerly Honeypot)
57735
Quentin Pradet @quentin.pradet.me · 16/08/2025
Wow, that sounds nice! I immediately thought about Bluey.
Bluey screenshot where Bandit swings Bingo. The swing is hung on a tree.
020
Quentin Pradet @quentin.pradet.me · 12/08/2025
Since PyCon Africa is affected by the PSF Grants pause, I am hopeful that donation tickets can make a difference.
021
Quentin Pradet @quentin.pradet.me · 11/08/2025
Great post! Python supports else in loops, but only if there was no break! It’s terribly confusing: docs.python.org/3/tutorial/c...
docs.python.org
4. More Control Flow Tools
As well as the while statement just introduced, Python uses a few more that we will encounter in this chapter. if Statements: Perhaps the most well-known statement type is the if statement. For exa...
010
Quentin Pradet @quentin.pradet.me · 05/08/2025
Disqus showing ads on my blog was the last straw for me. I thought about storing comments on GitHub with utterances/giscus, but ended up on Commento. They have a generous free tier, don't track their users, and are trusted by Mozilla. Switching took only 10 minutes! commento.io
commento.io
Commento
Add comments to your website with Commento. It's fast, modern, and privacy-focused.
050
Quentin Pradet @quentin.pradet.me · 05/08/2025
Looks like a much nicer solution than femtocell which is available commercially in France since 2009! korben.info/les-femtocel...
korben.info
Les Femtocell de SFR mises à mal | Le site de Korben
SFR a mis sur le marché, en 2009, un appareil destiné aux personnes qui captent mal la 3G, de profiter d’un relais local qui fait transiter les ...
100
Quentin Pradet @quentin.pradet.me · 03/08/2025
Crafting Interpreters! craftinginterpreters.com
craftinginterpreters.com
Crafting Interpreters
010
Quentin Pradet @quentin.pradet.me · 29/07/2025
You can only read the first two parts if you’re not a paid subscriber, but this companion piece is freely available on my blog: quentin.pradet.me/blog/how-ela...
quentin.pradet.me
How Elastisearch and OpenSearch built their SDKs
021
Quentin Pradet @quentin.pradet.me · 29/07/2025
I wrote this to share everything I know about building great SDKs! open.substack.com/pub/pragmati...
open.substack.com
Building great SDKs
A guide to creating SDKs that devs – and LLMs – will find a breeze to use, plus an overview of modern approaches for building and maintaining SDKs. By veteran SDK engineer, Quentin Pradet
170
Quentin Pradet @quentin.pradet.me · 28/07/2025
À La Réunion on l’appelle de plus en plus l’hexagone, et j’aime bien, c’est court, neutre et efficace.
000
Quentin Pradet @quentin.pradet.me · 26/07/2025
This is a tragedy, but correlation is not causation. Kids roam less and less in the UK (say) despite pedestrian casualties being down.
000
Quentin Pradet @quentin.pradet.me · 21/07/2025
Interesting, thanks! The exit code 120 comes from Python: bugs.python.org/msg284536
bugs.python.org
Message 284536 - Python tracker
110
Quentin Pradet @quentin.pradet.me · 04/07/2025
We care about deepening our understanding of the language, which makes the question and resulting answer indeed very interesting! Thank you
010
Quentin Pradet @quentin.pradet.me · 29/06/2025
> As of August 2024, the new app has a 1.3 point review average on Google Play. In January 2025, Sonos announced the resignation of its CEO Patrick Spence over the app update debacle. en.m.wikipedia.org/wiki/Sonos
en.m.wikipedia.org
Sonos - Wikipedia
010
Quentin Pradet @quentin.pradet.me · 23/06/2025
Wow the packaging tries hard to convey luxury. Also European biscuits is fun. In France where this comes from the packaging is much more… playful
A box of Petit écolier biscuits, as sold in France.
000
Quentin Pradet @quentin.pradet.me · 20/06/2025
Ah, the joys of cross-border rail. Still, thank you for doing this.
100
Quentin Pradet @quentin.pradet.me · 18/06/2025
When in the US I was localized in Hong Kong and now in Reunion Island I was localized in Japan for a few weeks. Got ads in Japanese and even YouTube blocked some videos. Super annoying.
010
Quentin Pradet @quentin.pradet.me · 17/06/2025
J’ai mis du temps à comprendre que ce n’était pas mon téléphone qui avait caché la fin du texte 😅
100
Quentin Pradet @quentin.pradet.me · 16/06/2025
The Python Elasticsearch client works too. I tested it back in December: discuss.elastic.co/t/dec-4th-20...
discuss.elastic.co
Dec 4th, 2024: [EN] Does the Elasticsearch Python client work with free-threading Python?
Cet article est disponible en français. In this post, we'll run some experiments to see if the Python Elasticsearch client is compatible with the new Python 3.13 free-threading builds, where the GIL ...
021
Quentin Pradet @quentin.pradet.me · 16/06/2025
Exciting! Free-Threading builds are here to stay. The adoption has been incredibly fast so far. (urllib3 works with free-threading, but still need cryptography to add support before we can test it in CI.)
100
Quentin Pradet @quentin.pradet.me · 13/06/2025
Bluey is thoughtful too!
020
Quentin Pradet @quentin.pradet.me · 12/06/2025
This talk is incredible. In 30 minutes, a binary search implementation is sped up by 25x using profiling tools, including L1 cache and pipeline stall analysis. While the tools are Apple-specific, the concepts are general and apply everywhere. developer.apple.com/videos/play/...
developer.apple.com
Optimize CPU performance with Instruments - WWDC25 - Videos - Apple Developer
Learn how to optimize your app for Apple silicon with two new hardware-assisted tools in Instruments. We'll start by covering how to...
071
Quentin Pradet @quentin.pradet.me · 09/06/2025
In the past nine months, three companies (Speakeasy, Stainless, and Fern) have collectively raised $49M to bring SDK and docs generation to everyone. Why now? I have no idea. After all, this has nothing to do with AI, and OpenAPI Generator has been popular for years.
010
Quentin Pradet @quentin.pradet.me · 06/06/2025
Not familiar enough with weak refs to tell! Thanks for the tip.
000
Quentin Pradet @quentin.pradet.me · 06/06/2025
I maintain the Python Elasticsearch client, and github.com/elastic/elas... is more complicated to fix than I thought. I'd be happy to provide more details if that sounds useful to you. (Not a lot of lines are affected, but it does require complex reasoning, mainly to keep backwards compatibility.)
github.com
Fix cyclic dependency between clients and sub clients by pquentin · Pull Request #2858 · elastic/elasticsearch-py
While the Python GC can handle those dependencies, it can cause latency spikes when .option() is used for each query, which causes many clients to be garbage collected, which can be slower in the p...
100
Quentin Pradet @quentin.pradet.me · 06/06/2025
Ah, I thought the initial examples were about the standard library. Using the fully qualified name (`better_dedent.dedent`) would clarify even if it’s uglier.
110
Quentin Pradet @quentin.pradet.me · 06/06/2025
Thanks! For the record it starts at 19:03
030
Quentin Pradet @quentin.pradet.me · 06/06/2025
The thing is I am more interested in how it works at a larger scale, which is supposed to be the point? Like adding a feature to an open source project with 100k lines of code or more.
120
Quentin Pradet @quentin.pradet.me · 06/06/2025
Nice! I am a bit confused at the README which says 1/ the standard library handles t-strings fine but not f-strings and 2/ better-dedent is about t-strings.
100
Quentin Pradet @quentin.pradet.me · 03/06/2025
The overhaul is a mess but we do have a clear plan to fix things. It will take time but the end result will be better. Note that developers internally still write docs and complained as much as external users!
010
Quentin Pradet @quentin.pradet.me · 02/06/2025
I should be working on that one issue but am planning that next trip!
010
Quentin Pradet @quentin.pradet.me · 28/05/2025
I can recommend anything written by Martha Wells or Christopher Paoloni in the last 10 years. They both write fantasy and science fiction.
030
Quentin Pradet @quentin.pradet.me · 28/05/2025
Thank you for sharing that idea with me, by the way. I should have attributed it to you!
100
Quentin Pradet @quentin.pradet.me · 27/05/2025
Just like object-relational impedance mismatch, OpenAPI-based SDKs work well enough until they don't, at which point extraordinary effort is needed to connect the dots.
000
Quentin Pradet @quentin.pradet.me · 27/05/2025
Another (major) issue: OpenAPI relies on JSON Schema, a data validation language. It is hard to go from a collection of oneOf and anyOf to actual request and response types in a given programming language. It works well enough for simple cases, so many projects still try.
110
Quentin Pradet @quentin.pradet.me · 27/05/2025
I tried Python at some point but too active for me. And am considering joining CubeHead as I am getting into Rubik’s Cube to bond with my 6yo.
000
Quentin Pradet @quentin.pradet.me · 27/05/2025
I try to join as few as possible because I can't keep things unread. But I have known students joining hundreds of them. Right now I am on urllib3 (which is where we speak between maintainers, there is not much public activity) and Kludex (uvicorn and starlette).
100
Quentin Pradet @quentin.pradet.me · 27/05/2025
Probably Discord, but then you have to join the relevant servers, not too unlike IRC actually
140