Skip to content

25.1.0

Latest
Compare
Choose a tag to compare
@hynek hynek released this 25 Jan 13:14
· 5 commits to main since this release
25.1.0
1a54b88

Highlights

This is mostly a grab bag of smaller features and bug fixes that I've been carrying around forever, because I was getting ready to tackle a bunch of bigger projects like multiple scopes soon™. I'm still getting ready, but I don't want to withhold these improvements any further.

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), Klaviyo (@klaviyo), FilePreviews (@filepreviews), Privacy Solutions GmbH (@privacy-solutions), Gedankenspieler (@Gedankenspieler), Daniel Fortunov (@asqui), Kevin P. Fleming (@kpfleming), and Polar (@polarsource).

Maintenance Sustainers

Buttondown (@buttondown), Christopher Dignam (@chdsbd), Magnus Watn (@magnuswatn), David Cramer (@dcramer), Jesse Snyder (@jessesnyder), Rivo Laks (@rivol), Chris Withers (@cjw296), Mike Fiedler (@miketheman), Duncan Hill (@cricalix), Colin Marquardt (@cmarqu), Pieter Swinkels (@swinkels), Nick Libertini (@libertininick), Moving Content AG (@moving-content), ProteinQure (@ProteinQure), The Westervelt Company (@westerveltco), Sławomir Ehlert (@slafs), Mostafa Khalil (@khadrawy), Filip Mularczyk (@mukiblejlok), Thomas Klinger (@thmsklngr), Andreas Poehlmann (@ap--), August Bigelow (@atbigelow), Carlton Gibson (@carltongibson), and Roboflow (@roboflow).

Not to forget 11 more amazing humans who chose to be generous but anonymous!

Full Changelog

Added

  • Python 3.13 support.

  • svcs.Registry now implements a __iter__ method that allows to iterate over its registered services. #106

Removed

  • Python 3.8 support.

Changed

  • Flask: The registry is now stored on app.extensions, not app.config. This is an implementation detail. If you are directly accessing the registry via app.config, this is a breaking change, though you should ideally move to svcs.flask.registry anyway. #71 #72 #73

  • Registry.register_factory() is now more lenient regarding the arguments of the factory. It only looks at the first argument (if present) and ignores the rest. #110

Fixed

  • Container.aget() now also enters and exits synchronous context managers. #93

  • Container.aget() now also enters and exits context managers that are returned by async factories. #105


This release contains contributions from @alexrudy, @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-25.1.0.tar.gz

and

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