skip to navigation
skip to content

Planet Python

Last update: August 08, 2026 09:48 PM UTC

August 08, 2026


Ed Crewe

From Routing Checks to Trajectory Testing: Evaluating an Agentic Chatbot

August 08, 2026 09:30 PM UTC

August 06, 2026


Django Weblog

Call for applicants for a Django Executive Director

The Django Software Foundation is announcing a call for an Executive Director. The Executive Director is the operational leader of the Django Software Foundation, a paid position reporting to the Board of Directors, responsible for setting the Foundation's strategic direction and turning it into action, while managing day-to-day operations. They serve as the main connector between the Board, staff, community, and sponsors.

The Django Software Foundation (DSF) is a 501(c)(3) nonprofit that develops and maintains Django, a free and open-source web application framework. The Foundation exists to support the development of Django by sponsoring sprints, meetups, gatherings and community events; to promote the use of Django among the web development community; to protect the framework's intellectual property and long-term viability; and to advance the state of the art in web development.

This is a new role for the Foundation. Django itself has been around since 2005, but the DSF wasn't founded until 2008, and the person who takes on this role will play a key part in maturing the Foundation's internal structure, helping ensure the DSF can properly support and sustain this important ecosystem going forward. The position is initially for a period of one year, renewable subject to an annual performance evaluation. Depending on the candidate, the role may be part-time or full-time.

Beyond running the Foundation, the Executive Director is a representative of the DSF itself. They embody Django's welcoming culture and help the community sustain the framework's home. The Executive Director is often called upon to represent the Foundation publicly, including at Django conferences and events, and to grow awareness of the DSF as an organization, distinct from the framework it supports.

Responsibilities

Executive Director duties include (but are not limited to):

Requirements

An Executive Director is responsible for fundraising, operations, communications, and community coordination. This is a broad remit, and it isn't our expectation that you come into the job an expert in every part of it. We hope you'll have solid experience in a few of these areas, particularly the ones most central to the role (fundraising and partnership development, nonprofit operations, and stakeholder communication). A willingness to learn and a demonstrated history of doing so are more important than comprehensive knowledge.

The areas you can expect to work across include (and are not limited to):

And required professional skills such as:

Therefore, a Django Executive Director requires the skills and judgment of an experienced nonprofit leader who is comfortable with fundraising, operations, and coordination with community stakeholders. Open-source experience and familiarity with the Django or Python community in particular are a big plus.

Being part of the Django community isn't a prerequisite for this position. We'll consider applications from anyone with a proven history of nonprofit leadership or comparable experience in an open-source or mission-driven community, but this is a remote position based in the United States, and unfortunately we are not able to offer visa sponsorship for this role.

The DSF is an equal opportunity employer. We welcome applicants of every background and don't discriminate on the basis of race, color, religion, gender, gender identity or expression, sexual orientation, national origin, disability, age, or veteran status.

How to apply

If you're interested in applying for the position, please submit your application via hiring@djangoproject.com. Your application should include:

References may be requested during the interview process.

The compensation for this role is a base salary of $90,000 to $120,000, plus a bonus of up to $60,000 tied to our progress toward the $500,000 fundraising goal, which we'll tier as we work toward it. Depending on the candidate, the DSF will consider a part-time position and adjust the salary accordingly.

Applicants will be evaluated based on the following criteria:

Applications will be open until midnight Central Time, September 14, 2026, with the expectation that the successful candidate will start around November 1, 2026 (to be confirmed).

Reference: Announcing the Search for a DSF Executive Director (Django Project blog, June 17, 2026).

August 06, 2026 02:45 PM UTC


Hynek Schlawack

Production-ready Python Docker Containers with uv

Starting with 0.3.0, Astral’s uv brought many great features, including support for cross-platform lock files uv.lock. Together with subsequent fixes, it has become Python’s finest workflow tool for my (non-scientific) use cases. Here’s how I build production-ready containers, as fast as possible.

August 06, 2026 12:00 AM UTC

August 05, 2026


Django Weblog

Django 6.1 released

The Django team is happy to announce the release of Django 6.1.

The release notes offer a harmonious mélange of new features and usability improvements. A few highlights are:

You can get Django 6.1 from our downloads page or from the Python Package Index.

The PGP key ID used for this release is Jacob Walls: 131403F4D16D8DC7

With the release of Django 6.1, Django 6.0 has reached the end of mainstream support. The final minor bug fix release, 6.0.8, which was also a security release, was issued yesterday, Aug. 4, 2026. Django 6.0 will receive security and data loss fixes until April 2027. All users are encouraged to upgrade before then to continue receiving fixes for security issues.

See the downloads page for a table of supported versions and the future release schedule.

August 05, 2026 07:30 PM UTC


Tryton News

Security Release for issue #14947

Cédric Krier has discovered that Tryton does not prevent weasyprint to access local files when rendering HTML report to PDF.

Impact

CVSS v3.0 Base Score: 4.9

Workaround

There is no workaround.

Resolution

All affected users should upgrade trytond to the latest version.

Affected versions per series:

Not affected versions per series:

Some custom reports may fail after the upgrade because they are using local files. Such reports must be updated to use only files via public HTTP.

Reference

Concerns?

Any security concerns should be reported on the bug-tracker at https://bugs.tryton.org/ with the confidential checkbox checked.

1 post - 1 participant

Read full topic

August 05, 2026 06:00 AM UTC


Python GUIs

Handling Image Drag and Drop from Web Browsers in PyQt6 — Why toLocalFile() returns an empty string and how to handle remote image drops correctly

When dragging and dropping images from a web browser into a PyQt6 rich text editor, toLocalFile() sometimes returns a blank string. It works for some images (like Google image search results) but fails for others (like images embedded directly on a webpage). Why does this happen, and how can I handle it?

August 05, 2026 06:00 AM UTC


Core Dispatch

Core Dispatch #9

Welcome back to Core Dispatch! This edition covers July 18 through August 5, 2026. Python 3.15.0 release candidate 1 landed on August 4, followed by Python 3.14.7 and 3.13.15 on August 5. With the first release candidate here, 3.15 is firmly in the home stretch. Two new PEPs joined the queue this f

August 05, 2026 12:00 AM UTC


Python Insider

Python 3.14.7 and 3.13.15 are now available!

A pair of bug fix releases await your upgrade.

August 05, 2026 12:00 AM UTC

August 04, 2026


Marc-André Lemburg

Pymmich – an AI-first OSS project 🐍✨

A couple of months ago, I decided to switch to Immich, the photo management software, for storing and managing photos.

I had used Nextcloud Memories before that, but found the Immich app more intuitive and easier to use.

What was missing, was a good way to quickly upload albums from

August 04, 2026 08:36 PM UTC


PyCoder’s Weekly

Issue #746: Free-Threaded NumPy, __all__, PyTorch, and More (2026-08-04)

August 04, 2026 07:30 PM UTC


Programiz

Python Lists

In this tutorial, we will learn about Python lists (creating lists, changing list items, removing items, and other list operations) with the help of examples.

August 04, 2026 03:47 PM UTC

Python Slicing

August 04, 2026 03:43 PM UTC


Django Weblog

Django security releases issued: 6.0.8 and 5.2.17

In accordance with our security release policy, the Django team is issuing releases for Django 6.0.8 and Django 5.2.17. These releases address the security issues detailed below. We encourage all users of Django to upgrade as soon as possible.

CVE-2026-15307: Server-side file-write and request forgery via spatial lookups

Spatial lookups allowed str and dict lookup values to be passed to GDALRaster when they represented rasters. Depending on the raster driver, this could write a file to disk (in some cases enabling remote code execution) or issue a network request as the Django process user. Because the admin changelist permits filtering via ModelAdmin.lookup_allowed(), the flaw was reachable by staff users with view permissions on any registered model containing a spatial field.

The following types are now disallowed by spatial lookups:

This is a backward incompatible change. As a reminder, all untrusted user input should be validated before use. For that reason, assignments to model fields are unaffected and still accept these input types.

For guidance on how to keep using these types in spatial lookups, on validating untrusted input, and on further security considerations, see the raster security considerations documentation.

This issue has severity "high" according to the Django security policy.

Thanks to Bence Nagy, localhost-detect, and kimchunbok_ for the report.

CVE-2026-15337: Potential denial-of-service vulnerability in check_for_language()

django.utils.translation.check_for_language() was subject to a potential denial-of-service attack when checking many distinct, very long language codes. Each code was used as a key in an in-memory cache, consuming process memory.

The language value reaches this function through the django.views.i18n.set_language() view (not active by default) from POST data. Since request data is limited by DATA_UPLOAD_MAX_MEMORY_SIZE and the cache is configured to store a maximum number of entries, the memory that could be consumed was bounded.

To mitigate this vulnerability, language codes longer than 500 characters are now rejected before the cached lookup.

This issue has severity "low" according to the Django security policy.

Thanks to Jaeyoung Jang for the report.

CVE-2026-15830: Potential denial-of-service vulnerability via nested geometry collections

GEOSGeometry was subject to a potential denial-of-service attack when provided deeply nested GEOMETRYCOLLECTION objects, leading to a segmentation fault in GEOS. A maximum depth of 198 GEOMETRYCOLLECTIONs is now enforced for the well-known text (WKT) format, and a maximum number of 198 GEOMETRYCOLLECTIONs in total (breadth and depth) is enforced for well-known binary (WKB).

Lookups against spatial fields and the GeometryField form field were also affected.

The limit can be customized through the new max_geom_collections argument, available on GEOSGeometry, the form field, and the model field. The limit is not applied to GeoJSON inputs, as they were parsed by GDAL and are not affected.

This issue has severity "moderate" according to the Django security policy.

Thanks to Andrew MacPherson and kimchunbok_ for the report.

CVE-2026-15920: Potential cross-site scripting via URLField values in the admin

The admin renders URLField values as clickable links on changelist views and read-only fields. The link was generated without validating the value as a safe URL, so a stored value using a potentially dangerous scheme was rendered as a link.

URLField values shown via display_for_field are now validated using URLValidator before a link is rendered, and displayed as plain text if validation is failed.

This issue has severity "moderate" according to the Django security policy.

Thanks to Egor Saltykov (misop00p / ansjdnakjdnajkd) for the report.

Affected supported versions

Resolution

Patches to resolve the issue have been applied to Django's main, 6.1 (currently at release candidate status), 6.0, and 5.2 branches. The patches may be obtained from the following changesets.

CVE-2026-15307: Server-side file-write and request forgery via spatial lookups

CVE-2026-15337: Potential denial-of-service vulnerability in check_for_language()

CVE-2026-15830: Potential denial-of-service vulnerability via nested geometry collections

CVE-2026-15920: Potential cross-site scripting via URLField values in the admin

The following releases have been issued

The PGP key ID used for this release is Natalia Bidart: 2EE82A8D9470983E

General notes regarding security reporting

As always, we ask that potential security issues be reported via private email to security@djangoproject.com, and not via Django's Trac instance, nor via the Django Forum. Please see our security policies for further information.

August 04, 2026 11:00 AM UTC


Python Insider

Python 3.15.0 candidate 1 is here!

Get those wheels rolling!

August 04, 2026 12:00 AM UTC

August 03, 2026


Tryton News

Tryton News August 2026

This month the community focused on the trytond core. The XML data import grows a new way to find existing records, the database schema shrinks oversized character columns automatically, and the test suite for function fields and button methods gets more coverage. On the user-facing side, the accounting menus are tidied up, and the DPD shipping carrier moves to the latest API. All of this builds on our last LTS release 8.0.

For an in depth overview of the Tryton issues please take a look at our issue tracker or see the issues and merge requests filtered by label.

Changes for the User

Accounting, Invoicing and Payments

When a user un-reconciles a line that was created by the receivable rule, Tryton now raises a warning, similar to the warning it already shows for payables. This avoids accidentally leaving too much money in the target account.

The accounting menus are simplified. The “open journal” entry now opens the journal and period form directly instead of going through a wizard. The “close” prefix is dropped from the processing menu-entries, the reconcile wizard becomes the first one, and the redundant “account” prefix is removed from the moves menu entry.

Stock, Production and Shipments

The DPD shipping carrier integration now uses Shipment Service 4.5, the latest version of the DPD API.

New Documentation

The documentation for creating account moves from a template now links the accounting menu-entry in the client, so the workflow is easier to find.

New Releases

We released bug fixes for the currently maintained long term support series 8.0, 7.8, and 7.0.

Changes for Implementers and Developers

When all rows of a char field fit in a smaller column, the database schema is now shrunk automatically. This keeps the database compact without any manual intervention.

The XML data import now supports a search attribute on the <record> tag. When the record with the given id does not exist, Tryton uses this domain to find an existing record before creating a new one. This makes it possible to import data using natural unique keys like the language code.

The test suite for button methods now runs each method as a subtest, so a failure in one method does not prevent the remaining button methods from being tested.

The test suite for column-based function fields is now added to the tests of fields methods.

Initial draft powered by Minimax-M3. Curated and finalized by human hands.

1 post - 1 participant

Read full topic

August 03, 2026 09:33 AM UTC

August 02, 2026


Mike C. Fletcher

OMI Audio extension for glTF

Another OMI-based extension, this time for positional audio mixing. Again, Claude-coded, using the OMI/KHR audio extensions for glTF as the base model and then implementing the actual mixing using Numpy. Supports mp3, wav, opus and flac inputs and stereo (headset) outputs. Up on github as omi_audio and on PyPI as omi_audio as well.

This is loosely the same model as Web Audio's Panner Node. The only significant difference from the KHR extension is that we also support VRML97 style double-ellipse emitter. The package delegates file retrieval to the application, and doesn't include any special effects or the like.

August 02, 2026 04:06 PM UTC


Talk Python to Me

#557: Security of everything at PyCon 2026

Security has always been the vegetables of software. Everyone agrees it matters, and somehow it never quite makes it onto the plate. At PyCon US this year, that changed. For the first time ever, security got its own dedicated, day-long track, one of just two at the whole conference, sitting right next to AI. And the room was packed to the back wall. On this episode, I'm joined by the three people at the center of it. Seth Larson, Security Developer in Residence at the Python Software Foundation and, very recently, a CPython core developer. Juanita Gomez, a PhD researcher at UC Santa Cruz in open source security, who co-chaired the track. And Mike Fiedler, PyPI's Safety and Security Engineer, one of the very few people paid full-time to keep the packages you install safe. We use the arc of the track's talks to take the temperature of Python security right now: supply chain attacks, dependency cooldowns, zero trust, SBOMs, and the push to bring Rust into CPython. And why not one of us thinks security is anywhere close to solved. Turns out that's the good news. It's why the room was full.

August 02, 2026 03:37 PM UTC


Python⇒Speed

Faster floating point math with Rust’s new API

August 02, 2026 12:00 AM UTC

August 01, 2026


Seth Michael Larson

Let’s Play “htmx 4: the game”

August 01, 2026 12:00 AM UTC

July 31, 2026


Programiz

Python Booleans and Boolean Expressions

July 31, 2026 08:36 PM UTC


Caktus Consulting Group

Chicago Like a Local: Things to Do During DjangoCon US 2026 (Part 1)

DjangoCon US 2026 is coming back to Chicago from August 23–28, and we at Caktus couldn’t be more thrilled, not only to be returning as a Silver Sponsor, but also because I (Keanya) have the privilege of chairing the conference once again!

July 31, 2026 06:35 PM UTC


Jaime Buelta

Python Automation Cookbook 3rd edition: now with AI recipes.

Exciting news! The third edition of the Python Automation Cookbook is out, featuring a vibrant new cover and over 100 pages of fresh AI content. Aimed at Python enthusiasts of all levels, it retains classic recipes while introducing innovative ways to incorporate AI in code. A fantastic addition to any developer's library!

July 31, 2026 10:38 AM UTC


Python Software Foundation

Get Ready: Python Packaging Council Nominations Opening Soon!

July 31, 2026 08:58 AM UTC


Seth Michael Larson

Extracting “Ocarina of Time: Master Quest” ROM from the Legend of Zelda: Wind Waker bonus disc

July 31, 2026 12:00 AM UTC