~ruther/guix-local

b7049c08f09644fdb357fee191d8919cf9858aff — Jake Forster 1 year, 10 days ago 9111b75
gnu: Add python-huey.

* gnu/packages/python-xyz.scm (python-huey): New variable.

Change-Id: Ibe925f74f807d52fcf07b2a8faa478e0691108d6
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
1 files changed, 47 insertions(+), 0 deletions(-)

M gnu/packages/python-xyz.scm
M gnu/packages/python-xyz.scm => gnu/packages/python-xyz.scm +47 -0
@@ 164,6 164,7 @@
;;; Copyright © 2025 Dariqq <dariqq@posteo.net>
;;; Copyright © 2025 Nguyễn Gia Phong <mcsinyx@disroot.org>
;;; Copyright © 2025, Cayetano Santos <csantosb@inventati.org>
;;; Copyright © 2025 Jake Forster <jakecameron.forster@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 774,6 775,52 @@ part of @url{https://github.com/hgrecco/pint, Pint}, the Python units
package. ")
    (license license:bsd-3)))

(define-public python-huey
  (package
    (name "python-huey")
    (version "2.5.3")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/coleifer/huey")
             (commit version)))
       (file-name (git-file-name name version))
       (sha256
        (base32 "189sin0k9imiddm10xa5llql3953p1jv6dqgxm78hy18qrlbkz02"))))
    (build-system pyproject-build-system)
    (arguments
     (list
      #:phases
      #~(modify-phases %standard-phases
          (add-after 'unpack 'remove-which
            (lambda _
              (substitute* "huey/tests/test_kt_huey.py"
                (("^has_ktserver = sp.call\\(\\['which', 'ktserver'\\].*$")
                 "has_ktserver = False"))))
          (add-before 'check 'pre-check
            (lambda _ (spawn "redis-server" '("redis-server")))))))
    (native-inputs (list python-setuptools python-wheel redis tzdata-for-tests))
    (propagated-inputs (list python-redis))
    (home-page "https://huey.readthedocs.io")
    (synopsis "Lightweight task queue for Python")
    (description
     "Huey is a lightweight task queue for Python applications.  Huey
supports:
@itemize
@item Redis, SQLite, file-system, or in-memory storage
@item multi-process, multi-thread or greenlet task execution models
@item scheduling tasks to execute at a given time, or after a given delay
@item scheduling recurring tasks, like a crontab
@item automatically retrying tasks that fail
@item task prioritization
@item task result storage
@item task expiration
@item task locking
@item task pipelines and chains
@end itemize")
    (license license:expat)))

(define-public python-jsonpath-ng
  (package
    (name "python-jsonpath-ng")