Latest post is a big one: "Why you shouldn't invoke setup.py directly"
A lot of people don't know about this because we haven't been great about getting the word out. This blog post is in part an attempt to remedy this.
Please help spread the word!
https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html
From the archives of my blog but still very relevant: "pytz: The Fastest Footgun in the West", about why you probably shouldn't be using pytz:
https://blog.ganssle.io/articles/2018/03/pytz-fastest-footgun.html
Being a museum attendant seems very boring, so to make their jobs more interesting, whenever you walk out of a gallery with a lot of people going into it, loudly say to your companions, "My favorite part of that exhibit was how you were allowed to touch all the art!" #randomactsofkindness
Several deadlines are approaching for deprecated setuptools features
30th Aug
- bdist_wheel with universal=True
15th Oct
- Running `setup.py test`
- subclassing wheel.bdist_wheel
31st Oct
- Running `setup.py <anything>`
- setuptools.command.easy_install, setuptools.installer, fetch_build_eggs
For more info and migration guidence see
- https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html
- https://packaging.python.org/en/latest/guides/modernize-setup-py-project/
Thanks to PyPA and everyone involved for their dedication and hard slog.
Are you in Boston and want to hang with #Python people? Boston Python's project & collaboration night is June 24th. It's an informal gathering to talk together, work together, learn from each other, network, whatever. Tell your friends :)
The "faster CPython" team at Microsoft was recently dissolved. My position at Microsoft was eliminated. If anyone has a reason to be disappointed in this, it's me.
So it feels okay for me to ask you to refocus any disappointment you might have about Microsoft's decision. Let's be grateful for a big Python user actually laying down meaningful cash for 4 years in support of a volunteer-driven community project! Let's express our frustration instead in how that doesn't happen more often!
General PSA: don’t apply for a job at Canonical. Do NOT apply for a job at Canonical. Treat the blatantly artificially enormous number of job openings they post as the mirages of trickster fae. They are unhinged. Mark Shuttleworth is unhinged. They will drag you through the mud, disrespect you and your time, and definitely not give you a job. This article I saw today is like the thirteenth of its kind that I personally have seen https://dustri.org/b/my-experience-with-canonicals-interview-process.html
@jonafato Add mine to the pile please? :)
https://www.feoh.org/posts/pycon-us-2025-this-year-was-a-life-changer.html
Was really great meeting you in person today. Thanks so much for introducing yourself!
Interesting to see how everyone is lamenting the demise of Pocket, but I haven't seen anyone mention that when Pocket was added to Firefox it seems like a lot of people were up in arms about how a proprietary service was being forced on Firefox users.
I'm guessing it's different people in each case but I'm a little surprised to see no one saying, "Good, we all hated that thing anyway" (since that had seemed like the common sentiment before the shutdown - I never heard anyone praise Pocket before this).
Photo: All future Python talk attendees after watching Pablo and Yury's PyCon US talk.
Just want to say congrats to @elthenerd and @jonafato for their successful first year chairing PyCon US 👏🏻 Very well done! I hope you all get to take a break now before starting to plan next year's conference 😊
#PyConUS
My presentation about using rust from python from PyConUS got published very quickly this year 😁
https://youtu.be/CqOZdTFb4io?si=uu6TtfmV335ihaSE
I'll be at #PyConUS sprints today and Wednesday.
I am beginning the process of replacing my ThinkPenguin laptop battery in case anyone here wants to help - am in room 308 currently.
PyCon was lots of fun! The slides for my talk on processing large JSON files without running out of memory:
https://pythonspeed.com/pycon2025/slides/
Looking forward to videos getting posted so I can watch all the talks I ended up missing due to scheduling conflicts/practicing my talk/getting lost/meeting someone in the hallway.
While I missed the remaining talks today, on my flight back from #PyConUS I was quite productive and made a new thing!
https://pyref.dev is a fast, convenient way to access Python reference docs.
It's also available as a CLI tool (pip install pyrefdev).
May as well throw this query out to the fediverse.
I am looking for *concrete examples* of code that works correctly when interpreted by Python 2.7 but *silently produces incorrect output* when interpreted by Python 3.x. I encountered such a thing about 10 years ago but didn't save it and have been unable to reconstruct it.
All examples are good, but examples that produce output from which it's difficult or impossible to recover the correct output are better.
Thanks @masonasons for the tip that yt-dlp can download from RSS feeds. Here's the command I came up with to download all available podcast items from a feed in chronological order (oldest first) to nicely numbered files with the title and date.
yt-dlp --no-abort-on-error --color "no_color" --download-archive ".download_history" --windows-filenames --embed-metadata --embed-chapters --playlist-items "::-1" --output "%(n_entries+1-playlist_index)02d %(title)s (%(upload_date>%B %d %Y)s).%(ext)s" --format bestaudio "https://example.com/rss"
Programmer working at Google. Python core developer and general FOSS contributor. I also post some parenting content.