Subject: Re: bug#59792: [PATCH] gnu: Add python-pynetdicom.

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 16 Jan 2023 09:50:10 -0500

Hello Antero!

Antero Mejr <[email-masked]> writes:

> * gnu/packages/python-science.scm (python-pydicom): New variable.

Thanks for this contribution.

> Please apply this patch first.
> Supersedes #55989.
>
>  gnu/packages/python-science.scm | 46 +++++++++++++++++++++++++++++++++
>  1 file changed, 46 insertions(+)
>
> diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
> index 52fe1460bb..00bba25a4a 100644
> --- a/gnu/packages/python-science.scm
> +++ b/gnu/packages/python-science.scm
> @@ -1656,6 +1656,52 @@ (define-public python-vaex-core
>  tabular datasets.  This package provides the core modules of Vaex.")
>      (license license:expat)))
>  
> +(define-public python-pydicom
> +  (package
> +    (name "python-pydicom")
> +    (version "2.3.1")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/pydicom/pydicom")
> +                    (commit (string-append "v" version))))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +                "0q209i2jgwv5z1xhi7frydkplby7jaiz624pjq6vi51wvlmimpf6"))))
> +    (build-system python-build-system)
> +    (arguments
> +     (list #:phases #~(modify-phases %standard-phases
> +                        (replace 'check
> +                          (lambda* (#:key tests? #:allow-other-keys)
> +                            (when tests?
> +                              ;; skip tests using external data

Well done!  Please use a complete sentence for stand-alone comments,
e.g. ";; Skip tests that require networking."

> +                              (invoke "pytest" "-vv" "-k"
> +                                      (string-append
> +                                       " not TestDataElement"
> +                                       " and not TestDatasetOverlayArray"
> +                                       " and not TestReader"
> +                                       " and not Test_JPEG_LS_Lossless_transfer_syntax"
> +                                       " and not test_data_manager.py"
> +                                       " and not test_encaps.py"
> +                                       " and not test_encoders_pydicom.py"
> +                                       " and not test_filewriter.py"
> +                                       " and not test_gdcm_pixel_data.py"
> +                                       " and not test_handler_util.py"
> +                                       " and not test_jpeg_ls_pixel_data.py"
> +                                       " and not test_numpy_pixel_data.py"
> +                                       " and not test_overlay_np.py"
> +                                       " and not test_pillow_pixel_data.py"
> +                                       " and not test_rle_pixel_data.py"))))))))

Suggestion: If you use pyproject-build-system, you can avoid overriding
the test phase, instead making use of the new #:test-flags argument, to
provide just the "-k" and patterns.

> +    (native-inputs (list python-pytest))
> +    (propagated-inputs (list python-numpy python-pillow))
> +    (home-page "https://github.com/pydicom/pydicom")
> +    (synopsis "Python library for reading and writing DICOM data")
> +    (description "@code{pydicom} is a Python library for reading and writing
> +DICOM medical image files.  It lets developers read, modify and write DICOM data
> +in a pythonic way.")

I'd avoid "developers", and plainly state: "It can read, modify [...]",
and drop "in a pythonic way" since that's more subjective than facts.

-- 
Thanks,
Maxim