Subject: Re: [bug#39572] [PATCH] gnu: Add python-sphinx-autodoc-typehints.

From: Efraim Flashner <[email-masked]>
Date: Wed, 12 Feb 2020 09:48:27 +0200

Overall the package looks good. I ran into an issue with the tests,
namely that they weren't run. (This is becoming a common issue with our
python packages as they change how the test suite is run)

On Tue, Feb 11, 2020 at 07:14:20PM -0500, sirgazil via Guix-patches via wrote:
> * gnu/packages/sphinx.scm (python-sphinx-autodoc-typehints): New variable.
> ---
>  gnu/packages/sphinx.scm | 25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
> 
> diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
> index 4e4abccb04..41bde173c3 100644
> --- a/gnu/packages/sphinx.scm
> +++ b/gnu/packages/sphinx.scm
> @@ -13,6 +13,7 @@
>  ;;; Copyright © 2019 Nicolas Goaziou <[email-masked]>
>  ;;; Copyright © 2019 Alexandros Theodotou <[email-masked]>
>  ;;; Copyright © 2019 Brett Gilio <[email-masked]>
> +;;; Copyright © 2020 sirgazil <[email-masked]>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -597,3 +598,27 @@ to be able to read and render the Doxygen xml output.")
>       "A utility tool that provides several features that make it easy to
>  translate and to apply translation to Sphinx generated document.")
>      (license license:bsd-2)))
> +
> +(define-public python-sphinx-autodoc-typehints
> +  (package
> +    (name "python-sphinx-autodoc-typehints")
> +    (version "1.10.3")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (pypi-uri "sphinx-autodoc-typehints" version))
> +       (sha256
> +        (base32
> +         "1w6zy3cyp24jsdi8dcynrinafw2a0k5vblqy9lncm6j7cw0iicx6"))))
> +    (build-system python-build-system)

I added the following snippet here to run the tests:

    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (replace 'check
           (lambda _
             (invoke "pytest"))))))

And added python-pytest to the native-inputs but it turns out that
wasn't enough:

starting phase `check'
ImportError while loading conftest '/tmp/guix-build-python-sphinx-autodoc-typehints-1.10.3.drv-0/sphinx-autodoc-typehints-1.10.3/tests/conftest.py'.
tests/conftest.py:8: in <module>
    from sphobjinv import Inventory
E   ModuleNotFoundError: No module named 'sphobjinv'
command "pytest" failed with status 4

According to here¹ there are a couple of other dependencies that are
needed to run the tests, including sphobjinv which isn't packaged yet.

> +    (native-inputs
> +     `(("python-setuptools-scm" ,python-setuptools-scm)))
> +    (propagated-inputs
> +     `(("python-sphinx" ,python-sphinx)))
> +    (home-page "https://github.com/agronholm/sphinx-autodoc-typehints")
> +    (synopsis "Type hints support for the Sphinx autodoc extension")
> +    (description
> +     "This extension allows you to use Python 3 annotations for
> +documenting acceptable argument types and return value types of
> +functions.")
> +    (license license:expat)))
> -- 
> 2.25.0
> 

¹ https://github.com/agronholm/sphinx-autodoc-typehints/blob/1.10.3/setup.cfg

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted