Recent Posts

Free-threading in mod_wsgi 6.0.0

mod_wsgi 6.0.0 adds WSGIFreeThreading, an opt-in directive for PEP 703 free-threaded Python. GIL-enabled mode remains the default even on free-threaded builds.

python mod_wsgi wsgi apache

Per-interpreter GIL in mod_wsgi 6.0.0

mod_wsgi 6.0.0 adds WSGIPerInterpreterGIL, an opt-in directive for running sub-interpreters with their own GIL (PEP 684) for parallel Python in one process.

python mod_wsgi wsgi apache

Async support for wrapt.synchronized

How wrapt 2.2.0 extends the synchronized decorator and context manager to async functions, and why reentrancy is not supported on the async side.

python wrapt decorators asyncio

Lazy monkey patching with wrapt

Deferred monkey patching has been in wrapt for years. Python 3.15's lazy imports make it the right default for instrumentation libraries.

python wrapt decorators

Per-instance lru_cache using wrapt

How wrapt 2.2.0's lru_cache helper builds on top of functools.lru_cache to fix the issues with using it on instance methods.

python wrapt decorators

Stay Updated

Follow my journey and get notified about new posts and projects.

You can also follow this site via RSS feed.

If you're a Python developer, you might also want to check out the RSS feed available from planetpython.org for posts from various Python developers, including myself.

Sponsor Me

Support my open source work and help me continue creating tools that benefit the developer community.

Sponsor on GitHub