Pinned
I wrote this to share everything I know about building great SDKs! open.substack.com/pub/pragmati...
Quentin Pradet
@quentin.pradet.me
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
1.1K followers164 following152 posts
Pinned
I wrote this to share everything I know about building great SDKs! open.substack.com/pub/pragmati...
Quentin Pradet reposted
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...
Quentin Pradet reposted
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...
Quentin Pradet reposted
@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.
TLDR; The PSF has made the decision to put our community and our shared diversity, equity, and inclusion values ahead of seeking $1.5M in new revenue. Please read and share. pyfound.blogspot.com/2025/10/NSF-... 🧵
Quentin Pradet reposted
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...
Quentin Pradet reposted
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
Since PyCon Africa is affected by the PSF Grants pause, I am hopeful that donation tickets can make a difference.
🎟️ Donation Ticket Now Available! Support PyCon Africa 2025 by purchasing a Donation Ticket, attend the conference and help us bring more developers from across Africa. 👉 za.pycon.org/tickets @python.org @za.pycon.org
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
I wrote this to share everything I know about building great SDKs! open.substack.com/pub/pragmati...
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...
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.)
The Python Steering Council is pleased to announce that the Free-Threading project is no longer considered experimental! discuss.python.org/t/pep-779-cr...
The Python Elasticsearch client works too. I tested it back in December: discuss.elastic.co/t/dec-4th-20...
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/...
Another (minor) issue: you can't document enum members individually but need to describe them all at once: swagger.io/docs/specifi... To avoid this, OpenSearch uses oneOf instead in its OpenAPI specification, but it's less explicit.
It looks like mapping the new syntax to the Elasticsearch DSL, which natively supports nested queries and boolean operators, was the easy part. Elasticsearch has lots of features, yes, but it is to support advanced usages like this one!
Nice clear explanation of how GitHub roll out new implementations of features out that get 2,000 queries a second - including dark-shipping to 1% of users where the new implementation is invisibly compared with the production one via a background job
Quentin Pradet reposted
Facebook are launching a new type checker written in rust. pyrefly.org
Quentin Pradet reposted
Thank you @americanexpress.bsky.social for sponsoring urllib3 and helping improve critical Python internet infrastructure. I know it takes a lot of activation energy for a large company to sponsor an amount like this, so I extra appreciate whoever did the leg work on this. 🙏
Quentin Pradet reposted
Quentin Pradet reposted
PEP 751 has been accepted! peps.python.org/pep-0751/ This means #Python now has a lock file standard that can act as an export target for tools that can create some sort of lock file. And for some tools the format can act as their primary lock file format as well instead of some proprietary format.
Quentin Pradet reposted
Quentin Pradet reposted
It's here! The 2024 annual report for #urllib3, a relatively quiet year that included work on HTTP/2 and Web Assembly (WASM). $3,300 worth of bounty issues exist today! quentin.pradet.me/blog/urllib3...
Quentin Pradet reposted
Tidelift, @microsoft.com, LaunchDarkly, @sentry.io, @sourcegraph.com, Canva, and @codecov.bsky.social all supported urllib3 in 2024. Thank you!
10 years ago, as part of my PhD, I launched a small PHP 5 application online. It's still up! Now using PHP 8. I intend to keep it online for a few more decades. Cool URIs don't change. Part of the trick is @alwaysdata.bsky.social, my hosting provider, which handles database and system upgrades.
📦 urllib3 2.3.0 is now available! It supports the WebAssembly JSPI API (enabling experimental Node.js support) and adds `HTTPResponse.shutdown()` (thanks to LaunchDarkly for sponsoring this feature). github.com/urllib3/urll... Note that we're still raising funds for full HTTP/2 support!
@gergely.pragmaticengineer.com has this impressive page listing early trends he identified: blog.pragmaticengineer.com/early-trends/. Here's one more: GenAI tools are heavily subsidized (newsletter.pragmaticengineer.com/p/ide-that-s...), so we'll see more expensive subscriptions like ChatGPT Pro.
What this also means is that urllib3 works great with free-threaded Python! 🎉 I am sure it will expose some subtle concurrency bugs that exist already. But before we can have CI, we need cryptography wheels as we use it to generate test certificates.
📣 @quentin.pradet.me wrote 'Does the #Elasticsearch #Python client works with free-threaded Python (no-GIL)?' for the @elastic #AdventCalendar ▶️ https://discuss.elastic.co/t/370392. 🎅🏼🎄🎁
Quentin Pradet reposted
📣 @quentin.pradet.me wrote 'Does the #Elasticsearch #Python client works with free-threaded Python (no-GIL)?' for the @elastic #AdventCalendar ▶️ https://discuss.elastic.co/t/370392. 🎅🏼🎄🎁
Trying #Python 3.13 free-threading builds with uv is as easy as specifying `--python 3.13t`. If you don't have such an interpreter available, uv will download a standalone build for you! The full list of options to install 3.13t builds is here: py-free-threading.github.io/installing_c...
I really enjoyed this talk and the fun anecdotes around #Python packaging! The highlight for me was @burntsushi.net making `uv pip compile` 3x faster by representing most versions as a single u64 integer, making comparisons much cheaper.
Jane Street recently restarted our tech talk series after a pandemic-driven hiatus. Our first talk was from Charlie Marsh of Ruff fame, talking about how they made uv, their new package manager for Python, so fast! youtu.be/gSKTfG1GXYQ?...
Time flies: urllib3 is fully type annotated since 2021! sethmlarson.dev/tests-arent-... Since then, maintaining the types has been easy despite our growth. And they kept paying dividends, just like our decision of enforcing 100% coverage. #Python #SoftwareEngineering
Quentin Pradet reposted
I can highly recommend following @gergely.pragmaticengineer.com for the useful software engineering insights and info on the latest industry trends!
Bluesky never felt so active as it has, the last few days. It's great to be here! (I'm here for software engineering and tech topics - both following these, and sharing more about them. I write The Pragmatic Engineer and host the podcast with the same name. E.g. a recent article)
If anyone has a reason to hype up language interfaces and LLMs, it’s @inesmontani.bsky.social—founder of Explosion, the company behind the Python NLP tools spaCy and Prodigy. But her take? Sometimes, a simple form does the job better. Let’s build more alarm clocks and less automated window knockers!
📝 "The Window-Knocking Machine Test" 👤 Ines Montani 🔗 https://ines.io/blog/window-knocking-machine-test #pyladies #python
Quentin Pradet reposted
Happy to say that this year we're up to 750k USD in paying Open Source maintainers. blog.sentry.io/we-just-gave...
This is your periodic reminder that you should use trustme for your test TLS certificates. They're compatible with all major operating systems while passing all the checks introduced by the `VERIFY_X509_STRICT` validation that was enabled in Python 3.13! trustme.readthedocs.io/en/latest/
Quentin Pradet reposted
go.bsky.app/LAkKWpR If you’re a Python person, wave frantically so I can add you to my Python starter pack!
You are up to date.