Planet Python
Last update: June 13, 2026 04:43 PM UTC
June 13, 2026
Armin Ronacher
Dangerous Technology For Americans Only
June 12, 2026
Real Python
The Real Python Podcast – Episode #299: EuroPython 2026: Celebrating 25 Years
What's happening at EuroPython 2026? The conference celebrates its 25th anniversary this year in Kraków, Poland. This week on the show, organizers Mia Bajić and Daria Linhart Grudzien join me to discuss this year's conference.
EuroPython
June Newsletter: Talks Schedule Released
We have just one month left until we all meet up in Kraków, and we’ve got a lot of new stuff to tell you: the schedule is available, new keynote announcements, plus plenty more 💚
Hugo van Kemenade
I'm delighted to rejoin the Sovereign Tech Fellowship
I’m happy to rejoin the Sovereign Tech Fellowship!
I was one of six participants in the 2025 pilot to pay maintainers of critical open source technologies in the public interest. By all accounts this first cohort was a resounding success, and I’m glad to see the programme continue.
It was wonderful to be part of the inaugural Sovereign Tech Fellowship, and incredibly beneficial to my projects: it gave me the time to focus on releasing Python 3.14 and 3.15 smoothly, to mentor and onboard others, and to support the wider community.
2025 impact #
The 2025 evaluation report covers all six of us and the benefits of the programme at a higher level. Here’s some of the specific things I achieved.
I was happy with how the big Python 3.14.0 release went. This is in part from having a good team to work with, and building on the past, but no doubt also due to being able to focus and invest time thanks to the Fellowship.
On many occasions, having time to dedicate to the role meant I could prioritise things as they occurred. For example, when needing to make expedited releases, I could dedicate time to go through all the necessary prep, and make the release without any stress of fitting it in around a regular job. Similarly, when last-minute problems came up on release day, such as newly-committed code not passing tests, I didn’t need to rush, and could contact the contributor to arrange a fix. Some other release managers had reverted similar changes to let the contributor try again for a later release, but there was less pressure for me and I could wait longer.
I was able to mentor other project members, such as helping onboard the next release manager, and also answer questions for other triagers. I promoted two new triagers in different projects. Other community members sometimes asked me about how to contribute. I attended many community “office hours” meetings and Monthly Conference Organisers' calls to share what’s going on and answer questions, and likewise blogged and shared on social media such as Mastodon, Bluesky and LinkedIn. I was able to attend many conferences and give talks about the upcoming release, and discuss with other attendees what happens with Python releases and the project in general. This all helps improve transparency. I also chaired many monthly Docs Working Group meetings, and attended many other meetings from different projects.
I was able to make many improvements in the release process, through additional automation and testing to remove tedious manual steps. I’ve improved the accessibility of websites visited by tens of millions per month.
I created a triage dashboard that helped us close hundreds of issues, and also complete forgotten backports including security fixes.
I was also able to invest time on non-technical, social, organisational and governance improvements. I’m proud my proposal was accepted to alternate the Language Summit between PyCon US and EuroPython, rather than always being in the US, to improve the diversity of voices of who will shape the future of Python. The 2026 summit will be held at EuroPython and I’m helping organise.
Since 2009, the summit has been a one-day event that takes place at PyCon US before the main conference days. It has also been held at EuroPython twice, in 2010 and 2011. The PSF mission is “to support and facilitate the growth of a diverse and international community of Python programmers”, and not all potential attendees can travel to the US each year. This proposal took a lot of work:
- In November 2024, the core team discussed on Discord the possibility of alternating the summit between PyCon US and EuroPython. People were in favour, but said it would need to be discussed at the summit at PyCon US in May 2025.
- In March 2025, I asked for the topic to be added to the agenda, as I wasn’t attending.
- In May, the discussion took place. The minutes simply said: “Watch out for a Discourse thread to discuss this.”
- In July, during EuroPython, I asked summit attendees what the impression was, and they said people were in favour. I also spoke with the chair of EuroPython Society about the summit requirements, and they said they’d be happy to host us.
- In August, because no Discourse thread had appeared, I opened a proposal to alternate.
- In September, during the Steering Council Q&A at the Core Team Sprint, I asked about next steps. The consensus was for the SC to open a formal poll amongst the core team.
- In October, the SC opened a poll for core team members.
- In November, the poll concluded overwhelmingly in favour of alternating.
- In December, the SC approved my request. I volunteered to help organise the summit and opened discussions with the EuroPython Society to make it happen in 2026.
I had more free time to spend on non-open source things, but also more free time to help the local Python community such as by co-organising two local meetups. One person I nominated became a Fellow of the Python Software Foundation and another of the EuroPython Society, which recognises the importance of community work.
Finally, I enjoyed our monthly Fellowship meetings where the six of us all gave a summary of our last month’s work. Similarly, it was great to meet most of them in person along with people from the Agency at the event to mark the inaugural Sovereign Tech Fellowship cohort and hear the results of the evaluation report.
Arbitrary statistics #
On GitHub:
- Total contributions: 6,642
- Issues created: 90
- PRs created: 901
- Issues closed: 446
- PRs merged: 1,401
- PRs closed: 142
- Total issues involved with: 1,409
- Total PRs involved with: 4,095
- Repositories affected: 409
Made 55 releases:
- 13 of Python 3.14
- 3 of Python 3.15
- 39 of PyPI projects
Started maintaining:
Archived:
Attended eight conferences in Berlin (FOSS Backstage and Design), Bologna (PyCon Italia), Prague (EuroPython), Athens (PyCon Greece), Manchester (PyCon UK), Tallinn (PyCon Estonia), Jyväskylä (PyCon Finland) and Stockholm (PyCon Sweden)
- On a discussion panel at one
- Gave a lightning talk at five
- Announced PyCon Finland at four
- Helped new contributors at sprints at three
- Hosted a barcamp session at one
- Helped organise one by reviewing talks and through promotion
- Volunteered at one
Attended three online conferences:
- March: SustainOSS Virtual Forum
- May: Maintainer Summit
- December: PyLadiesCon
Other events:
- September: Core Team Sprint in Cambridge
- December: Sovereign Tech Agency event in Berlin to mark the inaugural Fellowship cohort
Meetups:
- Co-organised 16 meetups for two groups, one which we restarted in 2025
- Attended 27 meetups of 11 groups in four cities and three countries
- Gave one long talk and four lightning talks
- Organised 12 monthly meetings, chaired 9, attended 10
- Attended two meetings
Published 17 blog posts:
- February: How to delay a Python release
- February: I’m excited to join the Sovereign Tech Fellowship
- February: Improving licence metadata
- March: Free-threaded Python on GitHub Actions
- April: My most used command-line commands
- May: PEPs & Co.
- June: Run coverage on tests
- August: EuroPython 2025: A roundup of writeups
- September: Ready prek go!
- October: Releasing Python 3.14.0
- October: Three times faster with lazy imports
- November: Python Core Sprint 2025
- November: Setting secrets in env vars
- December: Steering Council election
- December: Steering Council results
- December: And now for something completely different
- December: Replacing python-dateutil to remove six
Reported 67 accounts to GitHub for spam/abuse/inauthentic activity.
2026 and beyond #
This time we’re 14 Fellows, and not only maintainers but also community managers and technical writers. It’s great that Python core dev Stan Ulbrych and PSF director Georgi Ker are also joining, and I’m looking forward to meeting the other Sovereign Tech Fellows.
I’m really pleased to again be working with the Sovereign Tech Agency. They’re showing the world some of the ways we can improve open source and critical digital infrastructure, through a range of different programmes. Their success has informed the proposal for an EU Sovereign Tech Fund (EU-STF), and they have also helped shape the European Digital Infrastructure Consortium for digital commons (DC-EDIC), with an EU-STF pilot kicking off later this month which builds on their experience. And it’s good to see the focus on maintenance and long-term sustainability in the brand new EU Open Source Strategy, announced just last week.
And by the way, the Sovereign Tech Agency are currently hiring, check out their open positions.
Header photo by Jan Michalko.
scikit-learn
scikit-learn release 1.9: better numerics, new core functionality
Author: Gael Varoquaux
June 11, 2026
Kay Hayen
Nuitka Release 4.1
This is to inform you about the new stable release of Nuitka. It is the extremely compatible Python compiler, “download now”.
Talk Python to Me
#551: Stroll Down Startup Lane - 2026
If you've ever been to PyCon, you know one of the best parts of the expo hall is Startup Row, a stretch of booths where early-stage companies built on Python show off what they're creating. But only attendees get to walk that lane, so let's bring it to everyone. In this episode, we stroll down Startup Row together. We kick things off with the organizers, Jason and Shay, who share the program's origin story going back to Paul Graham and the PSF, plus some surprising stats, including two unicorns among the alumni. Then we meet five startups: Tetrix, bringing AI to institutional investing in private markets. Arcjet, security that lives inside your app as an SDK. Phemeral.dev, serverless hosting built for Python web apps. CapiscIO, an identity and authority layer for AI agents. And Pixeltable, a multimodal database from Marcel Kornacker, co-creator of Apache Parquet. See if you can spot the theme running through them all. Let's go for a walk.
Real Python
Quiz: Serialize Your Data With Python
Practice serializing Python objects to JSON, pickle, CSV, Parquet, and Protocol Buffers, and learn when to pick each format.
PyCharm
Best Python AI Frameworks in 2026
Whether you’re building chatbots, training computer vision models, or analyzing business data, choosing the right AI framework can make or break your project. Python has become the dominant language for AI and machine learning development, and the ecosystem of frameworks supporting this work has matured significantly. The right framework choice depends on what you’re building. […]
Seth Michael Larson
Linting is important for code review: screen included
June 10, 2026
Django Weblog
DSF 2026 Fundraising Goals
Django has grown far beyond a web framework. It powers businesses, nonprofits, startups, educational institutions, and critical infrastructure around the world. The Django Software Foundation exists to support that ecosystem, and none of that work is possible without funding. This year, the board set an ambitious new fundraising goal, and I want to be transparent about what we are aiming for and why it matters.
Before talking about where we want to go, it's important to recognize that everything the DSF does today is possible because of the organizations and individuals who already support Django. Their contributions fund the work that keeps Django healthy, secure, and sustainable, and we are deeply grateful for that support.
Our 2026 Goal: $500,000
This year, we are raising our annual fundraising goal from $300,000 to $500,000.
That is a meaningful increase, and it reflects where the foundation needs to be. Our current monthly recurring donations are around $9,000 per month. To reach $500,000 annually, we need to grow that to approximately $15,000 per month.
Reaching this goal will require both new supporters and increased support from existing donors. Doing so will help us maintain the programs the community relies on while creating room for future growth.
What the Money Funds
Before asking for support, it is only fair to explain where the money goes.
The largest line item in our budget is the Django Fellows program. Our three Fellows dedicate their time to triaging tickets, reviewing pull requests, managing releases, handling security issues, and doing the essential work that keeps Django moving forward. Without sustained funding, we cannot maintain this program.
Beyond the Fellows, the DSF:
- Manages the Django trademark and legal protections
- Funds the infrastructure that keeps djangoproject.com and related services running
- Provides grants to DjangoCon events around the world, including DjangoCon US, DjangoCon Europe, and DjangoCon Africa
- Funds regional Django Days, sprints, and community events
- Supports Django Girls events through grants
- Invests in community programs like Djangonaut Space
Taken together, $500,000 in annual funding would allow us to sustain our three Fellows, maintain operational support for the DSF, create a clear path to hiring an Executive Director, and expand our ability to support the Django ecosystem at scale.
Hiring an Executive Director
For most of its history, the DSF has been powered almost entirely by volunteers, with board members handling fundraising, grants, trademarks, and operations on top of their day jobs. That commitment has carried the foundation a long way, but it also limits how much we can take on.
That is why we are working toward hiring an Executive Director this year. An Executive Director would give the foundation dedicated, day-to-day leadership: someone who can build lasting relationships with sponsors, grow our fundraising programs, strengthen support for our volunteers and working groups, and turn the board's long-term plans into steady progress.
We are optimistic about what this role would unlock. With dedicated operational support, the DSF could pursue larger partnerships, launch new programs, and respond more quickly to the community's needs. Reaching our fundraising goal is a key part of making that a reality.
Ways to Support Django
Sponsored Fellow: The Highest-Impact Way to Support Django
This year, the DSF is introducing a Sponsored Fellow corporate membership tier, a new way for organizations to make a direct, visible investment in Django's future.
As a Sponsored Fellow sponsor, your company directly funds one of the Django Fellows who keep the framework running every day. In return, you receive the highest level of recognition the DSF offers. Depending on the partnership, that can include your company's logo and information featured in Django release announcements, recognition through the Fellows' work at conferences and community events, advertising opportunities across DSF communications, and visibility across DSF publications and promotional materials throughout the year.
Django releases reach tens of thousands of developers. The Fellows represent Django at DjangoCon events around the world. If you want your company's name and logo in front of the global Django community, this is the most direct path to get there.
This tier is designed for organizations that depend on Django at scale and want to do more than write a check. It is a partnership, and we will work with you to make sure your sponsorship is visible and meaningful.
To learn more or start a conversation about the Sponsored Fellow tier, reach out through our Contact the DSF page.
Corporate Membership
Corporate membership is a proven way for organizations to support the DSF. Tiers range from Bronze at $2,000 per year up to Platinum at $150,000 per year. Member organizations receive recognition on djangoproject.com, benefits in our community channels, and the knowledge that they are directly funding the framework their teams depend on.
To learn more or get started, visit djangoproject.com/foundation/corporate-membership/.
Individual Donations
Individual donations add up. Whether it is a one-time gift or a small monthly contribution, every bit helps us reach our monthly target and plan ahead with more confidence.
You can donate via our donate page or through Open Collective, which we added last year to make recurring donations easier.
Employer Donation Matching
Many companies offer donation matching programs that can double or even triple the impact of an individual contribution. If your employer has a matching program, the DSF is typically eligible. Check with your HR or finance team and put that benefit to work.
GitHub Sponsors
We have also raised our GitHub Sponsors goal to $15,000 per month to better reflect the level of ongoing support Django needs. We are currently over $9,000 per month, so we are well on our way, but there is still ground to cover. If you already sponsor Django through GitHub, thank you. If you have been thinking about it, now is a great time to start.
Thanks to all our existing sponsors and donors, Django has been able to sustain community initiatives over the past several years.
Spread the Word
If you cannot contribute financially right now, you can still help by spreading the word. Share this post. Mention Django's funding needs the next time someone asks how to give back to open source. Tell your employer about corporate membership.
A Note on Transparency
We publish monthly balance snapshots in our board minutes. The foundation started 2026 with around $222,000 in operating reserves. We take stewardship of those funds seriously, and you should always be able to see where we stand. Those reserves help ensure continuity of operations and provide financial stability for the foundation's ongoing commitments.
Looking Ahead
A significant portion of our funding comes directly from the community through individual donations, memberships, sponsorships, and fundraising campaigns. That ongoing support is one of the clearest signals that Django still matters to the people who build with it every day, and we are deeply grateful for it.
Every Django release, security advisory, ticket review, and mentoring interaction represents countless hours of work from people who care deeply about the framework and community. The DSF exists to make sure that work remains sustainable and that contributors have the support they need to keep Django healthy for everyone who depends on it.
Raising our goal is not about growth for growth's sake. It is about stability, sustainability, and making sure the project, the Fellows, and the broader community have what they need for the years ahead.
We believe $500,000 is achievable. If you have ever benefited from Django, professionally or personally, now is a great time to give back.
Thank you for being part of this community.
Mike Driscoll
How to Get TIFF MetaData with Python
In previous articles on this website, you learned how to extract EXIF data from JPG image files. This week, you will learn how to get similar data from the TIFF image format. The TIFF format also has its metadata. Pillow provides a similar dictionary for TIFF images in its TiffTags module. If you need a TIFF image, […]
The post How to Get TIFF MetaData with Python appeared first on Mouse Vs Python.
Python Morsels
Stacks and queues in Python
Use a Python list for stack operations (last-in, first-out) and a deque from the collections module for queue operations (first-in, first-out).
Stacks versus Queues
In Computer Science, stacks and queues are data structures that are optimized to make it inexpensive to remove either the most recently added item or the least recently added item.
A queue is often called a FIFO data structure: first in, first out.
You can think of a queue as... well, a queue. Or a "line", for Americans like me. The first person to enter a queue will be the first person to reach the front of the queue.
And in programming queues, the first item added will be the first item removed.
A stack is often called a LIFO data structure: last in, first out.
You can think of a stack as a stack of plates... specifically one of those spring-loaded ones from a self-service lunch counter. The last plate that's added to the top of the stack will be the first plate removed from the top of the stack.
And in programming stacks, the last item added will be the first item that's removed.
But how do these terms apply to Python?
Stacks in Python
You can think of Python …
Read the full article: https://www.pythonmorsels.com/stacks-and-queues/
Real Python
Cursor vs Windsurf: Which AI Code Editor Is Best for Python?
Compare Cursor vs Windsurf for Python across code completion, multi-file editing, and debugging to choose the right editor for your workflow.
Python GUIs
How to Set Row Background Colors in a QTableView — Use Qt's BackgroundRole to color entire rows based on your data
I have a QTableView table showing some data about connected devices. How can I highlight rows to give a visual indicator of the current status of the device?
Python Insider
Python 3.14.6 and 3.13.14 are now available!
A pair of bug fix releases await your upgrade.
Seth Michael Larson
Are insecure code completions a vulnerability?
Armin Ronacher
Gaslighting Openness
June 09, 2026
PyCoder’s Weekly
Issue #738: sleep(), Polars Workflows, Iterators, and More (2026-06-09)
Python Docs Editorial Board
Meeting Minutes: Jun 9, 2026
Meeting Minutes from Python Docs Editorial Board: Jun 9, 2026
Real Python
Accessing Multiple AI Models With the OpenRouter API
Access models from popular AI providers in Python through OpenRouter's unified API with smart routing, fallbacks, and cost controls.
Quiz: Embeddings and Vector Databases With ChromaDB
Check your grasp of ChromaDB, embeddings, and vector search. Practice cosine similarity, querying collections, and using RAG with LLMs in Python.
Quiz: Accessing Multiple AI Models With the OpenRouter API
Test your Python skills with OpenRouter: unified API access, intelligent routing, provider strategies, and model fallbacks for reliable apps.
Python Bytes
#483 Thanks Brian
Topics include , HTTP GET requests with the Python standard library, , and alembic-git-revisions.
Hynek Schlawack
How to Ditch Codecov for Python Projects
Codecov’s unreliability breaking CI on my open source projects has been a constant source of frustration for me for years. I have found a way to enforce coverage over a whole GitHub Actions build matrix that doesn’t rely on third-party services.

