summary refs log tree commit diff
path: root/gnu/packages/python-xyz.scm
diff options
context:
space:
mode:
authorAlex ter Weele <alex.ter.weele@gmail.com>2020-02-29 11:08:29 -0600
committerMarius Bakke <mbakke@fastmail.com>2020-04-02 20:55:15 +0200
commit77b32f61f99002966cd944e48e01f9da7537be9f (patch)
treee65ff5fdf654582e90b25fd322e0810f6d6cc77e /gnu/packages/python-xyz.scm
parentbc834c0f625dfe77e430f23c5a316129bbca5d9a (diff)
downloadguix-77b32f61f99002966cd944e48e01f9da7537be9f.tar.gz
gnu: Add python-canonicaljson.
* gnu/packages/python-xyz.scm (python-canonicaljson): New variable.

Signed-off-by: Marius Bakke <mbakke@fastmail.com>
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r--gnu/packages/python-xyz.scm32
1 files changed, 32 insertions, 0 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 03f6b63e2b..d559496f92 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -18769,3 +18769,35 @@ replacement for dictionaries where immutability is desired.")
 using “=” characters.  However this conveys no benefit so many protocols
 choose to use Base64 without the “=” padding.")
     (license license:asl2.0)))
+
+(define-public python-canonicaljson
+  (package
+    (name "python-canonicaljson")
+    (version "1.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "canonicaljson" version))
+       (sha256
+        (base32 "09cpacc8yvcc74i63pdmlfaahh77dnvbyw9zf29wml2zzwqfbg25"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-six" ,python-six)
+       ("python-frozendict" ,python-frozendict)
+       ("python-simplejson" ,python-simplejson)))
+    (home-page "https://github.com/matrix-org/python-canonicaljson")
+    (synopsis "Canonical JSON")
+    (description
+     "Deterministically encode JSON.
+
+@itemize
+@item Encodes objects and arrays as RFC 7159 JSON.
+@item Sorts object keys so that you get the same result each time.
+@item Has no insignificant whitespace to make the output as small as possible.
+@item Escapes only the characters that must be escaped, U+0000 to
+ U+0019 / U+0022 / U+0056, to keep the output as small as possible.
+@item Uses the shortest escape sequence for each escaped character.
+@item Encodes the JSON as UTF-8.
+@item Can encode frozendict immutable dictionaries.
+@end itemize")
+    (license license:asl2.0)))