guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 60027b1c0fd87ad35edfa82bee847c78f3f46733
Author: wrobell <[email protected]>
AuthorDate: Wed Jun 18 19:56:12 2025 +0100

    gnu: Add python-blacksheep.
    
    * gnu/packages/python-web.scm (python-blacksheep): New variable.
    
    Change-Id: Ia6ffb6360f6ba932936dc2196161b4ef2cbcd733
    Modified-by: Sharlatan Hellseher <[email protected]>
    Signed-off-by: Sharlatan Hellseher <[email protected]>
---
 gnu/packages/python-web.scm | 67 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 67 insertions(+)

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")

Reply via email to