Weeknotes 2025-02-17

, Jochen
Pessimist: The glass is half full. Optometrist: That's the letter H --Tess

Managed to accomplish quite a bit outside of my regular work this week.

PySAML2 Updates

A while back, I wrote a tutorial on setting up Django with SSO login using PySAML2's test IdP. Recently, a reader pointed out that the tutorial stopped working with Python 3.13. I filed a bug report with PySAML2 about this issue, and last week I created a pull request to make the test IdP server compatible with Python 3.13.

The main challenges were:

  1. The old cgi module from the standard library was used, but it's been removed in 3.13
  2. The test server uses shelve.open to store data on disk, which now has complications:
    • The dbm module (used by shelve) has switched its default backend from berkeleydb to sqlite in Python 3.13+
    • Cheroot (the HTTP server powering CherryPy) uses threads for concurrency but tries to access the same shelve database from all threads
    • This causes sqlite to complain about reading from a database created in a different thread

My solution is to use dbm.dumb as the backend for Python 3.13+, since performance isn't critical for a test server.

django-cast Progress

I released a new version with support for Wagtail 6.4. I'm happy to report that test coverage is back to 100%! Also made some minor fixes related to uv and tox.

django-resume Improvements

Released a new version with several improvements:

Articles

Fediverse

Software

Videos

Return to blog