GNU bug report logs - #64010
[PATCH] gnu: Add python-msgspec.

Previous Next

Package: guix-patches;

Reported by: Sharlatan Hellseher <sharlatanus <at> gmail.com>

Date: Sun, 11 Jun 2023 21:11:01 UTC

Severity: normal

Tags: patch

Done: Vinicius Monego <monego <at> posteo.net>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Sharlatan Hellseher <sharlatanus <at> gmail.com>
Subject: bug#64010: closed (Re:)
Date: Sun, 25 Jun 2023 21:50:03 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#64010: [PATCH] gnu: Add python-msgspec.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 64010 <at> debbugs.gnu.org.

-- 
64010: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64010
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Vinicius Monego <monego <at> posteo.net>
To: Sharlatan Hellseher <sharlatanus <at> gmail.com>, 64010-done <at> debbugs.gnu.org
Subject: Re:
Date: Sun, 25 Jun 2023 21:49:31 +0000
[Message part 3 (text/plain, inline)]
Em sáb, 2023-06-24 às 13:37 +0100, Sharlatan Hellseher escreveu:
> Hi,
> 
> A gentle ping on this issue.
> 
> It let me pack Gallia - the security and preparation framework for
> cars and other embedded devices.
> 
> Thanks.

Hi,

I pushed python-msgspec with changes to synopsis and description, but
then noticed that it contains an autogenerated C header (atof_consts.h)
which is generated by the script in /scripts. We probably should run
that script after the unpack phase but that should be done on a new
commit now.

Vinicius
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
From: Sharlatan Hellseher <sharlatanus <at> gmail.com>
To: guix-patches <at> gnu.org
Cc: Sharlatan Hellseher <sharlatanus <at> gmail.com>
Subject: [PATCH] gnu: Add python-msgspec.
Date: Sun, 11 Jun 2023 22:10:31 +0100
* gnu/packages/serialization.scm (python-msgspec): New variable.
---
 gnu/packages/serialization.scm | 64 ++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 39954d6764..e2d45f28b1 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2020 Martin Becze <mjbecze <at> riseup.net>
 ;;; Copyright © 2020 Alexandros Theodotou <alex <at> zrythm.org>
 ;;; Copyright © 2023 Alexey Abramov <levenson <at> mmer.org>
+;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,6 +42,7 @@ (define-module (gnu packages serialization)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
+  #:use-module (guix build-system pyproject)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
@@ -58,6 +60,8 @@ (define-module (gnu packages serialization)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-build)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages perl))
@@ -613,6 +617,66 @@ (define-public capnproto
 RPC system.  Think JSON, except binary.  Or think Protocol Buffers, except faster.")
     (license license:expat)))
 
+(define-public python-msgspec
+  (package
+    (name "python-msgspec")
+    (version "0.15.1")
+    (source (origin
+              ;; There are no tests in the PyPI tarball.
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jcrist/msgspec")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1l3f893ba3cmsvz0rkk2y4krzya0qwhsbllhs1f3gd6xp0dq6pf4"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      ;; Disable only one failing test.
+      ;;
+      ;; AssertionError: msgspec/structs.pyi:7: error: Positional-only parameters
+      ;; are only supported in Python 3.8 and greater
+      #:test-flags #~(list "-k" "not test_mypy")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'versioneer
+            (lambda _
+              (invoke "versioneer" "install")
+              (substitute* "setup.py"
+                (("version=versioneer.get_version\\(),")
+                 (format #f "version=~s," #$version))))))))
+    ;; XXX: It might support more architectures but GitHub Actions listed only
+    ;; two right now. Try to build for the rest supported by Guix.
+    ;; See:
+    ;; https://github.com/jcrist/msgspec/blob/main/.github/workflows/ci.yml#L83
+    (supported-systems (list "x86_64-linux" "aarch64-linux"))
+    (native-inputs (list python-attrs
+                         python-gcovr
+                         python-msgpack
+                         python-mypy
+                         python-pytest
+                         python-setuptools-scm
+                         python-versioneer))
+    (propagated-inputs (list python-pyyaml python-tomli python-tomli-w))
+    (home-page "https://jcristharif.com/msgspec/")
+    (synopsis
+     "Fast serialization/validation library for JSON, MessagePack, YAML, and TOML")
+    (description
+     "This package provides a fast serialization and validation library, with builtin
+support for JSON, MessagePack, YAML, and TOML.  It includes the following features:
+@itemize
+@item high performance encoders/decoders for common protocols.
+@item support for a wide variety of Python types.  Additional types may be
+supported through extensions.
+@item zero-cost schema validation using familiar Python type annotations.  In
+benchmarks msgspec decodes and validates JSON about 2x faster than @code{orjson}
+can decode it alone.
+@item a speedy Struct type for representing structured data.
+@end itemize")
+    (license license:bsd-3)))
+
 (define-public python-ruamel.yaml
   (package
     (name "python-ruamel.yaml")

base-commit: 299f64adea72a4b360da54b0bffd06ee57a5517b
-- 
2.40.1




This bug report was last modified 1 year and 335 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.