Repository navigation
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 replaceimport svcswithimport svcs_pyramidandsvcs.pyramid.foo()withsvcs_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 newsvcs.fastapi.DepRegistrydependency (based onsvcs.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.ForwardRefannotations 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.gzand
$ gh attestation verify --owner hynek svcs-26.2.0-py3-none-any.whl