Download Latest Version v2.4.2 source code.tar.gz (2.0 MB)
Email in envelope

Get an email when there's a new version of BlackSheep

Home / v2.4.1
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-09-28 2.8 kB
v2.4.1 source code.tar.gz 2025-09-28 2.0 MB
v2.4.1 source code.zip 2025-09-28 2.1 MB
Totals: 3 Items   4.1 MB 1
  • Correct bug in controller inheritance that would prevent argument types and return type hints from working as expected (#594). By @martinmkhitaryan.
  • Improve the code responsible of mapping input request parameters into instances of desired types. Change the inner workings of blacksheep.server.bindings to make the code more configurable and easier to maintain.
  • Add support for StrEnum and IntEnum to binders for request handlers' parameters. See #588. Enums can be mapped by key and by value. The class that matches StrEnum make case sensitive checks; override the __missing__ method of your user-defined enums to support case insensitive checks; or define a custom StrEnumConverter class. This feature requires Python >= 3.11.
  • Add support for Literal to binders for request handlers' parameters. See #588. String literals are case sensitive by default.
  • Minor breaking change. Remove the dependency on python-dateutil (#544), which was always used to parse input datetime parameters. The datetime parsing logic is replaced with a function that only supports the most common ISO formats: %Y-%m-%dT%H:%M:%S.%f, %Y-%m-%dT%H:%M:%S, %Y-%m-%d, and is much more performant for such formats. The new code API offers a simple way to keep using python-dateutil for those who desire doing so.
  • Fix erroneous assumption when parsing a request body declared as bytes. When the declared requested input body is bytes, the framework has been corrected to not require URL-safe base64 encoded data, and to read the input body as-is.
  • Add support for defining convert functions in custom BoundValue classes that are used to convert Python objects from parsed JSON into more specific classes.
  • Correct bug that prevented request body input to be mapped properly to a list using the default logic.
  • Upgrade pytest-asyncio to the latest version. Fix #596.
  • Fix a Cython segmentation fault happening when the user defines an exception handler with a wrong signature (#592), or that contains a bug and causes exceptions itself. Replace the Application exception_handlers dictionary with a user defined dictionary that validates values, and change a piece of code that causes a recursive error when an exception handler itself is buggy.
  • Add support for specifying the status code in view functions (#591).
  • Fix license field in pyproject.toml.
Source: README.md, updated 2025-09-28