Skip to content

26.2.0

Latest

Choose a tag to compare

@hynek hynek released this 24 Aug 12:53
· 3 commits to main since this release
26.2.0
9c740a7

Highlights

This one drops direct Pyramid support in lieu of the svcs-pyramid package (migration is just adding a dependency and replacing a dot with an underscore), adds registry access to FastAPI integration (which turns out to be very useful for testing), and makes auto-wiring of ForwardRefs on Python 3.14+ more robust.

Full changelog below!

Special Thanks

This release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If you would like to join them, go to https://github.com/sponsors/hynek and check out the sweet perks!

Above and Beyond

Variomedia AG (@variomedia), Tidelift (@tidelift), Kraken Tech (@kraken-tech), Klaviyo (@klaviyo), Privacy Solutions GmbH (@privacy-solutions), FilePreviews (@filepreviews), TestMu AI Open Source Office (Formerly LambdaTest) (@LambdaTest-Inc), Todoist Inc (@Doist), Daniel Fortunov (@asqui), and Kevin P. Fleming (@kpfleming).

Maintenance Sustainers

Buttondown (@buttondown), Christopher Dignam (@chdsbd), Magnus Watn (@magnuswatn), David Cramer (@dcramer), Rivo Laks (@rivol), Polar (@polarsource), Mike Fiedler (@miketheman), Duncan Hill (@cricalix), Colin Marquardt (@cmarqu), Nick Libertini (@libertininick), Brian M. Dennis (@crossjam), Al Sweigart (@asweigart), Celebrity News AG (@celebritynewsag), The Westervelt Company (@westerveltco), Sławomir Ehlert (@slafs), Mostafa Khalil (@khadrawy), Filip Mularczyk (@mukiblejlok), Thomas Klinger (@thmsklngr), Andreas Poehlmann (@ap--), August Trapper Bigelow (@atbigelow), Carlton Gibson (@carltongibson), and Roboflow (@roboflow).

Full Changelog

Removed

  • The Pyramid integration. Maintenance within the main package has become too much of a burden, so it is now lives in its own package called svcs-pyramid.

    Migrating is a pure rename: install svcs-pyramid, then replace import svcs with import svcs_pyramid and svcs.pyramid.foo() with svcs_pyramid.foo(). The registry and the container are still stored under the same keys, so nothing else changes. We will try to continue its maintenance for as long as its feasible.

    This is in line with our backwards-compatibility policy that has a provision for this exact case. #180

Added

  • FastAPI: svcs.fastapi.get_registry() returns the registry of a running application, either from the application object itself or from a test client wrapping it. The new svcs.fastapi.DepRegistry dependency (based on svcs.fastapi.registry()) injects it into views. #186

  • Starlette: svcs.starlette.get_registry() returns the registry of a running application, either from the application object itself or from a test client wrapping it. #186

Fixed

  • Autowiring now evaluates Python 3.14+ typing.ForwardRef annotations before service lookup. #187

This release contains contributions from @hynek, and @wbolster.

Artifact Attestations

You can verify this release's artifact attestions using GitHub's CLI tool by downloading the sdist and wheel from PyPI and running:

$ gh attestation verify --owner hynek svcs-26.2.0.tar.gz

and

$ gh attestation verify --owner hynek svcs-26.2.0-py3-none-any.whl