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.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 64010 in the body.
You can then email your comments to 64010 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#64010; Package guix-patches. (Sun, 11 Jun 2023 21:11:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Sharlatan Hellseher <sharlatanus <at> gmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 11 Jun 2023 21:11:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

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





Information forwarded to guix-patches <at> gnu.org:
bug#64010; Package guix-patches. (Sat, 17 Jun 2023 14:33:01 GMT) Full text and rfc822 format available.

Message #8 received at 64010 <at> debbugs.gnu.org (full text, mbox):

From: Vinicius Monego <monego <at> posteo.net>
To: Sharlatan Hellseher <sharlatanus <at> gmail.com>, 64010 <at> debbugs.gnu.org
Subject: Re: [bug#64010] [PATCH] gnu: Add python-msgspec.
Date: Sat, 17 Jun 2023 14:32:18 +0000
Em dom, 2023-06-11 às 22:10 +0100, Sharlatan Hellseher escreveu:
> * 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

Hi,

LGTM. Can you update to version 0.16.0 which was released 5 days ago?

Vinicius

Information forwarded to guix-patches <at> gnu.org:
bug#64010; Package guix-patches. (Sun, 18 Jun 2023 10:00:02 GMT) Full text and rfc822 format available.

Message #11 received at 64010 <at> debbugs.gnu.org (full text, mbox):

From: Sharlatan Hellseher <sharlatanus <at> gmail.com>
To: 64010 <at> debbugs.gnu.org
Cc: Sharlatan Hellseher <sharlatanus <at> gmail.com>
Subject: [PATCH v2] gnu: Add python-msgspec.
Date: Sun, 18 Jun 2023 10:59:13 +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..43c9473e95 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.16.0")
+    (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
+                "09q567klcv7ly60w9lqip2ffyhrij100ky9igh3p3vqwbml33zb3"))))
+    (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





Information forwarded to guix-patches <at> gnu.org:
bug#64010; Package guix-patches. (Sat, 24 Jun 2023 12:38:02 GMT) Full text and rfc822 format available.

Message #14 received at 64010 <at> debbugs.gnu.org (full text, mbox):

From: Sharlatan Hellseher <sharlatanus <at> gmail.com>
To: 64010 <at> debbugs.gnu.org
Cc: Vinicius Monego <monego <at> posteo.net>
Date: Sat, 24 Jun 2023 13:37:30 +0100
[Message part 1 (text/plain, inline)]
Hi,

A gentle ping on this issue.

It let me pack Gallia - the security and preparation framework for cars and
other embedded devices.

Thanks.
[Message part 2 (text/html, inline)]

Reply sent to Vinicius Monego <monego <at> posteo.net>:
You have taken responsibility. (Sun, 25 Jun 2023 21:50:02 GMT) Full text and rfc822 format available.

Notification sent to Sharlatan Hellseher <sharlatanus <at> gmail.com>:
bug acknowledged by developer. (Sun, 25 Jun 2023 21:50:03 GMT) Full text and rfc822 format available.

Message #19 received at 64010-done <at> debbugs.gnu.org (full text, mbox):

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 1 (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 2 (text/html, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 24 Jul 2023 11:24:04 GMT) Full text and rfc822 format available.

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.