summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwrobell <wrobell@riseup.net>2025-06-18 19:56:12 +0100
committerSharlatan Hellseher <sharlatanus@gmail.com>2025-09-28 00:34:27 +0100
commit60027b1c0fd87ad35edfa82bee847c78f3f46733 (patch)
tree3076aa872b67c0fcc0b501e81a26b7bcef63d5fe
parent7dca3b9e0aa7fdbe69088f8c6a01b3398f2ff560 (diff)
gnu: Add python-blacksheep.
* gnu/packages/python-web.scm (python-blacksheep): New variable. Change-Id: Ia6ffb6360f6ba932936dc2196161b4ef2cbcd733 Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com> Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
-rw-r--r--gnu/packages/python-web.scm67
1 files changed, 67 insertions, 0 deletions
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 1871435425..ed1f7fe8af 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -246,6 +246,73 @@ broad range of notification services, such as Telegram, Discord, Slack, Amazon
SNS, Gotify, etc.")
(license license:bsd-2)))
+(define-public python-blacksheep
+ (package
+ (name "python-blacksheep")
+ (version "2.4.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Neoteroi/BlackSheep")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1iwlj6vl0rnvddbn9zsdgpya88z0lifr86wz3ci1d67li7w5bjiq"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ ;; tests: 1443 passed, 3 skipped
+ ;;
+ ;; 1. Ignore integration tests.
+ ;; 2. Client tests use test fixture no longer available in
+ ;; pytest-asyncio,
+ ;;
+ ;; See: <https://github.com/Neoteroi/BlackSheep/issues/596>.
+ #:test-flags
+ #~(list "--ignore=itests"
+ "--ignore=tests/client")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'cythonize
+ (lambda _
+ (with-directory-excursion "blacksheep"
+ (for-each (lambda (file)
+ (invoke "cython" "-3" file "-I" "."))
+ (find-files "." ".*\\.pyx$"))))))))
+ (native-inputs
+ (list python-cython
+ python-flask
+ python-jinja2
+ python-pydantic
+ python-pyjwt
+ python-pytest
+ python-pytest-asyncio
+ python-setuptools))
+ (propagated-inputs
+ (list python-certifi
+ python-dateutil
+ python-essentials-openapi
+ python-guardpost
+ python-itsdangerous))
+ (home-page "https://github.com/Neoteroi/BlackSheep")
+ (synopsis "Asynchronous framework to build event based web applications")
+ (description
+ "BlackSheep is a lightweight, asynchronous, event driven Web framework.
+
+The framework offers
+@itemize
+@item A rich code API, based on dependency injection and inspired by Flask and
+ASP.NET Core.
+@item A typing-friendly codebase, which enables a comfortable development
+experience thanks to hints when coding with IDEs.
+@item Built-in generation of OpenAPI Documentation, supporting version 3, YAML,
+and JSON.
+@item A cross-platform framework, using the most modern versions of Python.
+@item Good performance.
+@end itemize")
+ (license license:expat)))
+
(define-public python-devpi-common
(package
(name "python-devpi-common")