unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#68147] [PATCH] gnu: Add python-snappy.
@ 2023-12-30 13:46 Troy Figiel
  2023-12-30 14:51 ` [bug#68147] Naming collision Troy Figiel
  2024-01-06 17:21 ` [bug#68147] [PATCH v2] gnu: Add python-python-snappy Troy Figiel
  0 siblings, 2 replies; 6+ messages in thread
From: Troy Figiel @ 2023-12-30 13:46 UTC (permalink / raw)
  To: 68147

* gnu/packages/python-compression.scm (python-snappy): New variable.

Change-Id: I0142f49745104db8458c0becf222eb4088c9ee58
---
 gnu/packages/python-compression.scm | 31 +++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index bc96bc05d3..364f741392 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020, 2022, 2023 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -416,6 +417,36 @@ (define-public python-lzstring
     (description "Lz-string is a string compressor library for Python.")
     (license license:expat)))
 
+(define-public python-snappy
+  (package
+    (name "python-snappy")
+    (version "0.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "python-snappy" version))
+       (sha256
+        (base32 "0amv12w0ybn6n1lk36x70a3l8bdjv4mn7iflb59wqsi00smhg8dn"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "pytest" "-vv" "-k"
+                                ;; CFFI is only supported for PyPy builds.
+                                (string-append "not test_snappy_cffi_enum "
+                                               "and not test_snappy_all_cffi"))))))))
+    (inputs (list snappy))
+    (native-inputs (list python-pytest))
+    (home-page "https://github.com/andrix/python-snappy")
+    (synopsis "Python bindings for the Snappy compression library")
+    (description
+     "@code{python-snappy} provides bindings to the Snappy library
+and can be used to compress and decompress files and streams.  It can also be
+used directly from the command line.")
+    (license license:bsd-3)))
+
 (define-public bitshuffle
   (package
     (name "bitshuffle")

base-commit: f24b14767d362a84e6469682b4fe303b50f4b589
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#68147] Naming collision
  2023-12-30 13:46 [bug#68147] [PATCH] gnu: Add python-snappy Troy Figiel
@ 2023-12-30 14:51 ` Troy Figiel
  2023-12-30 17:21   ` Tomas Volf
  2024-01-06 17:21 ` [bug#68147] [PATCH v2] gnu: Add python-python-snappy Troy Figiel
  1 sibling, 1 reply; 6+ messages in thread
From: Troy Figiel @ 2023-12-30 14:51 UTC (permalink / raw)
  To: 68147

[-- Attachment #1: Type: text/plain, Size: 454 bytes --]

Interestingly, both `python-snappy' and `snappy' are available on PyPI
(https://pypi.org/project/snappy/). These are two completely distinct
packages and in this issue I only package `python-snappy'.

If I understand the Python naming rules, if someone were to package
`snappy' in the future, both would be associated to the `python-snappy'
variable in Guix. What would be the best approach to handle this
potential naming collision?

Best wishes,

Troy

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 861 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#68147] Naming collision
  2023-12-30 14:51 ` [bug#68147] Naming collision Troy Figiel
@ 2023-12-30 17:21   ` Tomas Volf
  2024-01-06 15:38     ` Troy Figiel
  0 siblings, 1 reply; 6+ messages in thread
From: Tomas Volf @ 2023-12-30 17:21 UTC (permalink / raw)
  To: Troy Figiel; +Cc: 68147

[-- Attachment #1: Type: text/plain, Size: 1010 bytes --]

On 2023-12-30 15:51:29 +0100, Troy Figiel wrote:
> Interestingly, both `python-snappy' and `snappy' are available on PyPI
> (https://pypi.org/project/snappy/). These are two completely distinct
> packages and in this issue I only package `python-snappy'.
>
> If I understand the Python naming rules, if someone were to package
> `snappy' in the future, both would be associated to the `python-snappy'
> variable in Guix. What would be the best approach to handle this
> potential naming collision?

As far as I can tell, names of PyPI packages in guix are basically formed by
adding `python-' prefix to the PyPI name.  So here the correct name would be
`python-python-snappy'.  I agree that it looks... weird, however it does prevent
the collision.

It will prevent any user confusion, while adhering to a pattern that is already
elsewhere, so I think it is worth it.

Have a nice day,
Tomas Volf

--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#68147] Naming collision
  2023-12-30 17:21   ` Tomas Volf
@ 2024-01-06 15:38     ` Troy Figiel
  0 siblings, 0 replies; 6+ messages in thread
From: Troy Figiel @ 2024-01-06 15:38 UTC (permalink / raw)
  To: 68147

Hi Tomas,

I like your approach, I was thinking in the same direction. Having a
slightly more convoluted name would be preferable over having to change
the API later on.

I will submit a new patch with a comment regarding its name. Snappy
seems to be a desired namespace :)

Best wishes,

Troy

Tomas Volf <~@wolfsden.cz> writes:

> On 2023-12-30 15:51:29 +0100, Troy Figiel wrote:
>> Interestingly, both `python-snappy' and `snappy' are available on PyPI
>> (https://pypi.org/project/snappy/). These are two completely distinct
>> packages and in this issue I only package `python-snappy'.
>>
>> If I understand the Python naming rules, if someone were to package
>> `snappy' in the future, both would be associated to the `python-snappy'
>> variable in Guix. What would be the best approach to handle this
>> potential naming collision?
>
> As far as I can tell, names of PyPI packages in guix are basically formed by
> adding `python-' prefix to the PyPI name.  So here the correct name would be
> `python-python-snappy'.  I agree that it looks... weird, however it does prevent
> the collision.
>
> It will prevent any user confusion, while adhering to a pattern that is already
> elsewhere, so I think it is worth it.
>
> Have a nice day,
> Tomas Volf
>
> --
> There are only two hard things in Computer Science:
> cache invalidation, naming things and off-by-one errors.
>
<#secure method=pgpmime mode=sign>




^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#68147] [PATCH v2] gnu: Add python-python-snappy.
  2023-12-30 13:46 [bug#68147] [PATCH] gnu: Add python-snappy Troy Figiel
  2023-12-30 14:51 ` [bug#68147] Naming collision Troy Figiel
@ 2024-01-06 17:21 ` Troy Figiel
  2024-01-09  8:55   ` bug#68147: " Mathieu Othacehe
  1 sibling, 1 reply; 6+ messages in thread
From: Troy Figiel @ 2024-01-06 17:21 UTC (permalink / raw)
  To: 68147

* gnu/packages/python-compression.scm (python-python-snappy): New variable.
---
 gnu/packages/python-compression.scm | 34 +++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index bc96bc05d3..6f249dd3af 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020, 2022, 2023 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -416,6 +417,39 @@ (define-public python-lzstring
     (description "Lz-string is a string compressor library for Python.")
     (license license:expat)))
 
+(define-public python-python-snappy
+  (package
+    ;; PyPI contains both `snappy' and `python-snappy' as completely distinct
+    ;; packages. To avoid a name collision in Guix, we use the variable name
+    ;; `python-python-snappy' for the package called `python-snappy' on PyPI.
+    (name "python-python-snappy")
+    (version "0.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "python-snappy" version))
+       (sha256
+        (base32 "0amv12w0ybn6n1lk36x70a3l8bdjv4mn7iflb59wqsi00smhg8dn"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "pytest" "-vv" "-k"
+                                ;; CFFI is only supported for PyPy builds.
+                                (string-append "not test_snappy_cffi_enum "
+                                               "and not test_snappy_all_cffi"))))))))
+    (inputs (list snappy))
+    (native-inputs (list python-pytest))
+    (home-page "https://github.com/andrix/python-snappy")
+    (synopsis "Python bindings for the Snappy compression library")
+    (description
+     "@code{python-python-snappy} provides bindings to the Snappy library and
+can be used to compress and decompress files and streams.  It can also be used
+directly from the command line.")
+    (license license:bsd-3)))
+
 (define-public bitshuffle
   (package
     (name "bitshuffle")

base-commit: ee0cf3b9ff4cd5a9d3637d09677195ea9ee1a8c0
-- 
2.42.0





^ permalink raw reply related	[flat|nested] 6+ messages in thread

* bug#68147: [PATCH v2] gnu: Add python-python-snappy.
  2024-01-06 17:21 ` [bug#68147] [PATCH v2] gnu: Add python-python-snappy Troy Figiel
@ 2024-01-09  8:55   ` Mathieu Othacehe
  0 siblings, 0 replies; 6+ messages in thread
From: Mathieu Othacehe @ 2024-01-09  8:55 UTC (permalink / raw)
  To: Troy Figiel; +Cc: 68147-done


> * gnu/packages/python-compression.scm (python-python-snappy): New variable.

Applied, thanks,

Mathieu




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-01-09  8:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-30 13:46 [bug#68147] [PATCH] gnu: Add python-snappy Troy Figiel
2023-12-30 14:51 ` [bug#68147] Naming collision Troy Figiel
2023-12-30 17:21   ` Tomas Volf
2024-01-06 15:38     ` Troy Figiel
2024-01-06 17:21 ` [bug#68147] [PATCH v2] gnu: Add python-python-snappy Troy Figiel
2024-01-09  8:55   ` bug#68147: " Mathieu Othacehe

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).