social.dk-libre.fr is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.
This server runs the snac software and there is no automatic sign-up process.
Python Tip #134 (of 365):
Use looping helpers
Python's "for" loops are simple: they loop over an iterable one item at a time.
That's all they can do.
Because our "for" loops are so simple and iterable-centric, looping helpers are a VERY big deal in Python.
We use enumerate to count upward while looping, reversed to loop in the reverse direction, and zip to loop over multiple iterables at the same time.
🧵 (1/2)
Today I am proud to announce that Phase One of my wildlife conservation project is complete.
This project is personal. I come from a family of farmers and wildlife rangers. Conservation is not just a cause for me, it is my heritage. After losing my job, I spent months in the fields, mountains, and valleys of our beautiful land, Namibia, talking to my community, listening, and building.
The road has not been easy. The project faces a serious challenge: funding. I have exhausted my budget. On top of that, my ideas are being taken by those in power, people who know that without their approval, the project cannot move forward. That is the biggest obstacle I face.
And yet, at the end of it all, if this project never sees the light of day, I will still be proud that I tried. Proud that Django and Python were the tools I chose. Proud that the open-source community walked this road with me.
I am also still open to job opportunities though.
Thank you, Django community. Thank you, Python community, Thank you, Ubuntu community.. You gave me the tools and the encouragement. This is as much yours as it is mine.
#Django #Python #OpenSource #WildlifeConservation #Africa
@django@fosstodon.org @django@kowelenz.social @djangocon @ThePSF @CodenameTim
After we started our fork of httpx called httpxyz six weeks ago, the Pydantic team yesterday published their own fork, httpx2. While currently our fork is still a little more 'advanced' we will bless their version. We are sure it will be the best HTTPX fork pretty soon!
After 20 hours of traveling, I finally arrived at the hotel in Long Beach for the conference 🌍
Already met a few friends, took some selfies, and had a first quick look around the city.
So far, Long Beach looks really beautiful ☀️
#PyConUS #PyCon #PyConUS2026 #Python #OpenSource #Community #Conference #US
La prochaine #PyConFR sera à Biarritz !
https://linuxfr.org/users/chadys/liens/la-prochaine-pyconfr-sera-a-biarritz
Si votre boite ou si vous connaissez une boite qui peut sponsoriser une conférence #Python, #need
It's time for #PyConUS! We're in Long Beach, California, near one of the most active ports in the world.
As such, Bamboo Weekly's challenges are about the Port of Long Beach — how much traffic it gets, what is imported, and from where.
Level up your #Python and #Pandas: https://BambooWeekly.com
📢 A reminder that we're looking for a Conference Director for PyCon UK 2027!
Applications are open until the end of June, and we aim to have a decision made by mid-July. Could it be you?
Full details here: https://www.linkedin.com/pulse/pycon-uk-2027-looking-conference-director-could-you-pycon-uk-buw5e/
Speaker spotlight: Felipe Moreno: "How Translations Work" - Maintainers Summit
Most OSS projects say they want to be welcoming to a global community. Far fewer have actually figured out the translation pipeline, how you avoid the "half-translated forever" problem.
Felipe is going to walk through how it actually works, in enough detail to take back to your own project.
🕥 2:10 PM, Saturday, May 16, Room 201A
RE: https://mastodon.social/@bagder/116566403633172153
#Python has been reproducible since October 2023 (Python 3.12.0)
https://sethmlarson.dev/security-developer-in-residence-weekly-report-14
"Packages that can't be rebuilt byte-for-byte are now blocked from entering Debian's testing branch."
https://itsfoss.com/news/debian-makes-reproducible-builds-mandatory/
Python Tip #133 (of 365):
Beware of containment checks on iterators
Membership checks will consume iterator items and can completely exhaust them.
Using "item in my_generator" will loop over my_generator, consuming items from it until a matching one is found. If you need to loop again, you'll start from where you left off.
Hi! I'm looking for work!
I'm primarily a #Python / #Django developer with strong #DevOps knowledge. But I'm also interested in learning technologies like Elixir/Erlang and Rust.
I hope to find a job which benefits the world instead of just capitalising on it.
If you know of anyone who is looking for a happy easy going developer let me know!
CV: https://valberg.dk/pages/cv.html
P.s. I'm not interested in using LLMs, and I'm willing to work 30 hrs/week, remote and in/around Copenhagen.
One of my strong suites in all the packaging work is the knowledge in my head.
"Why don't you write it down for others to benefit from, then?", you'd ask.
The thing is, this knowledge is basically "hot cache". I'm bumping hundreds of #Python packages in #Gentoo, so I remember stuff. And because of that, I can quickly notice some things or answer some questions.
If that were written down, the effort needed to find it would diminish all the gain. I mean, technically *it is* already written down, and the whole point is that I have it "cached".
Our next meetup is next Wednesday, 20th May at ICEYE!
Our host will tell us the story of conquering space, that started with just a couple of Aalto students, and has grown into a multi-million euro business.
@jerr0328 - Modern Python repository setup
[Kasper Paavolainen](https://www.linkedin.com/in/kasper-paavolainen) - TBA
The famous HelPy quiz!
Daniel Vahla - Python and HTTP/3, feel the difference in performance!
Audius is hiring Software Engineer - Full Stack
🔧 #javascript #python #rust #solidity #typescript #electron #react #reactnative #redux #blockchain #css #docker #elasticsearch #html #postgresql #redis
🌎 Remote
⏰ Full-time
🏢 Audius
Job details https://jobsfordevelopers.com/jobs/software-engineer-full-stack-at-audius-co-may-31-2022-da9984?utm_source=mastodon.world&utm_medium=social&utm_campaign=posting
#jobalert #jobsearch #hiring
On my way ✈️ to Long Beach 🇺🇸 from Rome 🇮🇹
See you all there in only 12 hours 👋
#PyConUS #PyCon #PyConUS2026 #Python #OpenSource #Community #Conference #Italy #ItaAirways #US
Ab Juli suche ich eine Stelle als Junior Fachinformatikerin für Anwendungsentwicklung.
Meine Lieblingssprache is #Python, ich habe mehr Erfahrung im Frontend als im Backend, aber möchte mich mehr Richtung letzterem entwickeln.
Ich wohne in Wilhelmshaven, würde für einen guten Job umziehen. Am liebsten wäre mir remote oder zumindest hybrid und nicht nur arbeiten mit KI.
Mehr über mich: https://shidigital.com/
#fediHire #job #fachinformatiker #developer #entwickler #webdev #openSource
💜 PyLadies turns 15 this year 🎉 🐍
As the PyLadies Global Council, we’re celebrating this milestone while continuing important work around governance, transparency, sustainability, and the future of the community.
✨ Blog post with details 👇
🔗 https://pyladies.com/blog/Celebrating-15-Years/celebrating-15-years/
Okay, not sure if I'm just missing it, is the 3.15 family of releases missing from the python.org website for anyone else? 3.16 is listed, but no 3.15.
RE: https://fosstodon.org/@pycon/116538489589981492
This talk from @andrewnez grows more and more important as the days go on... it's a must watch!
Python Tip #132 (of 365):
Know your iterator concepts.
Items are "consumed" from an iterator as you loop over it.
And iterators can be "exhausted" if their items have all been consumed.
But not all iterators CAN be exhausted. Infinitely long iterators do exist.
🧵 (1/2)
Lyon: Excursion dans le monde des microcontrôleurs, Le lundi 18 mai 2026 de 19h00 à 21h00. https://www.agendadulibre.org/events/35113 #python #micropython
RE: https://fosstodon.org/@ThePSF/116521504644649677
We've still got some volunteer shifts open at the PSF Booth (and other shifts across the conference)! Our shifts take a little bit of work but they include a LOT of fun and connections with other folks in the #Python community 🤝🤩 Sign up today via the #PyConUS website: https://us.pycon.org/2026/volunteer/volunteering/
Joining #PyConUS 2026? PSF booth volunteers WANTED!! Spend a little of your conference time helping things run smoothly at the PSF Booth (or other volunteer opportunities!), hang out with fellow Pythonistas, and enjoy the fun activities we have planned (coloring & video games included) 💛🐍💙 https://us.pycon.org/2026/volunteer/volunteering/
Congratulations to the newest PSF Community Service Award recipients!
Inessa, Kafui, Kalyan, Maria, and @pauleveritt have each made lasting contributions to the Python community. From conferences to founding initiatives to education worldwide, their service to the community deserves recognition and celebration!
https://pyfound.blogspot.com/2026/05/announcing-psf-community-service-award.html
Hello (dev) World!
I’m a PHP 🐘 developer who wanted to learn Python 🐍 without starting from zero.
That course didn’t exist — so I built it.
From PHP to Python is for experienced PHP devs who want to learn Python quickly by comparing it to what they already know.
https://fromphptopython.com
#PHP #Python
The May edition of the PSF Board Office Hour is about to begin 🐍 🗒️ 1 PM UTC. We welcome you to join us to share how we can help your community, express your perspectives, and we'd love to receive your questions and feedback about the ongoing strategic planning at the PSF! #python
https://pyfound.blogspot.com/2025/10/a-new-psf-board-another-year-of-psf.html
We vibe-coded a custom GitLab code review agent using 40,000 lines of Python written by Claude. 🤖
It has already handled 1,000 merge requests and taught us why going custom for our self-hosted setup was the right move.
We even built a complete documentation index to help the agent discover all available pages before it starts exploring. . 🚀
Check out our breakdown of how the agent works and what we learned during the process.
👉 https://devcenter.upsun.com/posts/building-an-ai-code-review-agent-for-gitlab/
Bilan du premier mois de Genepy depuis la migration depuis HackInScience : 34441 exercices résolus en février par 1368 utilisateurs !
Le record précédent était de 24k exercices résolus par 1.2k utilisateurs, la progression fait plaisir !
Thinking about trying to speed up #BlogMore a wee bit: https://blog.davep.org/2026/05/11/speeding-up-blogmore.html
Sortie de Crème CRM en version 2.8 https://linuxfr.org/news/sortie-de-creme-crm-en-version-2-8 #gestion_relation_clients #Commercial #cremecrm #python #django #crm
Le nombre de téléchargements sur pypi.org est vraiment effrayant !
Oui on parle de ~140 milliards de téléchargements par mois, contre ~40 milliards il y a 2 ans.
Nu är det
Vill du lära dig Python?
Vill du se vad andra gör med det?
Vill du visa dina Pythonprojekt?
Dagens ämnet är virtual environments.
Välkommen till Pythonkväll hos hacKRNspace!
Location: kulturskolan Kiruna, Midnattssolsvägen 23
Time: 2026-05-21 17:00:00+02:00 / 19:15:00+02:00
They say you're supposed to scratch your own itches, so here's my take on a printer-friendly version of the #PyConUS 2026 schedule:
https://snoopj.dev/files/PyConUS_2026_printable/
My target here is to fit one day on a double-sided landscape 8.5x11" (on my browser/printer) and it just about squeezes down this way.
Python Tip #131 (of 365):
Know the difference between iterables and iterators.
Python programmers sometimes say "iterator" when they mean "iterable".
These terms are NOT interchangeable.
Any objects that you can use a "for" loop to loop over is an iterable.
Iterators can be passed to the built-in next() function. Arbitrary iterables cannot be passed to next(). Only iterators can be.
But all iterables can be passed to iter() to get an iterator from them.
🧵 (1/2)
The PSF is excited to share that the PSF Board is developing a five-year strategic plan–and we want to hear from you! We're sharing the high-level goals we’ve drafted and welcoming the whole Python community into the conversation. Read more on our blog: https://pyfound.blogspot.com/2026/05/strategic-planning-at-psf.html
#Python #PyPI
https://pyfound.blogspot.com/2026/05/strategic-planning-at-psf.html
RE: https://fosstodon.org/@ThePSF/116555573783540910
The PSF Board has been developing a strategic plan and today we're sharing the high-level goals for community feedback. Full draft with detailed objectives follows in June.
This plan will shape how the PSF spends its resources for the next five years. If Python is part of your world, we'd love to hear from you.
The PSF is excited to share that the PSF Board is developing a five-year strategic plan–and we want to hear from you! We're sharing the high-level goals we’ve drafted and welcoming the whole Python community into the conversation. Read more on our blog: https://pyfound.blogspot.com/2026/05/strategic-planning-at-psf.html
#Python #PyPI
https://pyfound.blogspot.com/2026/05/strategic-planning-at-psf.html
There are a couple of ways to share your feedback:
- Email the address listed in the blog post
- Join PSF Board Office Hours in May & June
- Comment on the Discuss thread
- Join the dedicated Open Space session at #PyConUS
https://discuss.python.org/t/strategic-planning-at-the-psf/107314
#Python #PyPI
https://discuss.python.org/t/strategic-planning-at-the-psf/107314
The PSF is excited to share that the PSF Board is developing a five-year strategic plan–and we want to hear from you! We're sharing the high-level goals we’ve drafted and welcoming the whole Python community into the conversation. Read more on our blog: https://pyfound.blogspot.com/2026/05/strategic-planning-at-psf.html
#Python #PyPI
https://pyfound.blogspot.com/2026/05/strategic-planning-at-psf.html
#Codage #NSI @nuitducode
🔹 Lundi 11 mai 2026, de 10h00 à 16h00, au lycée #Bascan est organisée, pour la quatrième année consécutive, « La nuit du code » (en plein jour) #NDC2026.
🔸 Marathon de #programmation ~ Six heures 😰 pour coder 🖥 un jeu en utilisant #Python.
ℹ️ En savoir plus |→ https://lyc-bascan.fr/la-nuit-du-code/
La rediffusion du #PythonRennes du 27 avril est en ligne : https://youtu.be/FhUBmdUDe-w?list=PLv7xGPH0RMUT1GSCGHJmqnswpk-nyz5aq 🎉
Merci Néosoft pour l'accueil, Alex pour la captation et la mise en ligne, Quentin et Jesshuan pour vos interventions sur les frameworks web et d'orchestrations de workflows.
Retrouvez les diaporamas des actualités et des interventions sur https://github.com/python-rennes/sessions/tree/main/python-rennes-2026.04.27-rex-frameworks-web-et-orchestrateurs
@mgorny You're welcome?
We don't usually do RCs for patch releases, the last one was five years ago. The 3.14.5 RC was specifically for the GC change.
Unfortunately timelines were a bit short because I wanted to get this out, but it took a bit of time to prepare and test the patches and I didn't want to rush that, nor release during PyCon US.
https://discuss.python.org/t/reverting-the-incremental-gc-in-python-3-14-and-3-15/107014
#Python #CPython
Always appreciate how people release RCs to give others opportunity to test their changes early, then release final versions before the fixes for "breaks #Portage" kind of regressions introduced in the RCs are merged.
So either I've overdone it, or really nailed it:
The #python version of REBOUND is only a thin wrapper of the C code interfaced via ctypes. In the past, adding or changing a parameter in a C structure required you to also update the parameter on python. I have now one source of truth, the C code. I there define the structures, but now also an interface to them. This is not only used by python to access and modify parameters, but also by C itself to serialize data to a restart file.
#PyConUS is only a few days away! 🤩 As usual I’ll be covering the event exclusively on Mastodon (specifically the NEW “Trailblazing #Python Security” talk track on Saturday May 16th).
Time to reshare my hack for quick #Mastodon toot templates with event #hashtags:
https://sethmlarson.dev/quick-mastodon-toot-templates-for-event-hashtags
#BlogMore v2.21.0 is now available. This adds a lint command that is used to check your blog content for various issues.
Python Tip #130 (of 365):
Only use recursion for trees
Recursion is most useful for traversing or constructing TREE-LIKE STRUCTURES.
For most other problems, iteration is usually more readable.
Recursion is when a function calls itself.
Computer science classes almost always introduce recursion using factorial or fibonacci. Those are not great examples because those are both very clear (and fast) using a simple "for" loop instead.
🧵 (1/6)
🐍🚀 Out now: Python 3.14.5 final!
♻️ This now has the new (old) garbage collector, and the official macOS installer has been updated to use Tcl/Tk 9.0.3 instead of 8.6.17.
https://discuss.python.org/t/python-3-14-5-is-here-with-a-new-old-garbage-collector/107304
#Python #astronomy
Visibility of planets at a glance, on a diagram.
Customize location and date in the script.
Made possible with the #Skyfield package.
Astronomical twilight.
Script available on my blog:
https://www.astrolabe-science.fr/diagramme-visibilite-planetes/
“This is the situation where you're most likely to see implicit string concatenation used: to break up a long string literal into smaller strings over multiple lines, putting parentheses around them to create an implicit line continuation.”
Read more 👉 https://pym.dev/implicit-string-concatenation/
Python Tip #129 (of 365):
Use None as a sentinel value
None is great for representing nothingness, but it can also act as a placeholder for "no real value yet".
It's common to use None to distinguish between "caller didn't pass an argument" and "caller passed a real value".
🧵 (1/3)
If I recall correctly, it was Akkana Peck @akkana who first introduced me to Python, probably around 1998 or 1997 (so something in the neighborhood of Python v1.5) while working together at Netscape (I had a different name back then). **That** turned out to be a life-changing event; so thanks, Akkana!
This year's PyCon UK has been cancelled, but we're looking for a Conference Director to make PyCon UK 2027 happen - could it be you?
Full details of what the role involves and how to apply here: https://buff.ly/j4cVItY
What are your favorite new features in #Python lately? Or what are some new nuggets you have recently learned about?
Generating All Permutations http://janmr.com/posts/generating-all-permutations/ #combinatorics #algorithms #python #rust
New post on how to type some quirky functions made possible by python’s absolute flexibility: https://blog.mathieui.net/typing-python-quirks.html
Python Tip #128 (of 365):
Chain method calls for readability's sake
When an object's methods return the same type of object, prefer to chain calls together instead of juggling extra variables.
String methods are the classic example of this.
Each one returns a new string, so they chain nicely:
normalized = message.strip().lower().replace(",", "")
Imagine if we made a "stripped" variable and a "lower_stripped" variable for those 2 intermediary steps.
🧵 (1/4)
Inspired by @hugovk 's Bluesky Python core devs starter pack, I created one for Mastodon(.social): https://mastodon.social/collections/116540107831540575
A very new feature, and as such quite limited. If I've missed anyone on mastodon.social please let me know! If you're on another instance, I'm afraid I can't add you yet :'-(
Turn your data into stunning interactive dashboards — no JavaScript needed! Join Daniel Chen at #PyConUS 2026 for the tutorial "Show off your data: Interactive dashboards in #Python" on May 14th 📊 https://us.pycon.org/2026/schedule/presentation/112/
Register now: https://us.pycon.org/2026/accounts/dashboard/
Heizungs-Fernsteuerung per SMS
Ich bin Fernpendler. In meiner "Arbeits"-Wohnung benutze ich nur mobiles Internet. Um die Heizung bei Bedarf anschalten zu können, habe ich eine Steuerung gebaut, die auf SMS reagiert.
#Wettbewerb_Frühling_2026 #Automatisierung #SMS #Python #gammu #Linux
#Linux #Python
Diese USB-schaltbare Steckdosenleiste beim Pearl-Versand gekauft 2009 funktioniert immer noch. Und die Links auf meiner Webseite zu Sourceforge tun auch noch.
Das nenn ich mal #Nachhaltigkeit 👍 👍 👍
https://www.wormser-region.de/index5482.html
🐍🚀 Out now: Python 3.15 beta 1!
🧊 This is the feature freeze, and now it's *your* turn to test out all the amazing things we've been baking for the past 12 months!
💤 Lazy imports!
🧊 frozendict builtin!
💂 sentinel builtin!
📉 Tachyon profiler!
🖼️ Frame pointers everywhere!
🧳 Unpacking in comprehensions!
8️⃣ UTF-8 default encoding!
🆕 Startup config files!
⌨️ Loadsa typing!
🎨 More colour!
https://discuss.python.org/t/python-3-15-0-beta-1-is-here/107231
Please report bugs, we'll fix for the big October release.
I couldn't sleep, so I got up at 5 am this morning.
To kill some time before work, I wrote a new Python-based proof of concept for Copy Fail based on the original, but one that is easier to read (I don't care about the byte size bragging rights) and which does not push a payload into the page cache of a setuid exec (which is bad). Instead it just overwrites text on a temp text file. It works great!
I got the idea from the copy-fail-c implementation on GitHub.
boostedMy Python 3.15 what's new post is out for the just-released 3.15 beta 1! https://iscinumpy.dev/post/python-315/ #python
Hey #Python library maintainers! 👋 I sometimes see pull requests from well-meaning users about bumping minimum versions of dependencies to "fix security vulnerabilities". Here's a resource you can link to about why this strategy doesn't work in practice:
https://sethmlarson.dev/library-version-specifiers-not-for-vulnerabilities
RE: https://mastodon.social/@7ASecurity/116521920390604616
💪 “urllib3's supply chain posture was described as exceptionally strong, with advanced compliance across SLSA Source, Build, and Provenance requirements. The project maintainers were helpful, responsive, and engaged throughout the audit, ensuring that 7ASecurity had the necessary access and information at all times”
Excellent work @illiav and @quentinpradet! 👏
RE: https://mastodon.social/@hugovk/116534312819614916
Just as importantly!
After two years, it's now time to ceremoniously hand over the `main` branch to @savannah!
`main` is now accepting new features for Python 3.16, and I bet it's going to be even better than 3.15.
https://peps.python.org/pep-0826/
#Python #Python315 #Python316
🐍🚀 Out now: Python 3.15 beta 1!
🧊 This is the feature freeze, and now it's *your* turn to test out all the amazing things we've been baking for the past 12 months!
💤 Lazy imports!
🧊 frozendict builtin!
💂 sentinel builtin!
📉 Tachyon profiler!
🖼️ Frame pointers everywhere!
🧳 Unpacking in comprehensions!
8️⃣ UTF-8 default encoding!
🆕 Startup config files!
⌨️ Loadsa typing!
🎨 More colour!https://discuss.python.org/t/python-3-15-0-beta-1-is-here/107231
Please report bugs, we'll fix for the big October release.
🐍🚀 Out now: Python 3.15 beta 1!
🧊 This is the feature freeze, and now it's *your* turn to test out all the amazing things we've been baking for the past 12 months!
💤 Lazy imports!
🧊 frozendict builtin!
💂 sentinel builtin!
📉 Tachyon profiler!
🖼️ Frame pointers everywhere!
🧳 Unpacking in comprehensions!
8️⃣ UTF-8 default encoding!
🆕 Startup config files!
⌨️ Loadsa typing!
🎨 More colour!
https://discuss.python.org/t/python-3-15-0-beta-1-is-here/107231
Please report bugs, we'll fix for the big October release.
Just released: PrettyTable 3.16 🚀
Just released: norwegianblue 0.21.0 🚀
Add support for OSC 8 hyperlinks in the terminal.
https://github.com/prettytable/prettytable/releases/tag/3.16.0
norwegianblue now uses this to create hyperlinks in the terminal instead of printing a wide column of links. Use command+click with iTerm.
Also create hyperlinks for Markdown, reStructuredText and HTML output.
https://github.com/hugovk/norwegianblue/releases/tag/0.21.0
Attached are before and after images.
Just released: termcolor 3.0.0 🚀
ANSI colour formatting for the terminal.
🎨 Add support for Python 3.14
🎨 Only apply FORCE_COLOR, NO_COLOR & ANSI_COLORS_DISABLED env vars when present & not an empty string
🎨 Replace literal types with strings
🎨 Replace deprecated classifier with licence expression (PEP 639)
🎨 Speedup: move typing imports into type-checking block
🎨 Remove deprecated __ALL__, use __all__ instead
Just released: Python 3.14.0a7 🚀
Just released: Python 3.13.3 🚀🚀
Just released: Python 3.12.10 🚀🚀🚀
Just released: Python 3.11.12 🚀🚀🚀🚀
Just released: Python 3.10.17 🚀🚀🚀🚀🚀
Just released: Python 3.9.22 🚀🚀🚀🚀🚀🚀
Last 3.14 alpha! Less than a month to get new features in before beta!
Last 3.12 bugfix release! Now in security fix only!
And security releases of 3.9-3.11.
Please upgrade 3.9-3.13!
Please test 3.14!
Just released: Pillow 11.2.1 🚀
There was meant to be a 11.2.0 on 1st April, but we put too much good stuff in the wheels and hit the @pypi.org project limit before it could all be uploaded. That was yanked and now deleted and 11.2.1 is back to normal size.
We'll try and put the good stuff back for 11.3.0 on 1st July but take up less space.
Just released: Python Docs Theme 2025.4 🚀
📚 Require Sphinx 7.3
📚 Add support for Python 3.14
📚 Drop support for Python 3.10-3.11
📚 Copy button for code samples
📚 PEP 639 licence metadata
📚 and more!
https://github.com/python/python-docs-theme/releases
Thanks to Tomas Roun for the copy button! Demo:
🙈 https://www.youtube.com/watch?v=2cxSP90gj8c [Vappu is May Day]
Just released! 🚀🚀🚀🚀
termcolor 3.1.0
Add true colour, cache system lookups
https://github.com/termcolor/termcolor/releases/tag/3.1.0
em-keyboard 5.1.0
Add Emoji 16.0: 🇨🇶
https://github.com/hugovk/em-keyboard/releases/tag/v5.1.0
Humanize 4.12.3
Fix regression in naturalsize, improve French translation
https://github.com/python-humanize/humanize/releases/tag/4.12.3
Python Docs Theme 2025.4.1
Fix copy button with multiple tracebacks
https://github.com/python/python-docs-theme/releases/tag/2025.4.1
#Python #release #termcolor #humanize #Sphinx #theme #EmKeyboard #PythonDocsTheme
Just released: Python 3.14.0 beta 1! 🚀🐍
🥧 Deferred type annotation evaluation!
🥧 T-strings!
🥧 Zstandard!
🥧 Syntax highlighting in the REPL!
🥧 Colour in unittest, argparse, json and calendar CLIs!
🥧 UUID v6-8!
🥧 And much more!
https://discuss.python.org/t/python-3-14-0-beta-1-is-here/91117?u=hugovk
Just released: Python 3.14.0 beta 2! 🚀🐍
🥧 Deferred type annotation evaluation!
🥧 T-strings!
🥧 Zstandard!
🥧 Syntax highlighting in the REPL!
🥧 Colour in unittest, argparse, json and calendar CLIs!
🥧 UUID v6-8!
🥧 And much more!
Do you maintain a Python package? Please test 3.14. If you find a bug now, we can fix it before October, which helps everyone. And you might find some places in your code to update as well, which helps you.
https://discuss.python.org/t/python-3-14-0-beta-2-is-here/93396?u=hugovk
Just released: Python 3.14.0 beta 3! 🚀🐍
🥧 All the good stuff of b2 but also:
🥧 Free-threaded Python is officially supported! (PEP 779)
🥧 Subinterpreters in the stdlib! (PEP 734)
Do you maintain a Python package? Please test 3.14.
If you find a bug now, we can fix it before October, which helps everyone. And you might find some places in your code to update as well, which helps you.
https://discuss.python.org/t/python-3-14-0-beta-3-is-here/95843?u=hugovk
#Python #CPython #Python314 #release #PEP779 #PEP734 #FreeThreaded #subinterpreters
Just released: linkotron 0.6.0!
🔗 Adds OSC 8 formatting so you can do make those clickable links in terminal emulators.
https://pypi.org/project/linkotron/
#Python #release #linkotron
Just released: Python 3.14.0 beta 4! 🚀🐍
🥧 Last beta!
🥧 Do you maintain a Python package? Please test and report bugs!
🥧 This includes creating pre-release wheels for 3.14, as it helps other projects to do their own testing.
https://discuss.python.org/t/python-3-14-0-beta-4-is-here/98092/1?u=hugovk
#Python #CPython #Python314 #release
Just released: Python 3.14.0 release candidate 1! 🚀🐍
🫖 T-strings!
🧵 Free-threading is officially supported!
🚇 Subinterpreters in the stdlib!
🗜️ Zstandard compression!
🎨 REPL syntax highlighting and tab autocomplete!
⚠️ Better error messages!
📦 Are you a package maintainer? Prepare for 3.14 and report bugs!
🛞 No ABI changes: upload 3.14 wheels to PyPI
🥧 And much, much more!
https://discuss.python.org/t/python-3-14-release-candidate-1-is-go/99754?u=hugovk
#Python #CPython #Python314 #release
Just released: Python 3.14.0 release candidate 2! 🚀🐍
🪄 This was planned for 2025-08-26, but we fixed a bug that required bumping the magic number stored in bytecode (.pyc) files
🪄 This means .pyc files created for rc1 will be recompiled for rc2
🪄 The ABI isn’t changing
🪄 Wheels built for rc1 should be fine for rc2, rc3 and 3.14.x
🤖 Did I mention Android binaries?
🏆 Bonus: We also released an early Python 3.13.7!
https://discuss.python.org/t/python-3-14-0rc2-and-3-13-7-are-go/102403
#Python #CPython #Python314 #Python313 #release
Just released: UltraJSON 5.11.0! 🚀
⌨️ Inline type stubs
🐍 Support for Python 3.14 & PyPy3.11
🛞 Windows ARM64 wheels (thanks @tonybaloney!)
💧Drop EOL Python 3.8 & PyPy3.8-PyPy3.10
➕ And more!
https://github.com/ultrajson/ultrajson/releases/tag/5.11.0
#Python #release #ujson #UltraJSON
Just released: Cherry Picker 2.6.0! 🚀
🌸 Fix bug when local branch does not exist (thanks, @webknjaz!)
🌸 Use PEP 639 licence expression and remove deprecated Trove classifier
https://github.com/python/cherry-picker/releases/tag/cherry-picker-v2.6.0
Just released: OSMViz 4.5.0! 🚀
An OpenStreetMap visualization toolkit for Python
🥧 Support for Python 3.14
🪪 Replace deprecated classifier with licence expression (PEP 639)
🔍 Remove GitHub attestation, PyPI attestation is enough
Just released: humanize 4.13.0! 🚀
🤖 Optimise `naturalsize` algorithm by using `math.log`
🤖 Fix `precisedelta` rounding
https://github.com/python-humanize/humanize/releases/tag/4.13.0
#Python #humanize #release
Just released! 🚀
After one sequential-only CI failure, two artifacts builds, one GitHub outage, two fixes for the Windows installer build, four Windows builds, and a NuGet outage:
🐍 Python 3.15 alpha 2!
🔬 PEP 799: A new high-frequency statistical sampling profiler
💬 PEP 686: Python now uses UTF-8 as the default encoding
🌊 PEP 782: A new PyBytesWriter C API to create a Python bytes object
⚠️ Better error messages
https://discuss.python.org/t/python-3-15-0a2/104948?u=hugovk
Just released! 🚀
🎶 pylast 7.0.0
🎤 A #Python interface to @lastfm and Libre.fm
🗑️ Remove `SCROBBLE_SOURCE_*` and `SCROBBLE_MODE_*` constants. Last used in 2017, you probably weren't using them
📻 Add `chosen_by_user` parameter to `scrobble`. Set to false if you don't have "direct" control over the source, like radio or a stream.
🐍 Add support for Python 3.15
📼 Test against recorded API instead of live
🦀 Replace pre-commit with prek
Thanks to @scy!
https://github.com/pylast/pylast/releases/tag/7.0.0
#release #LastFM
Just released! 🚀🐍
Python 3.14.1
Waiting for the .1 to upgrade? This one's especially for you!
🥧 Deferred type annotation evaluation!
🥧 T-strings!
🥧 Zstandard!
🥧 Syntax highlighting in the REPL!
🥧 Colour in unittest, argparse, json and calendar CLIs!
🥧 UUID v6-8!
🥧 And much more!
https://discuss.python.org/t/python-3-14-1-is-now-available/105163
Just released! 🚀🐍
Python 3.14.2 (and 3.13.11)
Waiting for the .2 to upgrade? This one's especially for you!
So soon? We found some regressions, so here’s an expedited pair of releases. They also come with bonus security fixes.
https://discuss.python.org/t/python-3-14-2-and-3-13-11-are-now-available/105214?u=hugovk
Just released! 🚀
Python Docs Sphinx Theme
This is the theme for the Python documentation (and others)
* Add support for green, red and yellow side borders for code examples
* Add Portuguese translation
* Add support for Python 3.15
https://github.com/python/python-docs-theme/releases/tag/2025.12
Just released! 🚀
🐍 Python 3.15 alpha 3!
https://discuss.python.org/t/python-3-15-0-alpha-3/105325?u=hugovk
🔬 PEP 799: A new high-frequency statistical sampling profiler and dedicated profiling package
💬 PEP 686: Python now uses UTF-8 as the default encoding
🌊 PEP 782: A new PyBytesWriter C API to create a Python bytes object
🎨 Colour code snippets in argparse help: https://bsky.app/profile/savannah.dev/post/3m7svdqdeqs2x
⚠️ Better error messages
#Python #Python315 #CPython #release #PEP799 #PEP686 #PEP782 #argparse
Just released! 🚀
🤖 Humanize 4.15.0
This does stuff like turning a number into a fuzzy human-readable duration ("3 minutes ago")
https://github.com/python-humanize/humanize/releases/tag/4.15.0
* Add locale support for decimal separator in `intword`
* Add support for Python 3.15
* `naturaldelta`: round the value to nearest unit that makes sense
* Fix plural form for `intword` and improve performance
* Replace `Exception` with more specific `FileNotFoundError`
* Replace pre-commit with prek
Just released! 🚀
stravavis 0.6.0: create visualisations of Strava activities
* add option to select visualisations/allow --bbox as file/support 3.13-3.14/drop 3.9
https://github.com/marcusvolz/strava_py/releases/tag/v0.6.0
termcolor 3.3.0: ANSI formatting for the terminal
* add italic/fix error handling
https://github.com/termcolor/termcolor/releases/tag/3.3.0
pylast 7.0.1: A Python interface to Last.fm
* fix type hints
Just released! 🚀
pypistats 1.12.0
CLI for PyPI download stats
support 3.15
drop 3.9
improve verbose output
declare type hints
replace dateutil+six dependencies with stdlib
replace httpx with urllib
replace pre-commit with prek
Just released! 🚀
norwegianblue 0.24.0
CLI to show end-of-life dates
show spinner when querying
support 3.15
replace dateutil+six dependencies with stdlib
replace httpx with urllib3
replace pre-commit with prek
RE: https://fosstodon.org/@gaborbernat/116529121485547878
pipx est un outil qui permet d'installer un paquet Python (souvent un outil de type ligne de commande) sur votre ordinateur de façon isolée, sans que ses dépendances interagissent avec d'autres outils systèmes Python. C'est aussi ce que permet la commande uv tool.
Depuis sa version 1.12.0, pipx permet d'ailleurs d'utiliser uv sous le capot : https://pipx.pypa.io/stable/explanation/comparisons/#pipx-vs-uv-tool
I've locked the branch and started the builds! 🔒⚙️
https://discuss.python.org/t/python-3-15-0-beta-1-is-near/107193/2
#Python #Python315
A screenshot of my daily drive desktop.
as screenshotted on May 7 2026.
elementary OS 8.1
Built on Ubuntu 24.04.4 LTS
Linux 6.17.0-23-generic
#elementaryos #ubuntu #linux #foss #desktop #tech #programming #python
OK @glyph challenge accepted. Here is python programming talk.
I have a script that uses "with Popen(...,stdout=PIPE)" to run a program and roughly run grep. Now I'd like to add a timeout, but I don't want to buffer the output (because it is unbounded), so run is out. Currently I am running /usr/bin/timeout from python, but this is, uh, unpythonic.
@glyph you might be interested in python-sql which is a protection against SQL injections. It aims to be lighter than full fledged ORMs. Our goal is also to make SQL queries #python objects that are composable and introspectable
We've been using it for years in #tryton so it covers quite a lot of the SQL standard. What's missing from my quick look to dbxs is the typing part.
Made a few more changes to the little download manager I'm tinkering with.
Python Tip #126 (of 365):
Prefer to return expressions instead of variables
If a variable name would make the meaning of the expression more understandable, ask yourself "does my function name convey the meaning well-enough already?"
If not, ask "why not?"
Sometimes "return some_variable" might improve readability, even if some_variable could be replaced by an expression. But usually I find an equivalent expression more readable.
@kattni's @NorthBayPython talk:
https://youtu.be/tFvqb3CabQ0
@ambv & the other one's latest core.py podcast:
https://open.spotify.com/episode/5pD08pb1Tt7Z7k2ZSIdih9
@savannah's Core Dispatch:
https://coredispatch.xyz/editions/3
The Language Summit coming to EuroPython:
https://discuss.python.org/t/python-language-summit-at-europython-2026-in-krakow/107194
And all the really cool stuff coming in 3.15, can't wait to get it out!
https://docs.python.org/3.15/whatsnew/3.15.html
Release week update!
Also moving release 3/3 this week, 3.14.5 final, by a couple of days to give some more time for testing of the RC 🚀
https://discuss.python.org/t/python-3-14-5-release-candidate/107185/2
Current plan:
✅ 3.14.5rc1 on Monday 4nd (+2 days)
⬜ 3.15.0b1 on Thursday 7th (+2 days)
⬜ 3.14.5 final on Sunday 10th (+2 days)
Installing #Spyder on
#NixOS, ugh... 😩
• must use spyder from unstable, in stable it depends on insecure qtwebengine-5
• it runs, but the interactive terminal needs spyder_kernels module
• adding python3Packages.spyder-kernels to the python env, doesn't help
• putting python3Packages.spyder{,-kernels} both into current Python env is a problem, how do I make a nixpkgs.overlays to pick certain Python packages from unstable?
😑....
I had a thought the other day while reading and modifying CurlFlow. The LLM that Jan was using (a 30B Qwen Coder thing) got things probably 90% there, but it made some decisions that might have "worked", but weren't optimum, even by my novice standards. For example, for importing, it just had line after line of:
import this
import that
With no error checking. So instead, I put this together.
Continued...
1/
Signups and topic submissions are now open for the Language Summit at EuroPython in Kraków!
https://ep2026.europython.eu/language-summit/
The Python Language Summit is an event for the developers of Python implementations (CPython, PyPy, MicroPython, GraalPython, IronPython, and so on) to share information, discuss our shared problems, and — hopefully — solve them.
https://discuss.python.org/t/python-language-summit-at-europython-2026-in-krakow/107194
I'm postponing Python 3.15 beta 1 to Thursday to get the last few things in. We're close!
https://discuss.python.org/t/python-3-15-0-beta-1-is-near/107193
#Python #cryptography library (yes, the one that criticizes everything and everyone) is now vibecoded. Our future is truly bright!
Noticed because apparently "Claude" wrote a test that OOM-ed my system. But hey, #RustLang protects against memory errors, so it's fine to vibecode your security critical components.
RE: https://mastodon.social/@posetteconf/116482697001262767
My talk at POSETTE 2026 will be in the livestream on June 17 📆
I’ll walk through how generated columns changed across PostgreSQL versions, using Django as a real case 🔍
Curious how people are actually using them in production, or not using them at all 🤔
Python 3.14.5 release candidate is out now! Please test!
https://blog.python.org/2026/05/python-3145rc1/
Next up, 3.15 beta 1 tomorrow.
Happy to be one of the speakers at PyGrunn, the full day "Python and friends" conference in Groningen, The Netherlands, where I'll be talking about HTTPXYZ
#CopyFail (CVE-2026-31431) : Synthèse technique sur cette faille. Classifiée CVE-2026-31431 avec un score CVSS de 7.8/10, elle permet à n'importe quel processus tournant sur une machine #Linux de devenir #root, et ce, sur l'intégralité des #distributions majeures depuis 2017. Le proof-of-concept public fait 732 octets de #Python. En une commande, on devient root. C'est incroyable !
https://www.linuxtricks.fr/news/10-logiciels-libres/600-copy-fail-cve-2026-31431-synthese-technique-sur-cette-faille-linux/
⛄ One day until 3.15 feature freeze! ❄️
Four blockers, 10 broken buildbots and two PEPs still to merge? Business as usual on freeze eve, we'll get there!
The Maintainers Summit at PyCon US 2026 is officially open for registration! 🎉
📅 Saturday, May 16
📍 Long Beach Convention Center, Room 201A
👥 RSVP is preferred, but walk-ins are also welcome
Join us for candid conversations about what it takes to keep Python’s open source ecosystem alive.
Save your spot (included with your PyCon US ticket) → us.pycon.org/2026/events/maintainers-summit/
#BlogMore v2.19.0 is now available. This has a couple of fixes and a small cache-busting improvement: https://blog.davep.org/2026/05/04/blogmore-v2-19-0.html
Made some minor tweaks to CurlFlow today. Made the "Add New Download" dialog slightly wider because I didn't like how cramped it felt when pasting a URL. Also added the program version to the title bar.
The new pip version comes with experimental lockfile support *and* `--uploaded-prior-to` for dependency cooldowns, neat.
Second talk of the morning at DjangoCon Europe 2026 🇬🇷
Now listening to Vjeran Grozdanic from Sentry🎤
Talking about encrypting data in Django without complex migrations, with a drop-in field that can handle both old plain text and new encrypted data on the fly… very curious about this approach 🙂
I tinkered around and have thrown together a basic graphical download manager for #Linux if anybody wants to check it out.
AI Disclaimer: Most of the original work was done as an experiment with some free and locally hosted LLMs.
Exploit Linux local pour passer root : #copyFail (CVE-2026-31431)
La société Theori a publié un exploit (écrit avec #Python 3.10) pour le noyau #Linux x86-64 pour passer #root en local. Il utilise un #bug dans les sockets AF_ALG sur une opération AEAD qui existe depuis 2017 (commit).
https://linuxfr.org/users/vstinner/journaux/exploit-linux-local-pour-passer-root-copy-fail-cve-2026-31431
Tinkering around with making my own #Python frontend to curl to act as a simple download manager. I noticed uGet hadn't been updated in multiple years, and I never really used the "categories" feature of it myself, so I had the idea of making my own very basic alternative. It supports basic HTTP auth in the event a web folder is password protected.
This is the old cooling configuration of my Raspberry Pi5. A simple aluminum block cooled by a relatively good yet small fan. There are different ways to read the fan and temperatures of this SBC which may need some simple Python programming
What if you could hide secret messages in images using #Python? Join Ariel Ortiz at #PyConUS 2026 for "One Pixel at a Time: DIY Image Manipulation with Pillow for Fun and Profit" on May 14th 🎨 https://us.pycon.org/2026/schedule/presentation/44/
Register now: https://us.pycon.org/2026/accounts/dashboard/
Python Tip #121 (of 365):
If your command-line script has a couple functions, put remaining logic in a main function.
Python knows nothing about main functions but other Python developers do.
Once your script grows a function or 2:
1. put all remaining logic in a main function
2. write a if __name__ == "__main__" conditional guard that calls main()
3. consider extracting argument-parsing logic into its own function: I often call this parse_args
🧵 (1/3)
I have released version 1.15 of slixmpp, the python XMPP library.
Besides the continuation of @nicoco ’s quest to add every XEP under the sun, the most notable change is that building the rust module is now optional (i.e. in the absence of sufficient tools, slixmpp will happily be installed using the pure-python fallback for the JID module, which is kind of important for Mac OS or Winslop platforms).
Yikes, forget about Linux security
Copy Fail: 732 Bytes to Root on Every Major #Linux Distribution
“A single 732-byte #Python script can edit a setuid binary and obtain root on essentially all Linux distributions shipped since 2017.
The kernel never marks the corrupted page dirty for writeback, so the file on disk remains unchanged and ordinary on-disk checksum comparisons miss the modification.”
The reverts are done for 3.14 and 3.15 and initial test results look good, so we're ready for release.
Plan:
* 3.14.5rc1 on Saturday 2nd (new)
* 3.15.0b1 on Tuesday 5th (already planned)
* 3.14.5 final on Friday 8th (new)
https://discuss.python.org/t/reverting-the-incremental-gc-in-python-3-14-and-3-15/107014/45
PEP news!
PEP 831 – Frame Pointers Everywhere: Enabling System-Level Observability for Python
Accepted ✅
"After extensive deliberation the Steering Council has decided to accept PEP 831 (Frame Pointers Everywhere: yahdah yahdah), because it’s clearly the correct and necessary thing… although we wish the PEP and its title had been a lot shorter, given how much of an obvious decision it is. Congrats!"
Days until feature freeze: 4
The worms keep worming, unfortunately. The "Mini Shai-Hulud" attack appears to pivot to #PyPi with a compromise of a #pytorch library:
https://discourse.ifin.network/t/pytorch-lightning-library-hit-by-supply-chain-attack/357
More in the final 3.15 alpha:
🖨️ pprint: new `expand` arg for Black-like output (let's make it default?)
🧛 bytes.replace() count arg can be a keyword
🌊 wave: IEEE floating-point WAVE audio support, new getformat()/setformat()
⏱️ timeit: configurable target time for autorange()
Please test and give feedback!
Well, let's fix those pprint defaults!
https://mastodon.social/@treyhunner/116403550709287167
Which do you prefer?
https://github.com/python/cpython/issues/149189
https://github.com/python/cpython/pull/149190
RE: https://fosstodon.org/@europython/116493073062965190
🇵🇱 🐍 la billetterie pour l'édition 2026 de @europython est ouverte. La conférence aura lieu du 13 au 19 juillet à Cracovie.
RE: https://fosstodon.org/@europython/116493073062965190
I've got my ticket, see you there!
#Python #EuroPython
RE: https://fosstodon.org/@stuartm/116441636843382392
un article de (@stuartm) qui explique les équivalences entre les commandes principales de pdm et celles de uv.
- uv init → pdm init (avec un wizard ergonomique)
- uv add django → pdm add django
- uv lock → pdm lock
- uv sync → pdm sync
- uv run manage.py runserver
- possibilité d'ajouter un délai de cooldown dans la mise à jour des dépendances : pdm lock --exclude-newer 7d
Python Tip #119 (of 365):
Don't just rely on the built-in types for argparse's type parameter
You can create your own argparse "type" with a callable that accepts a string and returns the parsed object, raising a ValueError (with a user-facing message) if parsing failed.
If you wanted to accept a YYYY-MM-DD date for an argument, you could make a date function:
import datetime as dt
def date(string):
return dt.date.strptime(string, "%Y-%m-%d")
...
🧵 (1/4)
#Python accounts to follow:
@ThePSF - Python Software Foundation official account
@pypi - Python Package Index
@django - High-level Python web framework
@pillow - FOSS fork of Python Imaging Library
@pythonhub - Highlighting interesting articles about Python
PODCASTS
@talkpython - Talk Python
@pythonbytes - Python Bites
🧵 Thread page 1 of 5
#PyConUS 2026 onsite volunteer signups are now OPEN!
Joining us at PyCon US and want to be part of the team that helps make the magic happen? This is your chance to support the Python community, meet amazing people, and get involved behind the scenes - and we need YOU!
Sign up to volunteer today! 💙 #PyConUS #Python
👉 https://pycon.blogspot.com/2026/04/pycon-us-2026-call-for-volunteers.html
Je recherche toujours quelque chose autour de Lyon, avec du télétravail 3 à 5 jours par semaine, dans le web, avec de l'éco conception, si possible en scop. Je suis dev senior/lead dev Symfony/Angular, pas mal de connaissances docker, je peux me plonger dans des bugs assez farfelus, profil plutôt adaptable. J'aimerai bien découvrir le #python
#JeChercheUnJob #symfony #angular #scop #teletravail #TSA #linux #opensource #lyon
RE: https://fosstodon.org/@djangolondon/116486937490077858
I’m happy to be speaking for the first time at the @djangolondon meetup on Thursday, May 7. 🎉
My talk will show Django’s GeneratedField through plenty of real-world examples. 🧩
It would be really nice to meet you there. 👋
So for all Django-developers: it took a while but I now finally released my package "django-allresponses":
https://django-allresponses.x14.nl/
It contains HTTPResponse subclasses for ALL http status codes, which grew out of my frustration that there WAS a subclass for "410 Gone" which is hardly ever used but none for "204 No Content" or "201 Created" which I use all the time!
httpxyz one month in https://lobste.rs/s/00eboi #python
https://tildeweb.nl/~michiel/httpxyz-one-month-in.html
Quick reminder: Registration for the Packaging Summit at PyCon US 2026 closes this Thursday, April 30 AoE (Anywhere on Earth).
Friday, May 15, 1:45–5:45 PM in Room 201A at the Long Beach Convention Center. Pradyun, CAM and I are co-chairing again.
All details (including signup links): https://us.pycon.org/2026/events/packaging-summit/
pip 26.1 is an incredible release, thank you to the pip maintainers!! 💜
– Relative dependency cooldown support!
– Installing from pylock.toml
– Multiple security fixes
Read the full blog post by @ichard26
https://ichard26.github.io/blog/2026/04/whats-new-in-pip-26.1/
PEP news!
PEP 788 – Protecting the C API from Interpreter Finalization: accepted
"Given that we have received no concerns from the C API WG or from the binding ecosystem, the SC is happy to accept the PEP."
https://discuss.python.org/t/pep-788-protecting-the-c-api-from-interpreter-finalization/104150/44
un article de @andrewnez sur les failles de sécurité des #GitHubActions : https://nesbitt.io/2026/04/28/github-actions-is-the-weakest-link.html
Conseils :
- TLDR : analyser vos fichiers de workflow avec https://docs.zizmor.sh/
- éviter les déclencheurs pull_request_target et issue_comment
- utiliser le TrustedPublishing pour #python et #npm
- bannir l'interpolation $ sur des valeurs non maitrisées
- initier le workflow avec permissions: {}
- figer une action avec un hash de commit plutôt qu'un tag muable
Richard Si, un mainteneur de Pip a publié un article présentant les nouveautés venant avec Pip 26.1 : https://ichard26.github.io/blog/2026/04/whats-new-in-pip-26.1/.
Notamment :
- la gestion (expérimentale) des lockfiles
- la notion de cooldown pour la mise à jour des dépendances (ce délai permettant d'identifier des vulnérabilités dans la nouvelle version d'un paquet)
🧊 One ~~eek~~ week until 3.15 feature freeze! 🧊
https://hugovk.dev/next-release/
At least 1 PEP still being implemented, 4 needing docs, and 5 awaiting a Steering Council decision.
We've released a new version of httpxyz, our fork of httpx; we fixed many bugs in httpx and it's much faster now! We encourage everyone using httpx to move over!
Read the blog post: https://tildeweb.nl/~michiel/httpxyz-one-month-in.html
Packaging 26.2 is out! Quick fix for pyemscripen tags, stable and faster pickle support, and a bit of polish. This is the release in pip 26.1, which came out yesterday. It’s our last release to support Python 3.8, we’re a little behind dropping Pythons. https://github.com/pypa/packaging/releases/tag/26.2 #release #python
RE: https://mastodon.social/@andrewnez/116478133377243019
Workflow security continues to be a common cause of compromises of open source projects.
If you're using GitHub Actions and don't want this to happen to your project: use Zizmor and treat the findings seriously, especially insecure triggers and user-controllable template injections.
Let's talk CLI/TUI and Developer Workflows!
I’m looking to refresh my local toolkit and I’m curious: what are the absolute "must-have" CLI or TUI programs in your current rotation?
Whether it's a specialized utility for a specific language, a terminal-based interface for a common service, or a workflow-changing alias, I want to hear about it. I’m especially interested in tools that prioritize keyboard-driven navigation and accessibility.
To get the ball rolling, here are a few tools I’ve been leaning on lately:
@programming
@linux @terminal_u_i@lemmy.ml @selfhosted
#CLI #TUI #Terminal #OpenSource #FOSS #Programming #DevTools #Linux #SysAdmin #Workflow #Python #Backend #ArchLinux #KeyboardDriven #Accessibility #SoftwareDevelopment #TechTalk
I just published a recap of my DjangoCon Europe 2026 🇬🇷
It’s a timeline of all the posts I shared live during the conference, with photos and small moments along the way.
A simple way to relive the experience from start to sprints 🙂
"PyPI package with 1.1M monthly downloads hacked to push infostealer"
"[...] An attacker pushed a malicious version of the popular elementary-data package Python Package Index (PyPI) to steal sensitive developer data and cryptocurrency wallets."
pip 26.1 is an incredible release, thank you to the pip maintainers!! 💜
– Relative dependency cooldown support!
– Installing from pylock.toml
– Multiple security fixes
Read the full blog post by @ichard26
https://ichard26.github.io/blog/2026/04/whats-new-in-pip-26.1/
I've gotten a bunch of new followers on a few different channels, so I figured I should re-introduce myself.
Hi, I'm Sheena.
🧗♀️🏕️🧭🇿🇦🖊️🛠️🔥🐕🎸👩🏻💻 🧑🏫📐
I'm one of the directors of the #Python Software Foundation (#PSF), and I do my best to represent the African communities I’m a part of.
I've been writing code since my early teens, and I've been teaching for about 6 years.
I founded https://prelude.tech. We do all things tech/ed:
I've released #BlogMore v2.17.0, which adds optional "email me your comments" support, and also an optional graph view of the blog.
Python: Paketbau und Installation
Ein Python-Skript zu schreiben, kann man schnell erlernen. Doch wie sieht es mit der Paketierung und der Installation aus? Dieser Artikel liefert Antworten.
Bon ben en fait la réponse était très simple : dans le fichier d'origine il y avait un "import itertools" qui n'était pas dans le fichier destination, et j'ai pas vu ça et donc pas pensé à le rajouter.
Donc "chain.from_iterable" était reconnu dans le fichier source, mais logiquement pas dans le fichier où je l'ai collé...
Comme quoi commencer par vérifier les trucs les plus cons c'est généralement une bonne idée...
Python Tip #116 (of 365):
Use pyupgrade to modernize your Python idioms.
Either install pyupgrade or just run "uvx pyupgrade" against your code.
https://pypi.org/project/pyupgrade/
pyupgrade will unneeded Python 2-isms like these:
# coding: utf-8
from __future__ import unicode_literals
It'll also change "super(MyClassName, self)" to super()
And it'll remove unnecessary inheritance from the default object class. "class MyClass(object):" will become "class MyClass:".
🧵 (1/2)
Have you been looking for ways to level up as a Django developer?
https://www.better-simple.com/django/2026/04/21/who-is-helping-you-level-up-as-a-django-dev/
I started a new business back in February, but did so with a "quiet" roll out. Here's where I start being a bit louder. Whether you want mentorship, coaching or tutoring, I'd like to help you.
Side note, it's a big win for me to be able to work with four people already.
#Linux #Python
Was rauskommt, wenn man die KI zu Knowledgegraph und Mastodon fragt, ist schon erstaunlich. Es ist ein gut dokumentiertes Pythonskrpt geworden.
Das Netz wabert bevor es eine stabile Form annimmt.
https://www.untergang.de/index.php/inhalt/knowledge-graph
PEP news!
PEP 829 – Package Startup Configuration Files: accepted
"The SC views PEP 829 as a sensible improvement to the interpreter layer, compatible with and not precluding future work in the installer and packaging standards space. We encourage contributors interested in that broader direction to consider proposing complementary standards. Accepting PEP 829 is not a statement that the interpreter layer is the end of this work."
https://discuss.python.org/t/pep-829-structured-startup-configuration-files/106789/112
Python Tip #114 (of 365):
Instead of yielding in a loop, use yield-from.
(Technically the 2 are slightly different, but that fact rarely matters.)
Within a generator function, if you need to "yield" each item from a specific iterable, you could loop over the iterable and "yield" each item.
🧵 (1/3)
Just recorded my talk for @posetteconf 2026:
"PostgreSQL Generated Columns by Example" 🐘
Tune in on June 17th to watch my talk: 📆
https://posetteconf.com/2026/talks/postgresql-generated-columns-by-example/
Check also the schedule for many more PostgreSQL talks!👇 https://posetteconf.com/2026/
Thanks @clairegiordano for the support during the recording.🙏
#PostgreSQL #Python #Django #ORM #GeneratedColumn #GeneratedField #PosetteConf #Postgres #Database #Community #OpenSource
PEP news:
PEP 661 – Sentinel Values: accepted
Originally created in 2021, and revived just in time for Python 3.15.
https://discuss.python.org/t/pep-661-sentinel-values/9126/337
PEP 806 – Mixed sync/async context managers with precise async marking: rejected
There's a high cost to adding new syntax. "The problem this PEP addresses, while genuine, does not in our view meet that bar."
Python Tip #113 (of 365):
Instead of functools.lru_cache(maxsize=None) use functools.cache.
Both of these decorators will "memoize" a function, caching all arguments passed to it.
lru_cache is great when you want a maximum size to your cache... but if an unlimited cache size is acceptable, just use functools.cache.
Current status of PEPs for 3.15 with 12 days until feature freeze:
Informational: 1 (release schedule)
Open (under consideration): 24
Submitted for Steering Council decision: 8
Accepted (may not be implemented yet): 7
Finished (done, with a stable interface): 5
Deferred (postponed pending further research or updates): 2
Rejected, Superseded, and Withdrawn: 2
(Some are further along but the PEP's not updated yet)
🚀️ I just released rst2gemtext v0.6.0
rst2gemtext is a library and a CLI tool to convert reStructuredText documents to Gemtext (the markup format used by #Gemini [not the AI from Google!])
➡️ https://github.com/flozz/rst2gemtext/releases/tag/v0.6.0
In my last blog article I used footnotes for the first time so they are now supported by the lib, enjoy! 😁️
Please congratulate our newest PSF Fellow Members for Q1, 2026! Their continued contributions to the Python ecosystem are so very important to our community. #python
https://pyfound.blogspot.com/2026/04/announcing-python-software-foundation.html
Python Tip #111 (of 365):
Don't use the __class__ attribute.
To get the name of any object's class, you can use:
type(my_obj).__name__
You might occasionally see this instead:
my_obj.__class__.__name__
I don't recommend that approach.
🧵 (1/3)
I’m happy to announce the release 0.17 of the poezio terminal #XMPP client!
This features adds support for XEP-0444: Message reactions.
You can read more about it on my blog: https://blog.mathieui.net/poezio-0-17.html
Fun fact: poezio was one of the very first clients with support for message reactions, during the XMPP sprint where they were initially fleshed out, but the PoC branch got lost in a forge move 🤐
un outil d'analyse statique de code qui repère l'utilisation de variables d'environnement dans le code et qui peut générer des templates de fichiers .env documentés : https://github.com/harish124/envsniff
L'outil peut être utilisé localement, en hook de pre-commit et en tant que github action.
✍️ New post detailing a workaround I came up with for “leak” beahviour from Python 3.14’s new garbage collection algorithm.
Topical as @hugovk recently announced that the algorithm will be reverted in the next patch release!
https://adamj.eu/tech/2026/04/20/django-python-3.14-incremental-gc/
PEP news:
PEP 822 – Dedented Multiline String (d-string)
"The Python Steering Council has reviewed PEP 822. While we’re generally positive about the PEP, we think it would be best to defer this feature until Python 3.16, to give it more time to solidify."
See the rest:
https://discuss.python.org/t/pep-822-dedented-multiline-string-d-string/105519/130
Join our Executive Director, @baconandcoconut, in Petaluma, CA, for @NorthBayPython on 4/26, where she addresses the er, cat in the room, "The Python Community Needs More Cats"–a talk on managing your time and attention. #python #community
https://pretalx.northbaypython.org/nbpy-2026/talk/WQJ8LC/
Just released: Python Docs Sphinx Theme 2026.4! 🚀
This is the theme for the Python documentation (and others). This release:
* Adds styling for the `soft-deprecated` class
* Adds a Tamil translation
* Fixes the vertical alignment of `:Editor:`
Thanks to @hugovk for helping me with my first release!
https://github.com/python/python-docs-theme/releases/tag/2026.4
Girls' Day bei #TUXEDO ( @tuxedocomputers |: Jetzt noch anmelden!
Freie Plätze sind noch verfügbar
Home | Girls'Day https://www.girls-day.de/.oO/Show/tuxedo-computers/computer-und-programmierung-mal-anders-mit-linux.2 #Linux
#Python
#Scratch
Last sprint morning for me at DjangoCon Europe 2026 in Athens 🇬🇷
Tried to wrap up a few things I had started, helped where I could, and spent time talking and saying goodbye to many people.
Also gave a hand bringing lunch for everyone, small things but part of the whole experience 🙂
Big thanks to the organizers 🙏
After the sprint day at DjangoCon Europe 2026 🇬🇷
We went for a long walk through Athens with the Parthenon in the background, then a great dinner with Greek food and one last drink before calling it a night 🍷
Always special to spend this kind of time together, especially meeting new people along the way 🙂
Afternoon of the first sprint day at DjangoCon Europe 2026 🇬🇷
We had a hands-on session to continue the Django + AI workshop from the conference, with a few members of the official AI working group and other sprinters.
Really good discussion, helped clarify quite a few points.
A report will follow 🙂
With @thibaudcolas, Laura Gates, @knyghty, @marcosilva0000, @EmmaDelescolle
Oh look, the Python cryptography package is planning on dropping support for 32-bit Windows and macOS x86-64 (Intel) in the next release:
https://github.com/pyca/cryptography/issues/13519
Sprint day at DjangoCon Europe 2026 🇬🇷
This morning we kicked off the first sprint session, hosted by Bespote, in a room full of developers working on all sorts of Django topics.
We started by sharing goals, then everyone spread out into different groups and got to work.
Lots of energy in the room, and a great chance to collaborate and move Django forward 🙂
Lyon: Sardine : entrez dans le monde de la musique et du live coding avec Python, Le jeudi 23 avril 2026 de 19h00 à 22h00. https://www.agendadulibre.org/events/34983 #python #présentation
Last evening of DjangoCon Europe 2026 🇬🇷
A walk through the center of Athens and dinner with the speakers… really nice way to close these days.
Good company, a bit of wandering around the city, and some well-earned food after an intense conference 🙂
With Jacob Walls, @shaib, @carlton, @apollo13, @felixxm, @EvilDMP, @anorthall, @christophehenry, @meshy, @samueljsb, @timb07, @markush, @jake, @thibaudcolas
Closing session just wrapped up at DjangoCon Europe 2026 in Athens 🇬🇷
Final thanks, hugs, goodbyes… and that feeling that it went by too fast.
See you somewhere down the road 🙂
With Antonis Kalipetis, Paris Kasidiaris, ...
Last talk of DjangoCon Europe 2026 🇬🇷
Now listening to Mateusz Bełczowski 🎤
Looking at supply chain attacks in Python projects, how dependencies can get compromised and what we can actually do about it… a strong topic to close the conference 👀
Next talk at DjangoCon Europe 2026 🇬🇷
Now listening to @christophehenry 🎤
Exploring the idea of using Django templates on the frontend, transpiling them to JS to keep a single source of truth while avoiding too many HTTP requests… interesting direction 👀
First talk after lunch on the last day of DjangoCon Europe 2026 🇬🇷
Now listening to Loes Crama from Cosine 🚀
Django being used to manage data for a space mission, tracking thousands of components across Europe… always fun to see where Django ends up 🙂
un article de @emmatyping, core-dev CPython sur l'avancement de la communauté "Rust for CPython" : https://blog.python.org/2026/04/rust-for-cpython-2026-04/
- compilation de CPython avec rust
- conception d'une API standardisée (puis d'une PEP) pour intégrer rust dans CPython
L'occasion de partager ces retours d'expérience de Bob Belderbos, quant à l'apprentissage de rust sur ses pratiques de développement de Python : https://belderbos.dev/blog/rust-made-me-a-better-python-developer/
Group photo moment at DjangoCon Europe 2026 📸
Took the chance to snap an unofficial selfie while we were all there… couldn’t wait for the official one 😄
RE: https://fosstodon.org/@savannah/116416941269710052
This is really good! There's a lot going on in CPython, here's just a few highlights.
#Python #CPython #CoreDispatch
RE: https://mastodon.social/@coredispatch/116416923948839096
A very busy week prepping this edition! 😅
Thank you to @hugovk and @emmatyping for helping curate and edit edition 2. 🖤
Last talk before lunch at DjangoCon Europe 2026 🇬🇷
Now listening to @meshy and @samueljsb 🎤
A look back at how we handled transactions before atomic, and how something we now take for granted actually changed the way we write Django apps… nice mix of history and “wait, do we really understand this?” 🙂
First talk after the coffee break on the last day of DjangoCon Europe 2026 🇬🇷
Now listening to @nanorepublica 🎤
Looking at Django’s APIs in a broader sense, especially settings.py and manage.py, and how things like runserver can be confusing when it comes to deployment… interesting angle on something we all use every day 🙂
Third talk of the morning at DjangoCon Europe 2026 🇬🇷
Now listening to the Django Felllow Jacob Walls🎤
A preview of what’s coming in Django 6.1, with new fetch modes to avoid the classic N+1 queries problem without having to maintain long lists of fields… this looks really promising 🙂
Second talk of the morning at DjangoCon Europe 2026 🇬🇷
Now listening to Vjeran Grozdanic from Sentry🎤
Talking about encrypting data in Django without complex migrations, with a drop-in field that can handle both old plain text and new encrypted data on the fly… very curious about this approach 🙂
Final and third day of DjangoCon Europe 2026 in Athens 🇬🇷
Starting with the keynote by @EvilDMP 🎤
He opened with the story of Socrates, condemned to death here in Athens 25 centuries ago, just a short walk from the venue… quite a way to begin a talk about knowledge and documentation.
PyPI has completed its second audit - The Python Package Index Blog
https://blog.pypi.org/posts/2026-04-16-pypi-completes-second-audit/
#Python #programming
Day 2 of DjangoCon Europe 2026 in Athens is done 🇬🇷
Talks, chats, drinks, gelato 🍦 and, more than anything, a lot of people I got to meet again today.
These days are intense, but in a good way 🙂
With @nanorepublica, @thibaudcolas, @jack, @williamblackie, @knyghty , Francisco De Maussion, Juliana Nicacio, Laura Gates, @shaib
🗞️ We're going to revert the incremental garbage collector in Python 3.14 and 3.15. See here for details: https://discuss.python.org/t/reverting-the-incremental-gc-in-python-3-14-and-3-15/107014
#Python #Python314 #Python315
Gelato break during DjangoCon Europe 2026… @thibaudcolas bring us in a place called Django Gelato in Athens🍦😄
Couldn’t not stop here.
Thinking of @mariatta , this feels very on brand for her conference selfies 😄
With @thibaudcolas, David Vaz, Glenn Mendoza, Jens-Erik Weber, Hwayoung Cha,
Just got off stage with @carlton at DjangoCon Europe 2026 🇬🇷
We shared the next edition of Django on the Med 🧳
→ Pescara, Italy 🇮🇹
→ 23–25 September 2026
https://www.djangomed.eu
Then I also introduced PyCon Italia 2026
→ Bologna, Italy 🇮🇹
→ 28–30 May 2026
https://2026.pycon.it/en
And on May 27 there will be a free community day with workshops, including a special “Django Off The Med” session 🙂
Took part in the “Django and AI: A Community Conversation” workshop at DjangoCon Europe 2026 🇬🇷
Really appreciated the space that Laura Gates and @thibaudcolas created for an open discussion around AI in the Django ecosystem.
I joined the "Core maintenance of Django" group with @EmmaDelescolle, @marcosilva0000, Francisco De Maussion
I hope this is just the starting point for something bigger 🙂
The PSF is looking for a PyPI Sustainability Engineer to join the team! This is a full time, 1-year contract (with the possibility of renewal), globally remote position. If you love #Python, care about open source, and want your work to matter at infrastructure scale–consider applying! Please boost this post and share with your colleagues and networks. #PyPI #Python
https://pythonsoftwarefoundation.applytojob.com/apply/xz5k3X31UQ/Sustainability-Engineer-PyPI
https://pythonsoftwarefoundation.applytojob.com/apply/xz5k3X31UQ/Sustainability-Engineer-PyPI
#Python getpass.getpass() and surprise surprise, as a phishing countermeasure, this corpo Windows 11 constantly scans keyboard input to see whether it matches your active directory password. 🙄
Second talk of the morning at DjangoCon Europe 2026 🇬🇷
Now listening to Laís Carvalho @Laiscarvalho 🎤
Talking about observability in Django, going beyond print() and logs to actually understand what’s going on inside your app… this is one of those things that makes life much easier once you start using it 🙂
Day 2 at DjangoCon Europe 2026, my first talk of the morning 🇬🇷
Now listening to @anorthall 🎤
Started with caving… and now “caving” into old reports, digging valuable data out of decades of messy documents and turning it into something usable. Really nice overlap between the topic and the process 🙂
Day 1 of DjangoCon Europe 2026 in Athens is done 🇬🇷
As always, the best part is the people. Old friends, folks I’ve shared so many moments with, volunteers, and lots of new faces
Also had a few people come up during the day to chat, ask about my talk, share feedback… those small moments really stay with you 🙂
This is the human side of the Django community
With @anthony, @jong0uld, @anze3db, @marcosilva0000, Andrew Williamson, @benjaoming, Timothy Mccurrach
Wrapping up the first day of DjangoCon Europe 2026 with a big dinner in Athens 🇬🇷
After a full day of talks, now sitting at a long table with people from all over Europe, sharing stories and really good Greek food 🙂
These moments are just as important as the talks and workshop.
With Jens-Erik Weber, me, @carlton, @EvilDMP, @apollo13, Fabian Braun, Joe Burch, Valentinos Evripidou, @felixxm, @markush , @jrief, @be_haki
Last talk of the first day at DjangoCon Europe 2026 🇬🇷
Now listening to @timb07 🎤
As tables get extremely large, the abstraction starts to break down and performance issues show up… curious to see how partitioning helps in real-world cases 🙂
After the DjangoCon Europe coffee break, back into the room for @jake ☕️
Django supports multiple database connections, but leaves it up to you to manage how to use them and which queries to send where… let’s dig into this 🙂
Back after lunch at DjangoCon Europe 2026 and now sitting in a talk by @be_haki 🍽️
He’s diving into Django signals, reliability, and how to make them work better in real-world scenarios… this is one of those topics you don’t think about until it breaks 😄
This morning I presented my talk “AI-Assisted Contributions and Maintainer Load” at DjangoCon Europe 2026 in Athens 🇬🇷
Thanks to everyone who joined, filled the room, and asked thoughtful questions, it really means a lot 🤗
I’ll share slides and more soon 👇
https://www.paulox.net/
Photo of the talk by @felixxm
With Antonis Kalipetis
un article de Oshadha Gunawardena qui explique le fonctionnement de uv sous le capot : https://noos.blog/posts/uv-how-it-works-under-the-hood/
- correspondances avec les commandes pip
- structure du projet rust
- les options de uv init (application / bibliothèque)
- les mécanismes derrière uv add : résolution PubGrub, gestion d'erreurs, téléchargements parallélisés, lockfile
- cache global
- les intérêts de rust
Next talk just started at DjangoCon Europe 2026 🎤
Great to see @markush on stage talking about Django’s security process, from triaging and fixes to disclosure and releases, with a look at how AI might impact all of this… really curious about this one 👀
First keynote of DjangoCon Europe 2026 just started 🎤
Really happy to see @carlton on stage opening with a talk about keeping Python dynamic while adding small “static islands” where they actually help, curious to see how this lands 🙂
Welcome along to our next meetup on Tuesday 21st April, in collaboration with @pydata_helsinki kindly hosted by TEK & ILry!
Owain Hopeaketo & Anne Granat-Jukakoski: Intro to TEK & ILry unions
Tietoala IT sector, collective agreement and the law
The famous HelPy or famous PyDataHel quiz!
@calpaterson: "Disregard that!" attacks
RSVP now and see you next week!
https://www.meetup.com/helpy-meetups/events/314258115/
#Helsinki #Python #HelPy #meetup
Packaging 26.1 out! Another huge release, with lots of great stuff, like pyemscripten wheels, free-threading stable ABI, dependency-groups, direct-urls, more pylock, & key for filter. Benchmarking, property-based testing, 2x faster performance in places! https://github.com/pypa/packaging/releases/tag/26.1 #python #release
This trip to DjangoCon Europe in Athens wasn’t just a flight ✈️
I tried to turn it into a small “Django speaking tour”, a bit like the one I did in 2022.
Yesterday I was in Lecce for a Django talk and a walk through the city with the local community. This morning I reached Bari, had a quick lunch by the Adriatic sea with the @pybari organizer, and then flew to Athens.
Same sea, different shore, same community.
Looking forward to meetings you all.😊
The April edition of the PSF Board Office Hour is about to begin 🐍 🗒️ 9 PM UTC. Join us to share how we can help your community, express your perspectives, and provide feedback for the PSF! #python
https://pyfound.blogspot.com/2025/10/a-new-psf-board-another-year-of-psf.html
3️⃣ Three weeks until Python 3.15 feature freeze!
https://hugovk.dev/next-release/
Get yer PEPs'n'PRs in!
https://discuss.python.org/t/three-weeks-to-beta-1/106962
#Python #Python315 #PEPs #FeatureFreezeGoesBrrr
Ivre, il écrit un script #python pour synchroniser ses abonnements sur son compte de secours masto avant de découvrir qu'il existe une fonctionnalité permettant d'importer ceux-ci (via un simple fichier...)
more specifically, this PR exposes a curious side effect of the Unicode 15.0 → Unicode 15.1 upgrade when it comes to #Python identifiers: ZWJ is now allowed as a 'continue' character (i.e. you can use it in an identifier as long as it's not the first codepoint)
```
$ python3.12 -c 'print(str.isidentifier("A_\u200d_B"))'
False
$ python3.13 -c 'print(str.isidentifier("A_\u200d_B"))'
True
$ python3.13 -c 'print(str.isidentifier("A_\u200d"))' # unfortunately, a trailing ZWJ is legal too
```
Do you use astral-sh/setup-uv@v7 in #GitHubActions?
And it's not hash-pinned?
And you use #Dependabot or #Renovate?
The setup-uv project has switched to only Vx.y.z tags, no more Vx or Vx.y.
But Dependabot and Renovate won't upgrade from Vx to Vx.y.z, so you'll need to manually update to setup-uv@v8.0.0 to keep up with future updates.
"To increase security even more we will stop publishing minor tags. You won't be able to use v8 or v8.0 any longer."
Your #Python journey starts here! Join Al Sweigart at #PyConUS 2026 for the tutorial "Python for Absolute Beginners" on May 14th 🐍 https://us.pycon.org/2026/schedule/presentation/49/
Register now: https://us.pycon.org/2026/accounts/dashboard/
Ce repository GitHub semble contenir un logiciel capable de valider les fonctionnalités d'un câble USB-C. J'hésite à le tester ... https://github.com/TheOwn68/SoftCable #python #opensource #usbc #test #software
Mastodon.py version 2.2.0 is now out! 🦣🐍
There's a quite a few bug fixes (thank you to everyone who reported and/or fixed something), and support for 4.5 functionality: Quotes as well as async refreshing! Also quite a bit of additional testing, coverage is now above 90%.
As usual, please report any bugs you see, I should have the time to do quick fixes and maintenance release in the near future hopefully.
* Changelog: https://github.com/halcy/Mastodon.py/releases/tag/v2.2.0
* Docs: https://mastodonpy.readthedocs.io/en/v2.2.0/
* PyPi: https://pypi.org/project/Mastodon.py/
@hynek Parallelise wheel build across as many jobs as practical, upload artifacts, then a final job downloads them all and uploads in a single go.
https://github.com/python-pillow/Pillow/actions/runs/23848087770
https://github.com/ultrajson/ultrajson/actions/runs/22976576066
(Maybe make sure the wheels go up before the sdist to ensure no-one runs into a source compile mid-upload.)
#Python
Maintainer friends of wheel-heavy #Python packages: do we already have some practical, standard way to automatically upload all the cibuildwheel output across all architectures? My current workflow is a) a pain in the ass and b) requires me to have one last PyPI upload token.
Python Tip #100 (of 365):
Prefer the pathlib.Path object's is_file() and is_dir() methods over exists()
The exists method tells you SOMETHING is there but not WHAT.
Using is_file() or is_dir() is more explicit about what you're actually checking for, and usually what you actually want.
Usually when I find myself using exists(), I'll realize that I wanted one of the more specific methods instead.
le prochain #PythonRennes aura lieu le lundi 27 avril 2026 soir chez Néosoft (merci pour l'accueil). Quentin Caron nous fera un retour d'expérience du framework d'API web Django Ninja, Jesshuan Diné nous présentera la méthodo et les résultats de son benchmark d'orchestrateurs de tâches (airflow, argo, temporal.io, windmill).
Inscription gratuite mais nécessaire sur https://www.meetup.com/python-rennes/events/314213069
🎉📦 The Packaging Summit at PyCon US 2026 is now live.
If you work on Python packaging, maintain packages, support downstream distribution, or have topics that would benefit from focused in-person discussion, please take a look:
uv 0.11.5, sorti ce matin, contient la commande `uv audit` qui analyse les vulnérabilités dans les dépendances de votre projet : https://docs.astral.sh/uv/reference/cli/#uv-audit. Le rapport pointe les vulnérabilités et la version contenant le correctif.
Astral a aussi publié un retour d'expériences de bonnes pratiques d'intégration continue et de déploiement continu : cooldowns, versionnement d'actions, trusted publishing.
https://astral.sh/blog/open-source-security-at-astral
Smello : un paquet bien pratique quand on souhaite suivre les trames réseaux émises par les outils qu'on utilise (HTTP, gRPC) - par exemple des librairies Google ou AWS : https://smello.io/
If suffit d'ajouter 2 lignes dans son code (import smello; smello.init()), de lancer le serveur local, et le tour est joué.
Have a date string and want to find the format string needed to parse it?
Read more 👉 https://trey.io/l4b84k
La rediffusion de la session "Optimiser son intégration continue de projet Python (mais pas que)" est en ligne 🎉
Merci Kanoma pour l'accueil et Alex pour la captation vidéo 🙏
- vidéo : https://www.youtube.com/watch?v=Dzjjwhx2Amk
- diaporamas : https://github.com/python-rennes/sessions/tree/main/python-rennes-2026.03.17-ci-cd-projets-python-2
Et oui ! Python Rennes a désormais son organisation github pour stocker les liens de rediffusion et les supports de présentation 🥳 Les sessions précédentes seront rajoutées progressivement - abonnez-vous 🔔
More in the final 3.15 alpha:
🖨️ pprint: new `expand` arg for Black-like output (let's make it default?)
🧛 bytes.replace() count arg can be a keyword
🌊 wave: IEEE floating-point WAVE audio support, new getformat()/setformat()
⏱️ timeit: configurable target time for autorange()
Please test and give feedback!
New releases!
🐍 #Python 3.15.0a8!
🐍 Python 3.14.4!
🐍 Python 3.13.13!
🖼️ Pillow 12.2.0!
https://blog.python.org/2026/04/python-3150a8-3144-31313/
https://pillow.readthedocs.io/en/latest/releasenotes/12.2.0.html
⚠️ Final 3.15 alpha: only 4 weeks until the feature freeze! 🧊
New in this alpha:
🧵 PEP 803: “abi3t”: Stable ABI for free-threaded builds
🪟 Windows 64-bit binaries use the tail-calling interpreter for up to 40% speedup!
https://docs.python.org/3.15/whatsnew/3.15.html#whatsnew315-windows-tail-calling-interpreter
🦋 REPL: colour tab completion with fancycompleter
Python Tip #96 (of 365):
When manipulating file paths or asking questions about them, use pathlib
"Stringly typed code" uses a string to represent a value when a better type exists.
For representing file paths, pathlib.Path objects are this better-than-a-string type.
Unlike with strings:
1. It's hard to get yourself into trouble with pathlib.Path
2. When I see a pathlib.Path object, I know we're representing a path
🧵 (1/2)
You can now use Ratatui in Python! 🐀🥳
🐍 **PyRatatui** — Python bindings for @ratatui_rs
💯 Build high-performance TUIs in Python with 35+ widgets, async & effects
🦀 Backed by Rust via PyO3
⭐ GitHub: https://github.com/pyratatui/pyratatui
#rustlang #ratatui #tui #python #library #bindings #pyo3 #terminal
I've released v2.10.0 of #BlogMore, my blog-oriented static site generator. This release adds a post streak display to the stats page. Got to keep that writing streak going!
Just fresh out of the oven, release 0.16.1 of the poezio TUI XMPP client!
Mostly fixes and internal stuff, but also adds the ability to see redacted/moderated messages if you wish so – particularly useful if you are the one moderating –.
David MacIver, un des auteurs de test hypothesis pour Python, vient de le proposer pour différents langages de programmation : https://antithesis.com/blog/2026/hegel/. L'outil est donc disponible pour rust, viendront ensuite Go, C++, OCaml et TypeScript.
C'est le code Python qui est enrobée d'une surcouche d'API pour les autres langages.
Pour en savoir plus sur https://hypothesis.works/, re·voyez la session de Michel Caradec sur le property-based testing : https://youtu.be/mV0vTbs2cQ0?si=aA7yQZWORjwSVo7f&t=2592
PyCon US has a brand new AI track this year and it's packed.
Agents. EdgeAI. Voice AI. Explainability. Hardware. Performance.
Friday May 15, Long Beach.
Full breakdown of every session + tutorials worth your time
https://pycon.blogspot.com/2026/04/python-and-future-of-ai-agents.html
REGISTER https://us.pycon.org/2026/attend/information/
#PyConUS2026 #Python #AI
PyCon US has a brand new AI track this year and it's packed.
Agents. EdgeAI. Voice AI. Explainability. Hardware. Performance.
Friday May 15, Long Beach.
Full breakdown of every session + tutorials worth your time
https://pycon.blogspot.com/2026/04/python-and-future-of-ai-agents.html
REGISTER https://us.pycon.org/2026/attend/information/
#PyConUS2026 #Python #AI
https://pycon.blogspot.com/2026/04/python-and-future-of-ai-agents.html
Donc je comprends absolument pas comment une syntaxe qui marche à un endroit peut faire planter le générateur à un autre (surtout, je rappelle, quand la variable créée par cette syntaxe n'est pas appelée ensuite).
Qu'est-ce qui peut expliquer que du code pris dans un fichier de script de FreeOrion casse la génération d'univers de FreeOrion quand on le copie dans un autre fichier de script FreeOrion ?
Je veux dire, même quand c'est du code qui ne fait rien ?
(il définit une variable qui est utilisée dans le fichier original, mais pas dans le fichier de destination)
(et oui les variables qu'il utilise sont définies dans le fichier de destination)
I made some tweaks to a personal project called PyCheck. Its entire purpose is to put an icon in my applications menu that I can click to easily verify whether a file matches its original checksum without manually reading the whole hash.
@treyhunner In 3.15 we've added an re.prefixmatch() as an explicit alias to the confusing re.match().
https://docs.python.org/3.15/library/re.html#prefixmatch-vs-match
#Python #python315 #regex
Python Tip #95 (of 365):
Don't use re.match(): it's confusing.
I'm not sure I've ever seen re.match() used when it wasn't being used by mistake.
If you think you want re.match(), you probably want either re.search() or re.fullmatch() instead.
When matching a regex against a string, we're usually either trying to:
1. Find a regular expression within a string
2. Match a regular expression against a whole string
re.match() does neither of those!
🧵 (1/3)
Well, that's something...
OpenAI to acquire Astral | OpenAI
https://openai.com/index/openai-to-acquire-astral/
✍️ New post introducing profiling-explorer, a tool for exploring Python profiling data (pstats files).
Use it with the classic cProfile (now called profiling.tracing) or Python 3.15’s new sampling profiler, Tachyon (profiling.sampling).
https://adamj.eu/tech/2026/04/03/python-introducing-profiling-explorer/
For real, many people asked me for their smaller and mid-sized environments, how to handle remote syslog of their nodes. I had some ideas (some of you may have already found my Rust interpretation of this) but I think having this included in #PegaProx as a centralized management interface makes more sense.
So, PegaProx comes with an own syslog server (ipv4/ipv6, udp/tcp, encrypted/unencrypted support) and is wired to the interface within the resources tab. Providing a quick overview of all your logs and filter options. The next thing is wiring it to the notification system of PegaProx, allowing automated alerting. Might be nice to quickly identify when the quorum got lost - all built-in into PegaProx!
#easter #development #coding #python #opensource #foss #pve #proxmox #proxmoxve #virtualization #vmware #alternatives #free #logging #security #gyptazy #proxmoxdatacenter #homelab #enterprise
🚀️ Rivalcfg v4.17.0 released!
Rivalcfg is a command line tool (and also a #Python library) to configure #SteelSeries gaming mice on #Linux, #macOS and #Windows.
➡️ https://rivalcfg.flozz.org/news/release_v4.17.0/
This version adds support for 3 new devices: the Rival 5 (regular version and Destiny Edition), and the Prime+. It also fixes a small bug.
BlogMore v2.8.0 is out, with a wee bugfix, handling a situation where lines could be lost if they looked like meta data: https://blog.davep.org/2026/04/02/blogmore-v2-8-0.html
RE: https://fosstodon.org/@pypi/116335453780319113
rapport d'incident par @miketheman & @sethmlarson sur la corruption de #liteLLM & #Telnyx via #Trivy : https://blog.pypi.org/posts/2026-04-02-incident-report-litellm-telnyx-supply-chain-attack/
Conseils :
- délai de précaution dans la montée de version des dépendances
-- pip.conf
[install]
uploaded-prior-to = P3D
-- uv.toml / pyproject.toml
[tool.uv]
exclude-newer = "P3D"
- utiliser un lockfile pour les dépendances transitives
- publication : par le trusted publishing, surveiller les PR touchant aux workflows de CI
un projet de configuration d'environnement de travail en Python créé par @mattsi, facile à personnaliser ou étendre : https://github.com/Mattsi-Jansky/dotfiles.new
Mattsi explique sa démarche, très différente d'#Ansible par exemple, dans ce billet de blog : https://matt.si/2026-04/dotfiles/
RE: https://fosstodon.org/@pycon/116335122208744416
Looking forward to this at PyCon US 2026 in Long Beach where I’ll be speaking on Friday morning (May 15th).
Maintainers are already feeling the impact of AI-assisted contributions. I’m not sure we fully understand it yet.
Paolo Melchiorre boosted
Python Tip #92 (of 365):
Don't overuse regular expressions
If a containment check of a common string method will do, don't use a regular expression.
Instead of this:
if re.search(r"^http://", string):
Do this:
if string.startswith("http://"):
Instead of this:
if re.search(r"#", string):
Do this:
if "#" in string:
And instead of this:
parts = re.findall(r"\S+", string)
Do this:
parts = string.split()
🧵 (1/2)
🗞️📨 🐍check your inboxes, a new PSF newsletter just shipped!
Want to stay up to date on the latest PSF, #PyConUS, PyPI, and #python news? Subscribe today:
https://www.python.org/psf/newsletter/
BlogMore v2.7.0 has been released. This version adds a visual indication of a published post is still in draft mode: https://blog.davep.org/2026/04/01/blogmore-v2-7-0.html
@nik Thanks for mentioning typst (https://github.com/typst/typst). I hadn't heard about that.
It looks like a great way to create pdfs and the examples look a lot easier than fighting with LaTeX syntax.
A quick search turned up #Python bindings and a way of importing data from JSON to use it as a template engine.
I guess I'll have to take a look.
Les dernières nouveautés concernant le support de Python dans vsCode (dont les mises à jour sont désormais bi-mensuelles) : https://devblogs.microsoft.com/python/python-in-visual-studio-code-march-2026-release/
functional, but currently only prints to stdout.
C'est une direction très loin de ce que je fait avec Ansible, mais ça semble très séduisant. https://matt.si/2026-04/dotfiles/ #installation #linux #machine #automatisation #script #python
Just cut the CI/CD build time for my blog (blog.hofstede.it) by over 100%!
I use Pelican as a static site generator and deploy via Forgejo Actions. Instead of running apt install for Python dependencies on every single run, I finally built a custom container image.
The best part? Forgejo has a built-in OCI registry! I just pushed my custom image to my git-forge and referenced it in the workflow. Down to a 24s deploy time! Nice.
Please welcome Stan Ulbrych @stanfromireland as the newest member of the Python core team!
https://discuss.python.org/t/vote-to-promote-stan-ulbrych/106562
TIL #Qt abandoned #WebKit in favor of the Chromium engine. And in particular:
> Qt WebEngine does not allow direct access to the document object model (DOM) of a page. However, the DOM can be inspected and adapted by injecting scripts
That means that if I want to reimplement
https://www.grulic.org.ar/~mdione/glob/posts/implementing-selenium-with-python-and-qt/
I will have to program the engine with JavaScript shaped butterflies[1].
[1] https://www.explainxkcd.com/wiki/index.php/378:_Real_Programmers
@adamchainz @treyhunner And https://github.com/python/cpython/pull/147943 is merged!
Keyword `count` in `bytes.replace` is coming to a Python* near you soon**!
* 3.15
** October 2026
I wish #Python's string replace method allowed specifying "count" as a keyword argument.
>>> text = "Hello? Python?"
>>> text.replace("?", "!", count=1)
I find that more explicit than this:
>>> text.replace("?", "!", 1)
'Hello! Python?'
But the replace only allows positional arguments 🐍😢
Calling all creative, artsy, and all-around wonderful Python folks! 🐍✨
We’re inviting you to donate an item to the PyLadies Charity Auction at #PyConUS 2026. It’s a great way to support PyLadies, share your creativity, and show the community what you’ve got.
Have something fun or unique to contribute? Donate today and help make the auction amazing! #python #PyLadies
👉 https://pycon.blogspot.com/2026/03/support-pyladies-donate-to-pyladies.html
Nå: Vi er alle blevet fritstillet fra mit arbejde og derfor leder jeg så småt efter noget nyt at rive i (jeg har fri 3 måneder med løn, og derfor ikke travlt endnu).
Så: Kender du nogen der mangler en udvikler der er glad for #Python og #Django? Helst et sted hvor man kan få lov at skrive sin kode selv, uden forventning om at man gør det med assistance fra AI.
Mit CV er her: https://decibyte.net/cv/
And in English:
We have all been laid off and released from duty, and I have slowly started looking for something new to do (I have 3 paid months off, so I'm not in a hurry yet).
Do you know someone looking for a developer who enjoys working with #Python and #Django? Preferably a place allowing you to write the code yourself, without expectations that you do it with assistance from AI.
My CV: https://decibyte.net/cv/
I'm looking at Repology, and I think most of the distributions and other downstreams have rightfully boycotted #Python #chardet #copywashing. Of course, there's the possibility that some of them are simply out-of-date, though.
So far chardet-7 is distributed by #Chromebrew, #CondaForge (not on Repology), #Homebrew, #KaOS, #OpenIndiana, #openmamba, #Ravenports, #Spack and #T2 SDE. Shame on you!
https://repology.org/project/chardet/versions
https://repology.org/project/python%3Achardet/versions
The feedback was honestly amazing. Many were impressed by how PegaProx brings essential enterprise grade features to Proxmox clusters that are still missing today. We can clearly see the gaps that were fixed by #ProxLB, #ProxSnap, #ProxCLMC, #ProxPatch and many other ones! Keep in mind, PegaProx is free and fully #opensource!
That said, we know there's always room for improvement. Whether it is major enhancements or small quality of life tweaks, every detail matters. Over the weekend, I took your feedback from the calls seriously and integrated a number of improvements to make PegaProx even more intuitive and powerful.
Your input drives this project forward. If you feel something is missing or could be improved, let us know!
PS: Pegaprox also support #XCP (#XCPng) ans corss-cluster / cross-hypervisor migrations. So, you can quickly jump over to XCP 🙂
Blog: https://gyptazy.com/blog/pegaprox-real-datacenter-manager-proxmox-clusters/
Website: https://pegaprox.com/
GitHub: https://github.com/PegaProx/project-pegaprox/
#PVE #Prox #ProxmoxVE #homelab #enterprise #virtualization #foss #datacenter #manager #python #python3
L'Afpy a besoin de vous pour trouver un lieu pour la #pyconfr 2026....
https://discuss.afpy.org/t/on-a-besoin-de-vous-pour-trouver-un-lieu-pour-la-pyconfr-26/2972
I've decided it's time to tag a v0.1.0 release on my roguelike game project, Stagger. It's more of a small demo than a full game at this point. It is turn-based, and has purely text-based "graphics", like the original Rogue.
You can find the repository at either of these locations:
https://git.sr.ht/~jvalleroy/stagger
https://codeberg.org/jvalleroy/stagger
The game is developed in Python, using ncurses. It is dual-licensed under AGPL and MPL.
#python wizards, is there a reason that sorted() returns a list, but reversed() -- iterable?
it feels very un-Pythonic
RE: https://en.osm.town/@mdione/116239489362801981
OK, the push for AI is official. I'm definitely open for new positions.
I'm a jack of all trades, systems dev and admin, #Linux, #Python, #postgres, #ansible, #prometheus, #grafana, security conscious, I like to review code, and for my hobbies I do some #GIS and would like to do more.
Check my CV https://www.grulic.org.ar/~mdione/
and my blog https://www.grulic.org.ar/~mdione/glob/ (not a typo)
for more details.
Marcos Dione boostedI have been suggested that the company I'm working is not doing well. Than and a push for AI is telling me it's maybe time to move on.
What am I? Currently I'm doing #Python, #SysAdmin, GitHub/GitLab admin (yes, both), some Kafka, used to do some Postgres (now we have a DB team), Ansible and more.
Edit: more info: https://en.osm.town/@mdione/116302423501761728
What do I want? No AI, no gambling, no blockchain. In #Marseille or remote. I can invoice abroad, but I would rather be an employee.
1/
The Story of Python's Lazy Imports: why it tooks 3 years and 2 attempts to have a "lazy" Keyword coming in version 3.15 #Python https://techlife.blog/posts/the-story-of-pythons-lazy-imports-why-it-took-three-years-and-two-attempts/
Si vous vous demandez ce que sont capables de réaliser des élèves de terminales #NSI en #Python, et sans IA, c'est ici en 2 minutes (participation aux Trophées NSI) :
https://tube-sciences-technologies.apps.education.fr/w/5ccBkmDoCAgJd6cVB6DkLf
Fier de #MesÉlèves (et ce n'est pas grâce à moi 😂 )
<+mgorny> that's gunicorn
<+mgorny> looks like vibecoding hard
<@sam_> sigh
<@sam_> https://github.com/benoitc/gunicorn/pull/3559
<@sam_> i agree it looks like it
<+mgorny> how else would a dead-so-far project suddenly make dozen commits in a day?
<@sam_> I really wish they'd leave projects "dead"
<@sam_> it's far more honest
I've just done a pass over a client project with deptry, and it worked great for finding unused dependencies!
Wow, thanks @hugovk for making my "import datetime as dt" recommendation official in the Python docs, with a link to my blog!
Using #Python for #AI but not involved in the community? You're leaving a lot on the table! Watch the PSF's Executive Director @baconandcoconut on #PyTV from @jetbrains to explore why community participation is at the core of Python's power. 🎤🐍 https://www.youtube.com/watch?v=DkN7P4Cmto8
Je reprends en simplifiant :
for i in iterable
liste_finale=[objet for objet in liste_finale if objet not in autre_liste[i]]
C'est valide comme syntaxe ?
Ma question est si liste_finale peut être des deux côtés de l'affectation, dans le cas précis d'une soustraction de liste
un épisode du podcast @talkpython qui parle de la création de l'outil de génération de site statique Zensical : https://talkpython.fm/episodes/show/542/zensical-a-modern-static-site-generator
L'invité, @squidfunk, est le créateur du plugin Material for Mkdocs ; il a créé l'outil https://zensical.org/docs (en #rust avec une API #Python pour écrire des plugins) suite à l'annonce de la version 2.0 de Mkdocs, dont l'architecture est incompatible avec les 300+ plugins développés par des tiers.
@brettcannon Thanks for this writeup!
"What can you do as a person if you don't have code to check that things line up (which isn't a lot of code; the lock file should have the index server for the package, so you follow the index server API to get the digital attestation for each file and compare)?"
Let's build this into common tooling! Directly into installers like pip and uv? And pip/uv audit?
#Python #security
Python Tip #84 (of 365):
Use variables to improve code clarity.
Today's tip is the inverse of yesterday's tip.
Well-named variables CAN make your code more readable and they don't really make your code less efficient (after all, variables are just pointers).
🧵 (1/2)
Every import in #Python executes the module, from start to finish.
Meaning? Big modules slow down your program's startup time.
Coming in Python 3.15 this October: "lazy import", which delays the load until a name is used:
lazy import MODULE
lazy from MODULE import NAME
I released yesterday version 0.16 of Poezio, a terminal XMPP client, here is the blog post with a release announcement: https://blog.mathieui.net/poezio-0-16.html
Some nice bugfixes (thanks @ge0rg for testing), and finally handling of message moderation & retraction.
Note: the fact that we very often share version numbers with @profanity is a pure coincidence!
#Cyberattaque contre la #librairie #python #LiteLLM :
Cinq jours pour infiltrer, trois heures pour tout voler : comment des #hackers ont piégé des #millions de #développeurs #IA
Alors en fait je vois qu'il y a un autre moyen d'aboutir à mon objectif, en m'attaquant à l'itérable utilisé pour créer l'itérable de tuple :
objects_needing_specials = [obj for obj in universe_objects if random.random() < base_chance]
for e in empire_home_systems :
objects_needing_specials = [obj for obj in objects_needing_specials if obj not in fo.systems_within_jumps_unordered(5, [e])]
Ça peut marcher de filtrer la liste à partir d'elle-même ?
Cette syntaxe est acceptable ?
If you've ever installed #Python #LiteLLM, you have remedial actions you need to take immediately.
Headline: A popular Python library just became a backdoor to your entire machine
Link: https://www.xda-developers.com/popular-python-library-backdoor-machine/
Thoughts on OpenAI acquiring Astral and uv/ruff/ty https://lobste.rs/s/dhogio #ai #python #rust
https://simonwillison.net/2026/Mar/19/openai-acquiring-astral/
BlogMore v2.2.0, now with post counts in the archive page. https://blog.davep.org/2026/03/23/blogmore-v2-2-0.html
“But there's another issue that often crops up when splitting text into lines: trailing newlines.”
Read more 👉 https://pym.dev/splitlines/
Question Python : quand on crée un itérable de tuples avec zip, est-ce que l'on peut faire un test sur les valeurs d'un des itérables en entrée avant d'intégrer le tuple correspondant à l'itérable de tuple ?
Dans le but de ne pas intégrer le tuple correspondant à l'itérable de tuples s'il rate le test, donc.
New post on the Python Insider blog from Ken Jin:
"Python 3.15's JIT is now back on track"
https://blog.python.org/2026/03/jit-on-track/
#Python #JIT #performance #python315
@anze3db présente une démarche optimisant le démarrage d'une application #django :
- le drapeau "python -X importtime ..." mesure les temps des imports
- "if TYPE_CHECKING:" pour déclarer des imports en tête de module et faciliter les outils de vérification de type
- ruff.lint.flake8-tidy-imports.banned-module-level-imports déclare les modules à chargement localement
⚠️ ça déporte ces temps de chargement aux 1res exécutions des requêtes
https://blog.pecar.me/speeding-up-django-startup-times-with-lazy-imports/
WHEREAS,
Most developers these days work with a GUI;
Most screens these days use a 16:9 aspect ratio;
Hardly anyone uses a screen resolution of less than 1920px horizontal;
Even at a font size of 14pt, one can fit approximately 180 monospace characters in a terminal of that width;
NOW, THEREFORE, BE IT RESOLVED,
PEP 8's current 79-character line length limit be doubled.
| Motion seconded.: | 12 |
| This is heresy.: | 14 |
À la recherche d'un travail Développeur Senior ou Lead Tech Symfony, télétravail complet ou partiel mais sur Lyon ou Grenoble avec au moins 3 ou 4 jours de TT et horaires aménageables. S'il y a Angular ou un autre langage que PHP (Python, par exemple) c'est bien.
#development #developer #symfony #php #angular #python #jechercheUnJob
This is incredibly depressing news. Scam Altman is now in control of the supply chain of a significant portion of the Python community.
Fuck this shit.
🦾 Project Detroit: Java interop with JavaScript and Python
"The novel approach that we are taking with Detroit is that we are embedding the V8 and CPython runtime directly inside the JVM process,"
https://go.theregister.com/feed/www.theregister.com/2026/03/17/oracle_project_detroit_java/
Hey, in light of https://github.com/encode/httpx/discussions/3784 , does anyone know of how to get in touch or give feedback?
I guess there's a stackoverflow tag
So, in the #PHP ecosystem, people can build a package like roave/security-advisories, which has a huge list of "conflict" dependencies.
These don't say "install this as a dependency", but instead "I'm incompatible with that dependency in that version". And the versions listed there are those with known security vulnerabilities, effectively preventing you from installing them, which is good.
Is there something similar in the #Python ecosystem? Is it even possible?
https://github.com/Roave/SecurityAdvisories/blob/latest/composer.json
RE: https://wandering.shop/@xgranade/116259862366462379
This is an excellent take on the whole #Astral / #OpenAI situation. It's a good read for all #Python nerds.
A few thoughts on Astral / OpenAI, now that the emotions have sat for a bit.
First, let me start by noting that AI is an attack on open source, inherently, by necessity, and at a structural level. That argument is bigger than Astral, but the short version is that you cannot simultaneously expand the public commons and work towards it's enclosure; moreover, if the public commons do not stand for the public good, then it's not really a commons any more.
I’m incredibly tired of people posting with a (programming) language tag just to hate on that language. Their **words** are always: why said language is wrong and awful and no one should use it, or how the hell did this language become so popular when mine is obviously superior; but their motivations are never that sophisticated.
**Their** language thinks about the problem in some particular way, and they’re so familiar with that way of thinking that it has become part of their identity. The target of their hate thinks about the problem some other way, and that is now an affront to them … to their identity … to their sense of self-worth.
I prefer Python to Ruby (and I’m not a Ruby expert, so I could be persuaded). That doesn’t make Ruby bad or Python good! I prefer Rust to C++ (and by the way, I **am** a Python and C++ expert — and **not** a Rust expert!).
Don’t shut out alternatives! I’m not saying you have to love them or even **use** them; but they still exist because something in them has value! If you pretend they don’t, you’re just deceiving yourself. Like being a flat-earther. Figure out what you can learn! Grow! Keep using your favorite if it remains the best fit for your problem. Just use it smarter!
un article de @mkennedy indiquant que depuis Python 3.12, asyncio.create_task() ne garde qu'une référence faible vers la tâche lancée dans la boucle d'évènement, et que celle-ci peut se faire garbage-collecter avant (la fin de) son exécution : https://mkennedy.codes/posts/fire-and-forget-or-never-with-python-s-asyncio/
La solution ? Garder une référence forte de la tâche (dans un set, par exemple) et ajouter un done_callback qui l'en retire pour la déréférencer afin que le garbage collector puisse faire son travail.
🚀️ Pontoon Debian v2026.03.20 released
I just released a new version of Pontoon Debian, a manual to install and maintain Pontoon (#Mozilla web-based translation software) on #Debian and #Ubuntu.
➡️ https://wanadev.github.io/pontoon-debian/migration/pontoon-v2026.03.20.html
Please note that this may be one of the last updates for this project. If you are using it, please let me know and consider contributing. 🙂️
Sur le forum de l' #Afpy, un échange intéressant suite à l'annonce du rachat de la société Astral (éditeur de 'uv', entre autre) par OpenAI.
If you’re looking for a nice, modern, featureful #Python package and environment manager, may I suggest PDM?
And maybe also toss some funding their way.
RE: https://mastodon.social/@hynek/116256569856726011
I use this, it's good! You never know when you might need the extra info, and this makes it really easy to check.
#Python
I don't run 'pip install' often enough that uv speed matters to me.
I don't code fast enough so that ruff is an improvement over mixing flake, yapf, mypy and the like.
Something tells me I might not be in the target demographics of the people worried by Astral's acquisition.
RE: https://techhub.social/@Techmeme/116256023795725433
#OpenAI a fait l'acquisition de #Astral, l'entreprise qui édite différents outils de l'écosystème #Python, écrits en #rust :
- ruff : linter et formateur de code
- uv : gestionnaire de dépendances
- ty : vérification statique de typage
Voir : https://astral.sh/blog/openai
OpenAI agrees to acquire Astral, which makes Python tools for developers, to integrate its team into Codex, and says Codex has 2M+ users, up 3x since January (Agnee Ghosh/Bloomberg)
https://www.bloomberg.com/news/articles/2026-03-19/openai-to-acquire-python-startup-astral-expanding-push-into-coding
http://www.techmeme.com/260319/p27#a260319p27
Chic, les vidéos de la PyCon FR 2025 sont en ligne ici -> https://pyvideo.org/events/pycon-fr-2025.html
Hop, de quoi bien occuper les pauses au boulot ;)
The popular #Python library “Requests” needs your help! @nateprewitt plans to add type hints to the API and is requesting feedback:
https://sethmlarson.dev/python-library-requests-is-adding-type-hints-and-needs-your-help
BlogMore v2.0.0 is now available. It's my experiment in building an #ssg for my blog using nothing but #GitHub #Copilot. This update gives more control over how various URLs are made up.
I'm re-reading Monstrous Regiment by Terry Pratchett, and decided to add a new random error window title to @novelwriter 😁
I was completely unaware of this project until today. CPython is getting a JIT (just-in-time) compiler!
Python 3.15’s JIT is now back on track | Ken Jin’s Blog
https://fidget-spinner.github.io/posts/jit-on-track.html
🚨ICYMI: The #PyConUS 2026 schedule is officially live!!🚨
Talks, Tutorials, and Charlas—it’s all there!
Don’t wait, register today and start planning your week with us in Long Beach, CA! 🌴
NaN is weird. - Dan Shernicoff's Musings
https://brassnet.biz/blog/nan-is-weird.html
If you are a developer who maintains a #Python client library for a REST API, do you know how you can make me, a user of your library, truly happy?
Riddle your library with `logging` calls. And give me a easy knob, preferably an environment variable, to turn the log level up. Way up.
un article très complet de @gaborbernat présentant les différents types de vulnérabilités d'un projet Python via ses dépendances et des façons d'y remédier : https://bernat.tech/posts/securing-python-supply-chain/
- définir des versions strictes de vos dépendances
- utiliser un lockfile pour spécifier les dépendances transitives
- inclure une étape d'audit des dépendances dans son intégration continue
- publier vos versions sur PyPI via le système Trusted publishing
New blog post: How big are the blocks in my city.
https://www.grulic.org.ar/~mdione/glob/posts/block-sizes-from-osm-data/
boostedIf you're new to contributing to Django and you're using an LLM, please consider reading this. We want to bring you into the community, but we can't do that only interacting with an LLM's output.
https://www.better-simple.com/django/2026/03/16/give-django-your-time-and-money/
Python Tip #75 (of 365):
Don't use the string split() method for splitting lines. Use the splitlines() method instead.
Instead of calling split with "\n":
lines = poem.split("\n")
Use the splitlines method:
lines = poem.splitlines()
The string splitlines method will:
• Trim a trailing newline (if there is one)
• Split by "\r\n", "\n", or "\r"
More on splitlines: https://pym.dev/splitlines/
This week's daily tips are all about string methods in Python.
boostedIf you're new to contributing to Django and you're using an LLM, please consider reading this. We want to bring you into the community, but we can't do that only interacting with an LLM's output.
https://www.better-simple.com/django/2026/03/16/give-django-your-time-and-money/
I have been suggested that the company I'm working is not doing well. Than and a push for AI is telling me it's maybe time to move on.
What am I? Currently I'm doing #Python, #SysAdmin, GitHub/GitLab admin (yes, both), some Kafka, used to do some Postgres (now we have a DB team), Ansible and more.
Edit: more info: https://en.osm.town/@mdione/116302423501761728
What do I want? No AI, no gambling, no blockchain. In #Marseille or remote. I can invoice abroad, but I would rather be an employee.
1/
“A historic moment for Censor”
#Censor – the PDF redaction tool for the @gnome desktop – comes now with a new edit history. It allows you to undo and redo redactions using the right-click context menu or keyboard shortcuts. Also, a bug that prevented repeated saving to the same file path was fixed.
Get the new version from @flathub: https://flathub.org/apps/page.codeberg.censor.Censor, and find it on @Codeberg: https://codeberg.org/censor/Censor/releases/tag/v0.4.0
You may now talk Chinese, Dutch, English, Estonian, Finnish, French, German, Italian, and Vietnamese with Censor (thanks a lot to the translators!). If your language is missing from this list I invite you to contribute at Codeberg Translate: https://translate.codeberg.org/engage/censor
#censorship #redaction #PDF #Codeberg #Flatpak #Flathub #GNOME #python #MuPDF #PyMuPDF #Linux
“Better safe than sorry”
For release 0.5.0 of #Censor, a lot of work went into improving the security of PDF redaction.
PDF documents are tricky, and irrevocably removing elements from them is even more. With this release, before saving a redacted document, garbage is now properly collected and documents are sanitized, which means that metadata, page thumbnails, etc. are removed.
Also, vector graphics are now removed with a more strict option when they overlap with redaction rectangles. On top of that, I added redaction of PDF annotations.
The user interface was refreshed: with undo and redo buttons in the toolbar and improved document saving experience. Drawing rectangles is now indicated by a crosshair cursor.
Thanks to the translators, you may now talk also Czech with Censor!
Get it from @flathub: https://flathub.org/apps/page.codeberg.censor.Censor, or contribute on @Codeberg: https://codeberg.org/censor/Censor
#censorship #redaction #PDF #Codeberg #Flatpak #Flathub #GNOME #python #MuPDF #PyMuPDF #linux
I'm a software developer and sysadmin who could really use being #fedihired.
What I'd really like to do is Rust, but once you ignore the dubious crypto and AI stuff, there seems to be nothing out there. Prove me wrong with a counterexample!
I've spent decades fixing Enterprise mudballs mostly written in #Perl. If you've got a crufty legacy system that everybody else is too scared to touch, I'm your man. I love fixing stuff like that.
I've also done commerical #Scala, #Python, #C/#C++, and although I don't usually admit it on my CV but these are now Trying Times when everything is on the table, even #PHP (the longest six months of my life).
Perl naturally leads into Unix system administration and infrastructure. I've built and maintained mail clusters, VoIP systems, network monitoring, DNS management platforms, that sort of thing. If it's non-sexy but something which needs to be done, I'm there.
Available immediately, for contract or permie, onsite in Amsterdam/Randstad or remote to anywhere.
“If you're using print calls to debug your Python code, consider using f-strings with self-documenting expressions instead.”
Read more 👉 https://pym.dev/debugging-with-f-strings/