[PATCH] gnu: Add python-synapseclient.

  • Open
  • quality assurance status badge
Details
3 participants
  • Jonathan Brielmaier
  • Mădălin Ionel Patrașcu
  • Ricardo Wurmus
Owner
unassigned
Submitted by
Mădălin Ionel Patrașcu
Severity
normal
M
M
Mădălin Ionel Patrașcu wrote on 13 Nov 2022 06:43
(address . guix-patches@gnu.org)
20221113054308.5582-1-madalinionel.patrascu@mdc-berlin.de
* gnu/packages/python-xyz.scm (python-synapseclient): New variable.
---
gnu/packages/python-xyz.scm | 60 +++++++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)

Toggle diff (75 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e26656fa32..b599a2e4ed 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10383,6 +10383,66 @@ (define-public python-sympy
as possible in order to be comprehensible and easily extensible.")
(license license:bsd-3)))
+(define-public python-synapseclient
+ (package
+ (name "python-synapseclient")
+ (version "2.7.0")
+ (source (origin
+ ;; git version contains tests
+ (method git-fetch)
+ (uri (git-reference
+ (url
+ "https://github.com/Sage-Bionetworks/synapsePythonClient")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0v2yyjpmxlxmbn1xbxzx1l1bs45ir9p4i51dlf847irnrrmifxcd"))))
+ ;;(method url-fetch)
+ ;;(uri (pypi-uri "synapseclient" version))
+ ;;(sha256
+ ;; (base32
+ ;; "1g2n5bbq5vkvprk4ap3sbz2q39cjwl8igy3krlskg34c1q7if7r4"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'relax-version-requirements
+ (lambda _
+ (substitute* "setup.py"
+ (("keyring>=15,<23\\.5") "keyring>=15")
+ (("keyrings\\.alt==3\\.1") "keyrings.alt>=3.1"))))
+ (add-before 'build 'set-homeless-shelter
+ (lambda _
+ ;; could not create '/homeless-shelter': Permission denied
+ (setenv "HOME" "/tmp")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; these tests require server authentification SynapseNoCredentialsError
+ (delete-file-recursively "tests/integration/synapseclient")
+ (delete-file-recursively "tests/integration/synapseutils")
+ (invoke "pytest")))))))
+ (propagated-inputs
+ (list python-deprecated
+ python-keyring
+ python-keyrings.alt
+ python-requests))
+ (native-inputs
+ (list python-boto3
+ python-flake8-3.8
+ python-pandas
+ python-psutil
+ python-pytest
+ python-pytest-mock
+ python-pytest-xdist-next))
+ (home-page "https://www.synapse.org")
+ (synopsis "Client for Synapse, a collaborative compute space")
+ (description
+ "This package provides a client for @code{Synapse}, a collaborative compute
+space that allows scientists to share and analyze data together.")
+ (license license:asl2.0)))
+
(define-public python-q
(package
(name "python-q")

base-commit: c4025af8c11c3e9ea0c2747b6c475c916fb61d80
--
2.38.1
J
R
R
Ricardo Wurmus wrote on 17 Nov 2022 12:24
(name . Mădălin Ionel Patrașcu)(address . madalinionel.patrascu@mdc-berlin.de)(address . 59239@debbugs.gnu.org)
87v8ndu8ew.fsf@elephly.net
Hi Mădălin,

Toggle quote (1 lines)
> * gnu/packages/python-xyz.scm (python-synapseclient): New variable.
[…]

Toggle quote (6 lines)
> + ;;(method url-fetch)
> + ;;(uri (pypi-uri "synapseclient" version))
> + ;;(sha256
> + ;; (base32
> + ;; "1g2n5bbq5vkvprk4ap3sbz2q39cjwl8igy3krlskg34c1q7if7r4"))))

Please remove this commented code.

Toggle quote (9 lines)
> + (build-system python-build-system)
> + (arguments
> + '(#:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'relax-version-requirements
> + (lambda _
> + (substitute* "setup.py"
> + (("keyring>=15,<23\\.5") "keyring>=15")

Is this really a good idea? Upper bounds usually exist for a reason.
We currently have version 23.9. Can you please clear this with upstream
first?

Toggle quote (6 lines)
> + (("keyrings\\.alt==3\\.1") "keyrings.alt>=3.1"))))
> + (add-before 'build 'set-homeless-shelter
> + (lambda _
> + ;; could not create '/homeless-shelter': Permission denied
> + (setenv "HOME" "/tmp")))

We’re setting HOME, not homeless-shelter.

Toggle quote (8 lines)
> + (replace 'check
> + (lambda* (#:key tests? #:allow-other-keys)
> + (when tests?
> + ;; these tests require server authentification SynapseNoCredentialsError
> + (delete-file-recursively "tests/integration/synapseclient")
> + (delete-file-recursively "tests/integration/synapseutils")
> + (invoke "pytest")))))))

typo: “authentication”. What exactly does this error mean? Does it
talk to the internet? How are these tests supposed to be run?

Is it possible to disable these tests with an option to pytest? That
would seem better than conditionally deleting them.

Finally, I think the test files should be deleted unconditionally, so
that “tests?” only governs whether the tests are *run* instead of also
causing other side effects.

--
Ricardo
?