guix_mirror_bot pushed a commit to branch python-team
in repository guix.
commit 56ae52fdae9684561881eb8dcda018af302086ca
Author: Sharlatan Hellseher <[email protected]>
AuthorDate: Sun Dec 7 12:48:30 2025 +0000
gnu: Add python-ulid.
* gnu/packages/python-xyz.scm (python-ulid): New variable.
Change-Id: I251d3fb5c481879aab0de664232d612a9231a4cb
---
gnu/packages/python-xyz.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2cd53a3e03..f56e837635 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -39438,6 +39438,55 @@ distance (Ukkonen).")
parsing UK postcodes.")
(license license:expat)))
+(define-public python-ulid
+ (package
+ (name "python-ulid")
+ (version "3.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mdomke/python-ulid")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0m1sixmqynlalsw50af5mv5q4gpz2052d1p2ig9hr7yqmdvqcz6p"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-version
+ (lambda _
+ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version))))))
+ (native-inputs
+ (list python-freezegun
+ python-hatch-fancy-pypi-readme
+ python-hatch-vcs
+ python-hatchling
+ python-pytest))
+ (propagated-inputs
+ (list python-pydantic))
+ (home-page "https://github.com/mdomke/python-ulid")
+ (synopsis "Universally unique lexicographically sortable identifier")
+ (description
+ "ULID is a universally unique lexicographically sortable identifier.
+It is:
+@itemize
+@item 128-bit compatible with UUID
+@item 1.21e+24 unique ULIDs per millisecond
+@item lexicographically sortable!
+@item canonically encoded as a 26 character string, as opposed to the 36
+character UUID
+@item uses Crockford's base32 for better efficiency and readability (5 bits
+per character)
+@item case insensitive
+@item no special characters (URL safe)
+@item monotonic sort order (correctly detects and handles the same
+millisecond)
+@end itemize")
+ (license license:expat)))
+
(define-public python-uncertainties
(package
(name "python-uncertainties")