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.
I built a little tool that helps you decide how much effort to invest in PRs and issues.
Pass it a GitHub username, and it will summarize some information about that user. If you're in a local project directory, you can just pass a PR or issue number directly:
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)
RE: https://fosstodon.org/@djangochat/116487652807293671
We missed a @djangonews shout-out to @raffaellasuardini and @djangonaut for helping with our weekly Django Updates.
@sarahboyce suggested and volunteered to start this section and helped kick it off.
Since then, Raffaella and a dozen+ Djangonaut Spacers have been contributing weekly to keep it going.
#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
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. 👋
httpxyz one month in https://lobste.rs/s/00eboi #python
https://tildeweb.nl/~michiel/httpxyz-one-month-in.html
In today's exciting code archeology: "`eval()` is dangerous so I'll use `ast.literal_eval()` to parse request URL query parameters!" #python #whatcouldpossiblygowrong
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
Web app db design: if you have optional string fields, do you make the column nullable, or not nullable with a default empty string. Consider HTML form data (empty field is sent as empty string, not omitted), and rendering (rendering empty for None has to be remembered everywhere). I've never seen any consensus. Comment if you want to explain why you choose one over the other! #python #flask #django 
| nullable, default none: | 4 |
| not nullable, default empty string: | 4 |
| nullable, default empty string: | 0 |
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.
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/
📰 Issue 334: New look, new home, same everything else
https://django-news.com/archive/issue-334-new-look-new-home-same-everything-else/
Today I moved my material-aulas repo (for my #Python + #py5 teaching materials) from GitHub to Codeberg. https://codeberg.org/villares/material-aulas
I removed the old Processing Python mode stuff which is still on the live site, but won't be updated.
I had already turned off GitHub Pages and moved everything to some basic markdown rendering hacky script that uploads things on Dreamhost with paramiko.
Now the next step will be to study and convert the materials to Zensical... I hope I can learn something like lftp or some ssh tricks and that I won't struggle with deployment later on. Also I fear a bit some hacky JS might break.
#ThonnyIDE 5.0.0 is out!
It comes with #Python 3.14 :)
You can get it from https://thonny.org
I'm investigating the compatibility with the thonny-py5mode plug-in and so far it seems to work fine. https://github.com/py5coding/thonny-py5mode/discussions/95
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)
Yeah, Pallets and Flask sponsored North Bay Python! But I know you all actually want the cat pics from my slides 🐈⬛🐈⬛ Here's a link to the slides in blog form: https://davidism.com/sponsoring-north-bay-python-2026/ #nbpy #python #flask
#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
🚀 We shipped Issue #334 of @djangonews on @buttondown this week for the first time.
📊 If you subscribe, did you receive it?
https://django-news.com/archive/issue-334-new-look-new-home-same-everything-else/
| Yes: | 12 |
| Yes, but I found it in SPAM/Junk: | 1 |
| No: | 2 |
| What's Django News? (check the link): | 0 |
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."
OK, here's a #TechieQuestion: if I want to sync directories from a Linux server using a Python script, does it make much difference whether I invoke a shell command with rsync from the Python script or use a dedicated Python sync command such as pyrsync?
(Boosts welcome if this isn't your area of expertise)
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
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
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, ...
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 👀
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?” 🙂
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
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,
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 🙂
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 🙂
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
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.😊