diff options
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r-- | gnu/packages/python-xyz.scm | 626 |
1 files changed, 253 insertions, 373 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index e296e3c6e1..219624c848 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -53,7 +53,7 @@ ;;; Copyright © 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org> -;;; Copyright © 2018, 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2018, 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Luther Thompson <lutheroto@gmail.com> ;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org> ;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl> @@ -338,12 +338,7 @@ implementation for the Telegram Bot API.") `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ - ;; Extend PYTHONPATH so the built package will be found. - (setenv "PYTHONPATH" - (string-append (getcwd) "/build/lib:" - (getenv "PYTHONPATH"))) - (invoke "pytest" "-p" "no:logging") - #t))))) + (invoke "pytest" "-p" "no:logging")))))) (home-page "https://github.com/borntyping/python-colorlog") (synopsis "Log formatting with colors for python") (description "The @code{colorlog.ColoredFormatter} is a formatter for use @@ -530,13 +525,8 @@ to CommonMark.") #t)) (replace 'check (lambda _ - ;; Extend PYTHONPATH so the built package will be found. - (setenv "PYTHONPATH" - (string-append (getcwd) "/build/lib:" - (getenv "PYTHONPATH"))) ;; Skip the only failing test "test_parse_url" - (invoke "pytest" "-vv" "-k" "not test_parse_url") - #t))))) + (invoke "pytest" "-vv" "-k" "not test_parse_url")))))) (home-page "https://github.com/sbraz/pymediainfo") (synopsis @@ -715,15 +705,16 @@ by @code{binstar}, @code{binstar-build}, and @code{chalmers}.") (version "2.9.0") (source (origin - (method url-fetch) - (uri (pypi-uri "Babel" version)) - (sha256 - (base32 - "018yg7g2pa6vjixx1nx41cfispgfi0azzp0a1chlycbj8jsil0ys")))) + (method url-fetch) + (uri (pypi-uri "Babel" version)) + (sha256 + (base32 + "018yg7g2pa6vjixx1nx41cfispgfi0azzp0a1chlycbj8jsil0ys")))) (build-system python-build-system) (native-inputs `(("python-freezegun" ,python-freezegun) - ("python-pytest" ,python-pytest))) + ("python-pytest" ,python-pytest) + ("tzdata" ,tzdata-for-tests))) (propagated-inputs `(("python-pytz" ,python-pytz))) (arguments @@ -731,7 +722,7 @@ by @code{binstar}, @code{binstar-build}, and @code{chalmers}.") (replace 'check (lambda _ (invoke "pytest" "-vv")))))) - (home-page "http://babel.pocoo.org/") + (home-page "https://babel.pocoo.org/") (synopsis "Tools for internationalizing Python applications") (description @@ -842,14 +833,6 @@ Expressions are constructed from parsed strings or directly in Python.") (modify-phases %standard-phases (replace 'check (lambda _ - ;; The 'runexamples' script sets PYTHONPATH to CWD, then goes - ;; on to import numpy. Somehow this works on their CI system. - ;; Let's just manage PYTHONPATH here instead. - (substitute* "runexamples.sh" - (("export PYTHONPATH=.*") "")) - (setenv "PYTHONPATH" - (string-append (getcwd) ":" - (getenv "PYTHONPATH"))) (invoke "./runexamples.sh") (invoke "nosetests" "-v")))))) (home-page "https://github.com/fhs/python-hdf4") @@ -1302,9 +1285,6 @@ language. It aims to be fast.") `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ - (format #t "current working dir ~s~%" (getcwd)) - (setenv "PYTHONPATH" - (string-append ".:" (getenv "PYTHONPATH"))) ;; We must run the test suite module directly, as it ;; fails to define the 'tempdir' variable in scope for ;; the tests otherwise @@ -1808,14 +1788,14 @@ from the Python interpreter, or as a small part of a larger application.") (define-public python-six (package (name "python-six") - (version "1.14.0") + (version "1.15.0") (source (origin (method url-fetch) (uri (pypi-uri "six" version)) (sha256 (base32 - "02lw67hprv57hyg3cfy02y3ixjk3nzwc0dx3c4ynlvkfwkfdnsr3")))) + "0n82108wxn5giff50hd9ykjhd3zl7cndabdasi6568yvbh1rqqrh")))) (build-system python-build-system) (arguments `(#:phases @@ -1953,16 +1933,18 @@ audio playback capability for Python 3 on OSX, Windows, and Linux.") (define-public python-simplejson (package (name "python-simplejson") - (version "3.17.0") + (version "3.17.2") (source (origin (method url-fetch) (uri (pypi-uri "simplejson" version)) (sha256 (base32 - "108yf3252fy4ndqab7h46raksxfhcn113bzy2yd8369vidrjnjrb")))) + "0hc8nqwdlll4a9cr1k9msn5kmb6kmbjirpgvhjh254nr4sgwgv3m")))) (build-system python-build-system) - (home-page "http://simplejson.readthedocs.org/en/latest/") + (native-inputs + `(("python-toml" ,python-toml))) + (home-page "https://simplejson.readthedocs.io/en/latest") (synopsis "Json library for Python") (description @@ -2472,14 +2454,14 @@ server.") (define-public python-py (package (name "python-py") - (version "1.8.1") + (version "1.10.0") (source (origin (method url-fetch) (uri (pypi-uri "py" version)) (sha256 (base32 - "1ajjazg3913n0sp3vjyva9c2qh5anx8ziryng935f89604a0h9sy")))) + "1lqvkqk3b440g9z82gqbzlzas84wrm6ir8kplzhzavmn2pd1pf11")))) (build-system python-build-system) (arguments ;; FIXME: "ImportError: 'test' module incorrectly imported from @@ -2496,18 +2478,6 @@ server.") code introspection, and logging.") (license license:expat))) -(define-public python-py-next - (package - (inherit python-py) - (version "1.9.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "py" version)) - (sha256 - (base32 - "0hpk0gzd4v1pcnq7zinwg5n219czi23qghcswykqskkbwly8i9lw")))))) - (define-public python2-py (package-with-python2 python-py)) @@ -2702,11 +2672,9 @@ interfaces.") "cross-libc" "libc")))) (substitute* "src/click/_unicodefun.py" (("'locale'") - (string-append "'" glibc "/bin/locale'")))) - #t)) + (string-append "'" glibc "/bin/locale'")))))) (replace 'check (lambda _ - (setenv "PYTHONPATH" (string-append "./src:" (getenv "PYTHONPATH"))) (invoke "python" "-m" "pytest")))))) (native-inputs `(("python-pytest" ,python-pytest))) @@ -2822,8 +2790,6 @@ compare, diff, and patch JSON and JSON-like structures in Python.") (modify-phases %standard-phases (replace 'check (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH"))) (invoke "trial" "jsonschema")))))) (native-inputs `(("python-setuptools_scm" ,python-setuptools-scm) @@ -2955,9 +2921,6 @@ somewhat intelligible.") '(#:phases (modify-phases %standard-phases (replace 'check (lambda _ - (setenv "PYTHONPATH" - (string-append "./build/lib:" - (getenv "PYTHONPATH"))) (invoke "pytest" "-vv")))))) (native-inputs `(("python-pytest" ,python-pytest))) @@ -3079,13 +3042,13 @@ JavaScript-like message boxes. Types of dialog boxes include: (package (name "python-pympler") (home-page "https://pythonhosted.org/Pympler/") - (version "0.8") + (version "0.9") (source (origin (method url-fetch) (uri (pypi-uri "Pympler" version)) (sha256 (base32 - "08mrpnb6cv2nvfncvr8a9a8bpwhnasa924anapnjvnaw5jcd4k7p")))) + "0ivfw2k86nbw9ck9swidl4422w7bhjldxwj90a4sy5r1cbgygjzj")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -3186,36 +3149,61 @@ e.g. filters, callbacks and errbacks can all be promises.") (define-public python-virtualenv (package (name "python-virtualenv") - (version "20.2.1") + (version "20.3.1") (source (origin (method url-fetch) (uri (pypi-uri "virtualenv" version)) (sha256 (base32 - "1rd6wmymsgv0cdsn50jwybcvbbslzym3mzffcjbl42l8br9cgap0")))) + "1nbhnpzswcf3lmzn5xabmfdd7ki8r2w2i37y6wml54di6qi1l48c")))) (build-system python-build-system) (native-inputs `(("python-mock" ,python-mock) ("python-pytest" ,python-pytest) - ;; NOTE: guix lint remarks that "python-setuptools should probably not - ;; be an input at all". However, removing the input makes the build error: - ;; File "setup.py", line 4, in <module> - ;; raise RuntimeError("setuptools >= 41 required to build") - ("python-setuptools" ,python-setuptools) ("python-setuptools-scm" ,python-setuptools-scm))) (propagated-inputs `(("python-appdirs" ,python-appdirs) ("python-distlib" ,python-distlib/next) ("python-filelock" ,python-filelock) - ("python-six" ,python-six) - ("python-importlib-metadata" ,python-importlib-metadata))) + ("python-six" ,python-six))) (home-page "https://virtualenv.pypa.io/") (synopsis "Virtual Python environment builder") (description "Virtualenv is a tool to create isolated Python environments.") (license license:expat))) +(define-public python2-virtualenv + (let ((base (package-with-python2 (strip-python2-variant python-virtualenv)))) + (package + (inherit base) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (add-after 'set-paths 'adjust-PYTHONPATH + (lambda* (#:key inputs #:allow-other-keys) + (let* ((python (assoc-ref inputs "python")) + (python-sitedir (string-append python "/lib/python2.7" + "/site-packages"))) + ;; XXX: 'python2' always comes first on PYTHONPATH + ;; and shadows the 'setuptools' input. Move python2 + ;; last: this should be fixed in python-build-system + ;; in a future rebuild cycle. + (setenv "PYTHONPATH" + (string-append (string-join (delete python-sitedir + (string-split + (getenv "PYTHONPATH") + #\:)) + ":") + ":" python-sitedir)) + (format #t "environment variable `PYTHONPATH' changed to `~a'~%" + (getenv "PYTHONPATH")) + #t)))))) + (propagated-inputs + `(("python-contextlib2" ,python2-contextlib2) + ,@(package-propagated-inputs base)))))) + (define-public python-markupsafe (package (name "python-markupsafe") @@ -3229,21 +3217,10 @@ e.g. filters, callbacks and errbacks can all be promises.") "0sqipg4fk7xbixqd8kq6rlkxj664d157bdwbh93farcphf92x1r9")))) (build-system python-build-system) (arguments - `(#:modules ((ice-9 ftw) - (srfi srfi-1) - (srfi srfi-26) - (guix build utils) - (guix build python-build-system)) - #:phases (modify-phases %standard-phases + `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ - (let ((cwd (getcwd)) - (libdir (find (cut string-prefix? "lib." <>) - (scandir "build")))) - (setenv "PYTHONPATH" - (string-append cwd "/build/" libdir ":" - (getenv "PYTHONPATH"))) - (invoke "pytest" "-vv"))))))) + (invoke "pytest" "-vv")))))) (native-inputs `(("python-pytest" ,python-pytest))) (home-page "https://github.com/mitsuhiko/markupsafe") @@ -3273,13 +3250,8 @@ for Python.") (replace 'check (lambda* (#:key tests? #:allow-other-keys) (if tests? - (begin - (setenv "PYTHONPATH" - (string-append "./build/lib:" - (getenv "PYTHONPATH"))) - (invoke "pytest" "-vv")) - (format #t "test suite not run~%")) - #t))))) + (invoke "pytest" "-vv") + (format #t "test suite not run~%"))))))) (native-inputs `(("python-pytest" ,python-pytest))) (propagated-inputs @@ -3706,17 +3678,14 @@ to deprecate classes, functions or methods.") (add-after 'unpack 'disable-failing-tests (lambda _ (substitute* "tests/Issue142.py" - (("testDecodeJson") "disabled_testDecodeJson")) - #t)) + (("testDecodeJson") + "disabled_testDecodeJson")))) (add-before 'check 'prepare-for-tests (lambda _ (for-each (lambda (f) (chmod f #o666)) (find-files "./tests")) - (system* "python" "-m" "lib2to3" "-w" "-n" "tests") - (setenv "PYTHONPATH" - (string-append "./tests:" (getenv "PYTHONPATH"))) - #t))))) + (system* "python" "-m" "lib2to3" "-w" "-n" "tests")))))) (propagated-inputs `(("python-deprecated" ,python-deprecated) ("python-pyjwt" ,python-pyjwt) @@ -4232,7 +4201,14 @@ matching of file paths.") (substitute* "tests/test_black.py" (("( *)def test_python38" match indent) (string-append indent "@unittest.skip(\"guix\")\n" match))) - #t))))) + #t)) + ;; Remove blackd, because it depends on python-aiohttp and + ;; python-aiohttp-cors. + (add-after 'unpack 'remove-entrypoint + (lambda _ + (substitute* "setup.py" + (("\\s*\"blackd=blackd:patched_main \\[d\\]\",\n") "") + (("\"blackd\", ") ""))))))) (propagated-inputs `(("python-click" ,python-click) ("python-attrs" ,python-attrs) @@ -4703,7 +4679,7 @@ color scales, and color space conversion easy. It has support for: ("pkg-config" ,pkg-config) ("python-sphinx" ,python-sphinx) ("python-numpydoc" ,python-numpydoc) - ("texlive" ,(texlive-union (list texlive-fonts-cm-super + ("texlive" ,(texlive-updmap.cfg (list texlive-fonts-cm-super texlive-fonts-ec texlive-generic-ifxetex texlive-generic-pdftex @@ -4769,7 +4745,7 @@ color scales, and color space conversion easy. It has support for: (sphinx-theme-checkout (assoc-ref inputs scipy-sphinx-theme)) (pyver ,(string-append "PYVER="))) - ;; FIXME: this is needed to for texlive-union to generate + ;; FIXME: this is needed to for texlive-updmap.cfg to generate ;; fonts, which are not found. (setenv "HOME" "/tmp") @@ -5235,7 +5211,7 @@ toolkits.") ("python-ipykernel" ,python-ipykernel) ("python-mock" ,python-mock) ("graphviz" ,graphviz) - ("texlive" ,(texlive-union (list texlive-amsfonts + ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts texlive-latex-amsmath texlive-latex-enumitem texlive-latex-expdlist @@ -5261,9 +5237,7 @@ toolkits.") (replace 'build (lambda _ (chdir "doc") - (setenv "PYTHONPATH" - (string-append (getenv "PYTHONPATH") - ":" (getcwd) "/../examples/units")) + (setenv "PYTHONPATH" "../examples/units") (substitute* "conf.py" ;; Don't use git. (("^SHA = check_output.*") @@ -5298,8 +5272,7 @@ toolkits.") "./matplotlib-figures") (invoke "makeinfo" "--no-split" "-o" "matplotlib.info" "matplotlib.texi")) - (install-file "build/texinfo/matplotlib.info" info)) - #t))))) + (install-file "build/texinfo/matplotlib.info" info))))))) (home-page (package-home-page python-matplotlib)) (synopsis "Documentation for the python-matplotlib package") (description (package-description python-matplotlib)) @@ -5508,24 +5481,12 @@ Python code against some of the style conventions in "07ikq2c72kd263hpldw55y0px2l3g34hjk66ml9lryh1jv287qmf")))) (build-system python-build-system) (arguments - '(#:modules ((ice-9 ftw) - (srfi srfi-1) - (srfi srfi-26) - (guix build utils) - (guix build python-build-system)) - #:phases (modify-phases %standard-phases + '(#:phases (modify-phases %standard-phases (replace 'check (lambda* (#:key tests? #:allow-other-keys) (if tests? - (begin - (let ((libdir (find (cut string-prefix? "lib." <>) - (scandir "build")))) - (setenv "PYTHONPATH" - (string-append "./build/" libdir ":" - (getenv "PYTHONPATH"))) - (invoke "pytest" "-vv"))) - (format #t "test suite not run~%")) - #t))))) + (invoke "pytest" "-vv") + (format #t "test suite not run~%"))))))) (native-inputs `(("python-pytest" ,python-pytest) ("python-pytest-cov" ,python-pytest-cov))) @@ -5604,14 +5565,14 @@ by pycodestyle.") (define-public python-distlib (package (name "python-distlib") - (version "0.3.0") + (version "0.3.1") (source (origin (method url-fetch) (uri (pypi-uri "distlib" version ".zip")) (sha256 (base32 - "08fyi2r246733vharl2yckw20rilci28r91mzrnnvcr638inw5if")))) + "1wdzv7fsjhrkhh1wfkarlhcwa8m00mgcpdsvknmf2qy8f9l13xpd")))) (build-system python-build-system) (arguments `(#:phases @@ -6268,13 +6229,13 @@ PNG, PostScript, PDF, and SVG file output.") (define-public python-decorator (package (name "python-decorator") - (version "4.3.0") + (version "4.4.2") (source (origin (method url-fetch) (uri (pypi-uri "decorator" version)) (sha256 - (base32 "0308djallnh00v112y5b7nadl657ysmkp6vc8xn51d6yzc9zm7n3")))) + (base32 "1rxzhk5zwiggk45hl53zydvy70lk654kg0nc1p54090p402jz9p3")))) (build-system python-build-system) (home-page "https://pypi.org/project/decorator/") (synopsis "Python module to simplify usage of decorators") @@ -6529,13 +6490,13 @@ child application and control it as if a human were typing commands.") (define-public python-setuptools-scm (package (name "python-setuptools-scm") - (version "3.4.3") + (version "5.0.1") (source (origin (method url-fetch) (uri (pypi-uri "setuptools_scm" version)) (sha256 (base32 - "083k93wi7mrmp1cn28hcbnr6sivbgls0y7zz2m5qzn1wg04a3f16")))) + "0ahlrxxkx2xhmxskx57gc96w3bdndflxx30304ihvm7ds136nny8")))) (build-system python-build-system) (home-page "https://github.com/pypa/setuptools_scm/") (synopsis "Manage Python package versions in SCM metadata") @@ -7030,7 +6991,8 @@ cluster down and deletes the throwaway profile.") (replace 'check (lambda _ (invoke "pytest" "-vv" "traitlets")))))) (propagated-inputs `(("python-ipython-genutils" ,python-ipython-genutils) - ("python-decorator" ,python-decorator))) + ("python-decorator" ,python-decorator) + ("python-six" ,python-six))) (native-inputs `(("python-pytest" ,python-pytest))) (properties `((python2-variant . ,(delay python2-traitlets)))) @@ -7438,10 +7400,10 @@ computing.") `(("python-sphinx" ,python-sphinx) ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme) ;; FIXME: It's possible that a smaller union would work just as well. - ("texlive" ,(texlive-union (list texlive-amsfonts + ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts texlive-fonts-ec texlive-generic-ifxetex - texlive-generic-pdftex + texlive-pdftex texlive-latex-capt-of texlive-latex-cmap texlive-latex-environ @@ -8192,8 +8154,6 @@ Python 2 and Python 3.") (modify-phases %standard-phases (replace 'check (lambda _ - (setenv "PYTHONPATH" (string-append "./build/lib:" - (getenv "PYTHONPATH"))) (invoke "py.test" "-v")))))) (native-inputs `(("python2-pytest" ,python2-pytest))) @@ -8349,10 +8309,10 @@ PEP 8.") (uri (pypi-uri "pyflakes" version)) (sha256 (base32 - "1j3zqbiwkyicvww499bblq33x0bjpzdrxajhaysr7sk7x5gdgcim")))) + "1j3zqbiwkyicvww499bblq33x0bjpzdrxajhaysr7sk7x5gdgcim")) + (patches (search-patches "python-pyflakes-fix-tests.patch")))) (build-system python-build-system) - (home-page - "https://github.com/pyflakes/pyflakes") + (home-page "https://github.com/PyCQA/pyflakes") (synopsis "Passive checker of Python programs") (description "Pyflakes statically checks Python source code for common errors.") @@ -8366,21 +8326,21 @@ PEP 8.") (name "python-mccabe") (version "0.6.1") (source - (origin - (method url-fetch) - (uri (pypi-uri "mccabe" version)) - (sha256 - (base32 - "07w3p1qm44hgxf3vvwz84kswpsx6s7kvaibzrsx5dzm0hli1i3fx")))) + (origin + (method url-fetch) + (uri (pypi-uri "mccabe" version)) + (sha256 + (base32 + "07w3p1qm44hgxf3vvwz84kswpsx6s7kvaibzrsx5dzm0hli1i3fx")))) (build-system python-build-system) (native-inputs - `(("python-pytest" ,python-pytest-bootstrap) - ("python-pytest-runner" ,python-pytest-runner))) - (home-page "https://github.com/flintwork/mccabe") + `(("python-toml", python-toml) + ("python-pytest" ,python-pytest-bootstrap) + ("python-pytest-runner" ,python-pytest-runner))) + (home-page "https://github.com/PyCQA/mccabe") (synopsis "McCabe checker, plugin for flake8") - (description - "This package provides a Flake8 plug-in to compute the McCabe cyclomatic -complexity of Python source code.") + (description "This package provides a Flake8 plug-in to compute the McCabe +cyclomatic complexity of Python source code.") (license license:expat))) (define-public python2-mccabe @@ -8515,10 +8475,6 @@ unnecessary plus operators for explicit string literal concatenation.") (substitute* "setup.cfg" (("\\[pytest\\]") "[tool:pytest]")) - - (setenv "PYTHONPATH" - (string-append (getcwd) "/build/lib:" - (getenv "PYTHONPATH"))) (invoke "py.test" "-v")))))) (native-inputs `(("python-flake8" ,python-flake8) @@ -8561,14 +8517,14 @@ files.") (define-public python-flake8-pyi (package (name "python-flake8-pyi") - (version "20.5.0") + (version "20.10.0") (source (origin (method url-fetch) (uri (pypi-uri "flake8-pyi" version)) (sha256 (base32 - "1zpq4s9kp8w95pccmhhyyx1ff2zhnidcf1zb3xs46lzcx9plvnzk")))) + "0b27n2pmrxcc7nva4wp2i7mrag0fnq0firvhg1ljq593a45b5qyf")))) (build-system python-build-system) (propagated-inputs `(("python-attrs" ,python-attrs) @@ -8975,14 +8931,7 @@ third-party code.") (modify-phases %standard-phases (replace 'check (lambda _ - (let ((cwd (getcwd))) - (setenv "PYTHONPATH" - (string-append cwd "/build/" - (find (cut string-prefix? "lib" <>) - (scandir (string-append cwd "/build"))) - ":" - (getenv "PYTHONPATH"))) - (invoke "pytest" "-v" "test"))))))) + (invoke "pytest" "-v" "test")))))) (native-inputs `(("python-pytest" ,python-pytest))) (synopsis "MessagePack (de)serializer") @@ -9605,6 +9554,7 @@ is binding LibSass.") (build-system python-build-system) (arguments `(#:tests? #f)) ;circular dependency with python-aiohttp + (propagated-inputs `(("python-idna" ,python-idna))) (home-page "https://github.com/aio-libs/idna-ssl") (synopsis "Patch @code{ssl.match_hostname} for Unicode(idna) domains support") (description "Patch @code{ssl.match_hostname} for Unicode(idna) @@ -10678,14 +10628,15 @@ tables.") (define-public python-atomicwrites (package (name "python-atomicwrites") - (version "1.3.0") + (version "1.4.0") (source (origin (method url-fetch) (uri (pypi-uri "atomicwrites" version)) (sha256 (base32 - "19ngcscdf3jsqmpcxn6zl5b6anmsajb6izp1smcd1n02midl9abm")))) + "0yla2svfhfqrcj8qbyqzx7wi4jy0dwcxvlkg0k3zjd54s5m3jw5f")))) (build-system python-build-system) + (arguments `(#:tests? #f)) ;avoid circular dependency with pytest (synopsis "Atomic file writes in Python") (description "Library for atomic file writes using platform dependent tools for atomic file system operations.") @@ -11146,8 +11097,6 @@ text.") #t)) (replace 'check (lambda _ - (setenv "PYTHONPATH" (string-append "./build/lib:" - (getenv "PYTHONPATH"))) (invoke "pytest" "-vv" "-m" "not network" ;; These tests require Docker. "-k" "not test_terminate_job \ @@ -12559,12 +12508,6 @@ module in Python 3.5 and later.") (modify-phases %standard-phases (replace 'check (lambda _ - ;; Upstream runs tests after installation and the package itself - ;; resides in a subdirectory. Extend PYTHONPATH so it will be - ;; found. - (setenv "PYTHONPATH" - (string-append (getcwd) "/build/lib:" - (getenv "PYTHONPATH"))) (invoke "py.test" "-vv" "tests" "README.rst")))))) (native-inputs `(("python-pytest" ,python-pytest) @@ -12733,13 +12676,6 @@ graphviz.") #t))) (replace 'check (lambda _ - ;; Make sure the build directory is on PYTHONPATH. - (setenv "PYTHONPATH" - (string-append - (getenv "PYTHONPATH") ":" - (getcwd) "/build/" - (car (scandir "build" (cut string-prefix? "lib." <>))))) - ;; Use the build daemons configured number of workers. (setenv "NWORKERS" (number->string (parallel-job-count))) @@ -12800,7 +12736,14 @@ format.") "17d3hnxv9qndagzz63mdpyk99xj63p9gq586vjn0rxk8cl197nym")))) (build-system python-build-system) (arguments - '(#:tests? #f)) ; FIXME: some tests fail + '(#:tests? #f ; FIXME: some tests fail + #:phases + (modify-phases %standard-phases + ;; Remove scripts, because they depend on [conch] + (add-after 'unpack 'remove-entrypoint + (lambda _ + (substitute* "src/twisted/python/_setup.py" + (("\".+ = twisted\\.conch\\.scripts\\..+\",") ""))))))) (propagated-inputs `(("python-zope-interface" ,python-zope-interface) ("python-pyhamcrest" ,python-pyhamcrest) @@ -13344,17 +13287,15 @@ some degree most natural languages too.") (delete-file "libcst/tests/test_pyre_integration.py") (delete-file "libcst/codemod/tests/test_codemod_cli.py") (delete-file "libcst/metadata/tests/test_full_repo_manager.py") - (delete-file "libcst/metadata/tests/test_type_inference_provider.py") - #t)) + (delete-file "libcst/metadata/tests/test_type_inference_provider.py"))) (add-before 'check 'generate-test-data (lambda _ - (setenv "PYTHONPATH" (string-append (getcwd) ":" (getenv "PYTHONPATH"))) (invoke "python" "-m" "libcst.codegen.generate" "visitors") (invoke "python" "-m" "libcst.codegen.generate" "return_types"))) (replace 'check - (lambda _ - (invoke "python" "-m" "unittest") - #t))))) + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "python" "-m" "unittest"))))))) (native-inputs `(("python-black" ,python-black) ("python-isort" ,python-isort))) @@ -13379,6 +13320,14 @@ feels like an AST.") ;; libcst/_add_slots.py license:asl2.0)))) +(define-public python-libcst-minimal + (hidden-package + (package + (inherit python-libcst) + (name "python-libcst-minimal") + (arguments '(#:tests? #f)) + (native-inputs '())))) + (define-public python-typing-inspect (package (name "python-typing-inspect") @@ -13388,7 +13337,8 @@ feels like an AST.") (uri (pypi-uri "typing_inspect" version)) (sha256 (base32 - "1dzs9a1pr23dhbvmnvms2jv7l7jk26023g5ysf0zvnq8b791s6wg")))) + "1dzs9a1pr23dhbvmnvms2jv7l7jk26023g5ysf0zvnq8b791s6wg")) + (patches (search-patches "python-typing-inspect-fix.patch")))) (build-system python-build-system) (propagated-inputs `(("python-mypy-extensions" ,python-mypy-extensions) @@ -13637,7 +13587,8 @@ YAML-serialized data.") (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest) - ("python-nose" ,python-nose))) + ("python-nose" ,python-nose) + ("python-toml" ,python-toml))) (propagated-inputs `(("python-simplejson" ,python-simplejson))) (home-page "https://github.com/sdispater/backpack") @@ -13954,14 +13905,9 @@ binary or text.") (arguments `(#:phases (modify-phases %standard-phases - (add-before 'check 'set-pythonpath + (add-before 'check 'set-home (lambda _ - (setenv "PYTHONPATH" - (string-append - (getcwd) "/src/" - ":" (getenv "PYTHONPATH"))) - (setenv "HOME" "") - #t))))) + (setenv "HOME" "")))))) (native-inputs `(("python-coverage" ,python-coverage) ("python-nose" ,python-nose))) @@ -14088,8 +14034,6 @@ discovery, monitoring and configuration.") (modify-phases %standard-phases (replace 'check (lambda _ - (setenv "PYTHONPATH" (string-append "./build/lib:" - (getenv "PYTHONPATH"))) (invoke "pytest" "-vv")))))) (build-system python-build-system) (native-inputs @@ -14120,27 +14064,14 @@ Python to manipulate OpenDocument 1.2 files.") "1ksqfai72dbcfbwx43pxl658j59mx2rvqypjy1fk0ax2qd6lccx6")))) (build-system python-build-system) (arguments - `(#:modules ((guix build utils) - (guix build python-build-system) - (srfi srfi-1) - (srfi srfi-26) - (ice-9 ftw)) - #:phases + `(#:phases (modify-phases %standard-phases (add-before 'check 'set-cachedir ;; Tests require write access to $HOME by default (lambda _ (setenv "PYTHON_EGG_CACHE" "/tmp") #t)) (replace 'check (lambda _ - (let ((cwd (getcwd))) - (setenv "PYTHONPATH" - (string-append - cwd "/build/" - (find (cut string-prefix? "lib" <>) - (scandir (string-append cwd "/build"))) - ":" - (getenv "PYTHONPATH"))) - (invoke "pytest" "-v"))))))) + (invoke "pytest" "-v")))))) (native-inputs `(("python-hypothesis" ,python-hypothesis) ("python-pytest-cov" ,python-pytest-cov) @@ -14476,10 +14407,6 @@ is used by PostgreSQL and the OpenSSH Server for example.") (delete-file "tests/__init__.py"))) (replace 'check (lambda _ - ;; Extend PYTHONPATH so the built package will be found. - (setenv "PYTHONPATH" - (string-append (getcwd) "/build/lib:" - (getenv "PYTHONPATH"))) (invoke "py.test" "-vv" )))))) (native-inputs `(("python-pytest" ,python-pytest))) @@ -14508,16 +14435,6 @@ useful as a validator for JSON data.") (base32 "090vdksbz341f7ljvr0zswblw4lspa8qaiikzyjkf318arpxmil9")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'check 'set-pythonpath - (lambda _ - (setenv "PYTHONPATH" - (string-append - (getcwd) "/test/" - ":" (getenv "PYTHONPATH"))) - #t))))) (home-page "https://github.com/eliben/pyelftools") (synopsis @@ -14770,43 +14687,25 @@ possible on all supported Python versions.") "0ar5dqjnqaw0c17mymd6xgd81jn9br9fblawr0x438v1571bkaya")))) (build-system python-build-system) (arguments - `(#:modules ((guix build utils) - (guix build python-build-system) - (ice-9 ftw) - (srfi srfi-1) - (srfi srfi-26)) - #:phases (modify-phases %standard-phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'use-absolute-python (lambda _ (substitute* "Cheetah/CheetahWrapper.py" (("#!/usr/bin/env python") - (string-append "#!" (which "python")))) - #t)) + (string-append "#!" (which "python")))))) (add-after 'unpack 'fix-tests (lambda _ (substitute* "Cheetah/Tests/ImportHooks.py" (("os.path.dirname\\(__file__\\)") - (string-append "'" (getcwd) "/Cheetah/Tests'"))) - #t)) + (string-append "'" (getcwd) "/Cheetah/Tests'"))))) (replace 'check (lambda _ - (let ((cwd (getcwd))) - (setenv "PYTHONPATH" - (string-append - cwd "/build/" - (find (cut string-prefix? "lib" <>) - (scandir (string-append cwd "/build"))) - ":" (getenv "PYTHONPATH"))) - (setenv "PATH" - (string-append (getenv "PATH") - ":" cwd "/bin")) - (setenv "TMPDIR" "/tmp") - - (substitute* "Cheetah/Tests/Test.py" - (("unittest.TextTestRunner\\(\\)") - "unittest.TextTestRunner(verbosity=2)")) - - (invoke "python" "Cheetah/Tests/Test.py"))))))) + (setenv "TMPDIR" "/tmp") + (substitute* "Cheetah/Tests/Test.py" + (("unittest.TextTestRunner\\(\\)") + "unittest.TextTestRunner(verbosity=2)")) + + (invoke "python" "Cheetah/Tests/Test.py")))))) (propagated-inputs `(("python-markdown" ,python-markdown))) ;optional (home-page "https://cheetahtemplate.org/") @@ -14905,9 +14804,6 @@ protocols written in pure Python.") (modify-phases %standard-phases (replace 'check (lambda _ - (setenv "PYTHONPATH" - (string-append (getcwd) "/build/lib:" - (getenv "PYTHONPATH"))) (invoke "python" "test/test_pbkdf2.py")))))) (propagated-inputs `(("python-pycrypto" ,python-pycrypto))) ; optional @@ -15207,7 +15103,15 @@ instead of servers and network commands.") ;; python-twisted depends on python-automat. Twisted is optional, but the ;; tests fail if it is not available. Also see ;; <https://github.com/glyph/automat/issues/71>. - (arguments '(#:tests? #f)) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + ;; Remove script, because it depends on python-twisted. + (add-after 'unpack 'remove-entrypoint + (lambda _ + (substitute* "setup.py" + (("\"automat-visualize = automat._visualize:tool\"") ""))))))) (native-inputs `(("python-m2r" ,python-m2r) ("python-setuptools-scm" ,python-setuptools-scm) @@ -15275,32 +15179,19 @@ and bit flag values.") (define-public python-attrs (package (name "python-attrs") - (version "19.3.0") + (version "20.3.0") (source (origin (method url-fetch) (uri (pypi-uri "attrs" version)) (sha256 (base32 - "0wky4h28n7xnr6xv69p9z6kv8bzn50d10c3drmd9ds8gawbcxdzp")))) + "007pchhxk2nh6m2rgflkkij9xjwysq3fl7xr72cy8i4pw76s6al3")))) (build-system python-build-system) (arguments - `(#:modules ((guix build utils) - (guix build python-build-system) - (ice-9 ftw) - (srfi srfi-1) - (srfi srfi-26)) - #:phases (modify-phases %standard-phases + `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ - (let ((cwd (getcwd))) - (setenv "PYTHONPATH" - (string-append - cwd "/build/" - (find (cut string-prefix? "lib" <>) - (scandir (string-append cwd "/build"))) - ":" - (getenv "PYTHONPATH"))) - (invoke "python" "-m" "pytest"))))))) + (invoke "pytest")))))) (native-inputs `(("python-coverage" ,python-coverage) ("python-hypothesis" ,python-hypothesis) @@ -15578,38 +15469,83 @@ version, is suitable to be include as a dependency in other projects.") (define-public python-isort (package (name "python-isort") - (version "4.3.4") + (version "5.7.0") (source (origin (method git-fetch) (uri (git-reference - ;; Tests pass only from the Github sources - (url "https://github.com/timothycrosley/isort") - (commit version))) + ;; Tests pass only from the Github sources + (url "https://github.com/timothycrosley/isort") + (commit version))) (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet '(for-each delete-file (find-files "." "\\.whl$"))) (sha256 (base32 - "1q0mlrpki5vjbgwxag5rghljjcfg7mvb0pbkwid80p0sqrxlm2p6")))) + "0phq4s911mjjdyr5h5siz93jnpkqb2qgphgcfk6axncgxr8i7vi1")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; A foretaste of what our future python-build-system will need to + ;; do. + (replace 'build + (lambda _ + (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (whl (car (find-files "dist" "\\.whl$")))) + (invoke "pip" "--no-cache-dir" "--no-input" + "install" "--no-deps" "--prefix" out whl)))) + (add-after 'install 'install-example-plugins + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; Patch to use the core poetry API. + (substitute* '("example_isort_formatting_plugin/pyproject.toml" + "example_shared_isort_profile/pyproject.toml") + (("poetry>=0.12") + "poetry-core>=1.0.0") + (("poetry.masonry.api") + "poetry.core.masonry.api")) + ;; Build the example plugins. + (for-each (lambda (source-directory) + (invoke "python" "-m" "build" "--wheel" + "--no-isolation" "--outdir=dist" + source-directory)) + '("example_isort_formatting_plugin" + "example_shared_isort_profile")) + ;; Install them to temporary storage, for the test. + (setenv "HOME" (getcwd)) + (let ((example-whls (find-files "dist" "^example.*\\.whl$"))) + (apply invoke "pip" "--no-cache-dir" "--no-input" + "install" "--user" "--no-deps" example-whls))))) + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (setenv "PATH" (string-append (getenv "PATH") ":" bin))) + (add-installed-pythonpath inputs outputs) + (invoke "pytest" "-vv" "tests/unit/" + "--ignore=tests/unit/test_deprecated_finders.py"))))))) (native-inputs - `(("python-mock" ,python-mock) + `(("git" ,git-minimal) + ("python-black" ,python-black) + ("python-colorama" ,python-colorama) + ("python-hypothesmith" ,python-hypothesmith) + ("python-libcst" ,python-libcst-minimal) + ("python-poetry-core" ,python-poetry-core) + ("python-pylama" ,python-pylama) + ("python-pypa-build" ,python-pypa-build) + ("python-pytest-mock" ,python-pytest-mock) ("python-pytest" ,python-pytest))) - (home-page "https://github.com/timothycrosley/isort") + (home-page "https://github.com/PyCQA/isort") (synopsis "Python utility/library to sort python imports") (description "@code{python-isort} is a python utility/library to sort imports alphabetically, and automatically separated into sections. It provides a command line utility, a python library and plugins for various editors.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-isort)))))) - -(define-public python2-isort - (let ((base (package-with-python2 - (strip-python2-variant python-isort)))) - (package (inherit base) - (native-inputs - `(("python2-futures" ,python2-futures) - ,@(package-native-inputs base)))))) + (license license:expat))) (define-public python2-backports-functools-lru-cache (package @@ -16002,9 +15938,6 @@ of corner cases, factory_boy allows you to use objects customized for the current test, while only declaring the test-specific fields") (license license:expat))) -(define-public python2-factory-boy - (package-with-python2 python-factory-boy)) - (define-public python-translate-toolkit (package (name "python-translate-toolkit") @@ -16094,10 +16027,17 @@ information.") (package/inherit python-packaging (name "python-packaging-bootstrap") + (arguments + (substitute-keyword-arguments (package-arguments python-packaging) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'fix-dependencies + (lambda* (#:key tests? #:allow-other-keys) + (substitute* "setup.py" (("\"six\"") "")))))) + ((#:tests? _ #f) #f))) (native-inputs '()) (propagated-inputs - `(("python-pyparsing" ,python-pyparsing))) - (arguments '(#:tests? #f))))) + `(("python-pyparsing" ,python-pyparsing)))))) (define-public python2-packaging-bootstrap (hidden-package @@ -16106,7 +16046,8 @@ information.") (name "python2-packaging-bootstrap") (native-inputs '()) (propagated-inputs - `(("python-pyparsing" ,python2-pyparsing))) + `(("python-pyparsing" ,python2-pyparsing) + ("python-six" ,python2-six-bootstrap))) (arguments `(#:tests? #f ,@(package-arguments python2-packaging)))))) @@ -16386,23 +16327,11 @@ applying JSON Patches according to RFC 6902.") "17dvx15m3r49bmif5zlli8kzjd6bys6psixzbp14sd5367d9h8qi")))) (build-system python-build-system) (arguments - `(#:modules ((guix build utils) - (guix build python-build-system) - (ice-9 ftw) - (srfi srfi-1) - (srfi srfi-26)) - #:phases + `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ - (let ((cwd (getcwd))) - (setenv "PYTHONPATH" - (string-append cwd "/build/" - (find (cut string-prefix? "lib" <>) - (scandir (string-append cwd "/build"))) - ":" - (getenv "PYTHONPATH"))) - (invoke "pytest" "-v"))))))) + (invoke "pytest" "-v")))))) (native-inputs `(("python-pytest" ,python-pytest))) (home-page "https://rfc3986.readthedocs.io/") @@ -16725,19 +16654,13 @@ complex datatypes to and from native Python datatypes.") (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'disable-prance-tests - (lambda _ - ;; Disable validation tests since they require the - ;; optional 'prance' library which is not yet in Guix. - (substitute* "tests/test_ext_marshmallow_openapi.py" - (("def test_openapi_tools_validate.*" all) - (string-append "@pytest.mark.xfail\n" all))))) (replace 'check (lambda _ - (setenv "PYTHONPATH" - (string-append "./build/lib:" - (getenv "PYTHONPATH"))) - (invoke "pytest" "-vv")))))) + (invoke "pytest" "-vv" + ;; Disable validation tests since they require + ;; the optional 'prance' library which is not + ;; yet in Guix. + "-k" "not openapi_tools_validate")))))) (propagated-inputs `(("python-pyyaml" ,python-pyyaml))) (native-inputs @@ -16772,9 +16695,6 @@ as Swagger.") (substitute* "Makefile" (("flake8 flasgger --ignore=F403") "flake8 flasgger --ignore=E731,F403")) - (setenv "PYTHONPATH" (string-append (getcwd) - ":" - (getenv "PYTHONPATH"))) (invoke "py.test")))))) (propagated-inputs `(("python-flask" ,python-flask) @@ -17297,7 +17217,8 @@ lines are read from a single file.") (native-inputs `(("python-pbr" ,python-pbr-minimal))) (propagated-inputs - `(("python-linecache2" ,python-linecache2))) + `(("python-linecache2" ,python-linecache2) + ("python-six" ,python-six))) (home-page "https://github.com/testing-cabal/traceback2") (synopsis "Backports of the traceback module") @@ -17832,17 +17753,7 @@ user's @file{~/Trash} directory.") (license license:bsd-3))) (define-public python2-send2trash - (package - (inherit (package-with-python2 (strip-python2-variant python-send2trash))) - (arguments - (substitute-keyword-arguments (package-arguments python-send2trash) - ((#:phases phases) - `(modify-phases ,phases - (add-before 'check 'setenv - (lambda _ - (setenv "PYTHONPATH" - (string-append (getcwd) ":" (getenv "PYTHONPATH"))) - #t)))))))) + (package-with-python2 (strip-python2-variant python-send2trash))) (define-public python-pyfavicon (package @@ -18193,7 +18104,7 @@ source bytes using the UTF-8 encoding and then rewrites Python 3.6 style (define-public python-typed-ast (package (name "python-typed-ast") - (version "1.4.0") + (version "1.4.2") (source (origin (method git-fetch) @@ -18201,28 +18112,15 @@ source bytes using the UTF-8 encoding and then rewrites Python 3.6 style (url "https://github.com/python/typed_ast") (commit version))) (sha256 - (base32 "0l0hz809f7i356kmqkvfsaswiidb98j9hs9rrjnfawzqcbffzgyb")) + (base32 "1wr6pkvvrq6rzjjw88pd5xy8fy06msam4hlxbkglvdmwh4c083l0")) (file-name (git-file-name name version)))) (build-system python-build-system) (arguments - `(#:modules ((guix build utils) - (guix build python-build-system) - (ice-9 ftw) - (srfi srfi-1) - (srfi srfi-26)) - #:phases + `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ - (let ((cwd (getcwd))) - (setenv "PYTHONPATH" - (string-append cwd "/build/" - (find (cut string-prefix? "lib" <>) - (scandir (string-append cwd "/build"))) - ":" - (getenv "PYTHONPATH")))) - (invoke "pytest") - #t))))) + (invoke "pytest")))))) (native-inputs `(("python-pytest" ,python-pytest))) (home-page "https://github.com/python/typed_ast") (synopsis "Fork of Python @code{ast} modules with type comment support") @@ -18928,8 +18826,7 @@ user-space file systems in Python.") (("pytest < 5") "pytest < 7")) ;; We don't care about a coverage report. (substitute* "test/requirements.txt" - (("coverage.*") "coverage\n")) - #t)) + (("coverage.*") "coverage\n")))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? @@ -18937,11 +18834,7 @@ user-space file systems in Python.") (delete-file "test/test_js_client.py") (delete-file "test/test_tsd_types.py") (delete-file "test/test_python_gen.py") - (setenv "PYTHONPATH" - (string-append (getcwd) ":" - (getenv "PYTHONPATH"))) - (invoke "pytest")) - #t))))) + (invoke "pytest"))))))) (propagated-inputs `(("python-ply" ,python-ply) ("python-six" ,python-six))) @@ -19626,20 +19519,11 @@ pure-Python.") (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'check 'do-not-override-PYTHONPATH - (lambda _ - ;; Append to PYTHONPATH instead of overriding it so - ;; that dependencies from Guix can be found. - (substitute* "tests/testutils.py" - (("env\\['PYTHONPATH'\\] = pythonpath") - "env['PYTHONPATH'] += os.pathsep + pythonpath")) - #t)) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (if tests? (invoke "pytest" "-s" "-vv") - (format #t "test suite not run~%")) - #t))))) + (format #t "test suite not run~%"))))))) (native-inputs `(;; For tests. ("python-psutil" ,python-psutil) @@ -21056,8 +20940,6 @@ essential tools are located.") (modify-phases %standard-phases (replace 'check (lambda _ - (setenv "PYTHONPATH" - (string-append (getcwd) ":" (getenv "PYTHONPATH"))) (invoke "python" "./tests/__main__.py")))))) (propagated-inputs `(("python-dill" ,python-dill) @@ -23069,7 +22951,7 @@ By default it uses the open Python vulnerability database Safety DB.") (propagated-inputs `(("wheel" ,python-wheel))) (native-inputs - `(("texlive" ,(texlive-union (list texlive-amsfonts + `(("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts texlive-fonts-ec texlive-latex-hyperref texlive-latex-oberdiek @@ -23084,8 +22966,6 @@ By default it uses the open Python vulnerability database Safety DB.") (substitute* "tests.py" (("test_basic_conversion_from_http_url") "skip_test_basic_conversion_from_http_url")) - ;; Needed by texlive-union to generate fonts - (setenv "HOME" "/tmp") #t))))) (home-page "https://github.com/bebraw/pypandoc") (synopsis "Python wrapper for pandoc") |