Stefan Scherfke
banner
stefan.sofa-rockers.org
Stefan Scherfke
@stefan.sofa-rockers.org
Python engineer at energy & meteo systems, maintainer of Typed Settings
Just released #TypedSettings 25.3.0 🎉

Changes
- Extract attribute docstrings and use them as CLI help texts (thx to a snippet from @davidism.bsky.social).
- Support dotenv (.env) files
- detect competing usages of the Click context object

typed-settings.readthedocs.io/en/latest/ch...
Changelog - Typed Settings
typed-settings.readthedocs.io
November 29, 2025 at 10:18 PM
Reposted by Stefan Scherfke
Fifteen Years

xkcd.com/3172/
November 26, 2025 at 10:32 PM
I finally manged to get working winbars in #neovim that only appear in actual files (but not in quickfix or term) and which also show LSP breadcrumps if available. And they are also slightly dimmed for inactive buffers.

gitlab.com/sscherfke/do...

#neovim #lualine #lspsaga #lsp
November 14, 2025 at 8:58 PM
Reposted by Stefan Scherfke
pytest 9.0 just released!

Notable changes:
* subtests support
* Native TOML configuration
* Progress output in the terminal taskbar

And others. Check the changelog: docs.pytest.org/en/stable/ch...
Changelog - pytest documentation
docs.pytest.org
November 8, 2025 at 8:07 PM
Just released #TypedSettings 25.2.0! 🎉

It no longer needs to call `os.chdir()` to resolve relative paths, which could lead to problems under specific (but rare) conditions.

It also drops support for Python 3.9.

typed-settings.readthedocs.io/en/latest/ch...
Changelog - Typed Settings
typed-settings.readthedocs.io
October 26, 2025 at 8:59 PM
🎉 Just released #TypedSettings 25.1.0 🎉

It now uses field aliases of defined and adds support for new types: re.Pattern/re.compile(), Path subtypes, Literal and TS’s Secret type. It also officially supports #Python 3.14.

Thanks to all contributors!

typed-settings.readthedocs.io/en/latest/ch...
Changelog - Typed Settings
typed-settings.readthedocs.io
September 30, 2025 at 10:30 AM
Reposted by Stefan Scherfke
Another highlight from #PyConUK!

Katie Bickford gives a junior's perspective on doing difficult things. Contains advice for both junior developers *and* (importantly) the senior developers working with them! This is a topic that doesn't normally get enough airtime.

youtu.be/7yfGMMei0b8?...
PYCON UK 2025: A junior's perspective why doing difficult things is good, Katie Bickford
YouTube video by PyCon UK
youtu.be
September 25, 2025 at 11:39 AM
Good keynote by @hynek.me. Can recommend. 👌 www.youtube.com/watch?v=gDvw...

#PyConUK
PYCON UK 2025 Friday Keynote: Python's True Superpower, Hynek Schlawack
YouTube video by PyCon UK
www.youtube.com
September 22, 2025 at 6:26 PM
(1/2) #neovim tip:

Render Python strings in "*TEMPLATE*" variables as Jinja using treesitter injections.

1. Make sure that "jinja" and "jinja_inline" are available for treesitter.
September 13, 2025 at 6:32 PM
🎉 I just released #TypedSettings 25.0.0 – the first release this year and since last November. It adds support for "Mapping", "IntEnum", and "StrEnum", increases flexiblity and documentation of nested settings, and, finally, improves error handling. typed-settings.readthedocs.io/en/latest/ch...
Changelog - Typed Settings
typed-settings.readthedocs.io
July 25, 2025 at 9:20 PM
Reposted by Stefan Scherfke
Almost 4 months later, here it finally is:

uv: Making Python Local Workflows Fast and Boring in 2025

youtube.com/watch?v=TiBI... 1/3
https://youtube.com/watch?v=TiBIjouDGuI…
July 6, 2025 at 6:44 PM
Reposted by Stefan Scherfke
Just released: Python 3.14.0 beta 2! 🚀🐍

🥧 Deferred type annotation evaluation!
🥧 T-strings!
🥧 Zstandard!
🥧 Syntax highlighting in the REPL!
🥧 Colour in unittest, argparse, json and calendar CLIs!
🥧 UUID v6-8!
🥧 And much more!

discuss.python.org/t/python-3-1...

#Python #CPython #Python314 #release
Python 3.14.0 beta 2 is here!
Here’s the second 3.14 beta. https://www.python.org/downloads/release/python-3140b2/ This is a beta preview of Python 3.14 Python 3.14 is still in development. This release, 3.14.0b2, is the second...
discuss.python.org
May 26, 2025 at 7:44 PM
Reposted by Stefan Scherfke
Today, we’re announcing the preview release of ty, an extremely fast type checker and language server for Python, written in Rust.

In early testing, it's 10x, 50x, even 100x faster than existing type checkers. (We've seen >600x speed-ups over Mypy in some real-world projects.)
May 13, 2025 at 5:00 PM
Reposted by Stefan Scherfke
PhD Timeline xkcd.com/3081
April 25, 2025 at 3:32 PM
Reposted by Stefan Scherfke
Among the many oddities in YAML is the variety of string formatting options. Here's a site that explains them: yaml-multiline.info
YAML Multiline Strings
Find the right syntax for your YAML multiline strings.
yaml-multiline.info
April 17, 2025 at 1:53 PM
Reposted by Stefan Scherfke
April 8, 2025 at 12:03 AM
Reposted by Stefan Scherfke
Tell me your team is entirely comprised of over-confident twenty-somethings without telling me your team is entirely comprised of over-confident twenty-somethings
March 28, 2025 at 2:20 PM
Reposted by Stefan Scherfke
#neovim 0.11 is out!

- List of notable changes since 0.10: neovim.io/doc/user/new...
- Summary blog post: gpanders.com/blog/whats-n...
- Release binaries: github.com/neovim/neovi...

Thank you all for the support! More things to come in 0.12!
News-0.11 - Neovim docsNeovim
Neovim user documentation
neovim.io
March 26, 2025 at 3:20 PM
Reposted by Stefan Scherfke
Finally, here's attrs 25.2.0: vroom–vroom edition! attrs always had impressive runtime performance because we generate optimal code for your configuration. But now @tinche.bsky.social also made this code gen 30–50% faster!

This is the last version to support Python 3.8.

github.com/python-attrs...
Release 25.2.0 · python-attrs/attrs
Highlights Vroom–vroom edition! attrs had always impressive runtime performance because we generate optimal code for your configuration. But now, said code generation is 30–50% faster, too! This is...
github.com
March 12, 2025 at 10:03 AM
Reposted by Stefan Scherfke
Hi everyone,

Just to announce that the handle bsky.app/profile/nico... is not Bruno, but an impersonator. That account has already been reported.

Bruno can be reached at bsky.app/profile/soli....
bsky.app
February 23, 2025 at 1:45 AM
#UV is just pure awesomeness. Combined with #TypedSettings, it’s sooo easy to write a CLI. Also #rich. 🤩
February 23, 2025 at 10:30 AM
Reposted by Stefan Scherfke
I just released quattro 25.1.0. The biggest change is the addition of `create_background_task` to our TaskGroup class.

Background tasks are similar to normal tasks, but they don't block the TaskGroup exit. Instead, they get cancelled if they're still running.
February 21, 2025 at 10:35 PM
Reposted by Stefan Scherfke
sybil 9.1.0 released! It's a #python tool for testing examples in documentation and source code: sybil.readthedocs.io/en/latest/
February 18, 2025 at 6:31 PM
Reposted by Stefan Scherfke
https://codspeed.io is pretty cool and class creation will be 38–52% faster in attrs 25.2.0

https://github.com/python-attrs/attrs/pull/1407
February 16, 2025 at 9:50 AM
Reposted by Stefan Scherfke
How to create a Python CLI that's globally available in your system in 5 easy steps.

1. Install uv
2. Init project with `uv init --app --package mycli`
3. Write code
4. Install with `uv tool install . -e`
5. Use `mycli` anywhere in your computer
February 11, 2025 at 11:07 AM