* [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).