Merge branch 'master' into core-updates

This commit is contained in:
Ludovic Courtès 2019-09-17 16:17:20 +02:00
commit 9ff87bb996
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
124 changed files with 4791 additions and 1551 deletions

View file

@ -3004,38 +3004,44 @@ Language (TOML) configuration files.")
Server (PLS).")
(license license:expat)))
;; XXX: We must use a non-release version since the latest release version
;; requires python-jedi version < 0.15.
(define-public python-language-server
(package
(name "python-language-server")
(version "0.26.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-language-server" version))
(sha256
(base32
"1vs9ckfmm534n1hq3m871916wsjvi5h4gyj6wlzg13ck6506lx0s"))))
(build-system python-build-system)
(propagated-inputs
`(("python-pluggy" ,python-pluggy)
("python-jsonrpc-server" ,python-jsonrpc-server)
("python-jedi" ,python-jedi)
("python-yapf" ,python-yapf)
("python-pyflakes" ,python-pyflakes)
("python-pydocstyle" ,python-pydocstyle)
("python-pycodestyle" ,python-pycodestyle)
("python-mccabe" ,python-mccabe)
("python-rope" ,python-rope)
("python-autopep8" ,python-autopep8)
("python-pylint" ,python-pylint)))
(home-page "https://github.com/palantir/python-language-server")
(synopsis "Python implementation of the Language Server Protocol")
(description
"The Python Language Server (pyls) is an implementation of the Python 3
(let ((commit "c3cab77a85b1de4af1aec1bafea6a7320d6baec5")
(revision "1"))
(package
(name "python-language-server")
(version (git-version "0.28.3" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/palantir/python-language-server.git")
(commit commit)))
(sha256
(base32
"1q0xdwgln09sh58j0ryygj92hfgdhwcs57zjvqihya23jr5v0bz4"))))
(build-system python-build-system)
(propagated-inputs
`(("python-pluggy" ,python-pluggy)
("python-jsonrpc-server" ,python-jsonrpc-server)
("python-jedi" ,python-jedi)
("python-yapf" ,python-yapf)
("python-pyflakes" ,python-pyflakes)
("python-pydocstyle" ,python-pydocstyle)
("python-pycodestyle" ,python-pycodestyle)
("python-mccabe" ,python-mccabe)
("python-rope" ,python-rope)
("python-autopep8" ,python-autopep8)
("python-pylint" ,python-pylint)))
(home-page "https://github.com/palantir/python-language-server")
(synopsis "Python implementation of the Language Server Protocol")
(description
"The Python Language Server (pyls) is an implementation of the Python 3
language specification for the Language Server Protocol (LSP). This tool is
used in text editing environments to provide a complete and integrated
feature-set for programming Python effectively.")
(license license:expat)))
(license license:expat))))
(define-public python-black
(package
@ -3848,14 +3854,14 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
(define-public python-matplotlib
(package
(name "python-matplotlib")
(version "2.2.3")
(version "3.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "matplotlib" version))
(sha256
(base32
"1rcc7x9ig3hpchkc4cwdvym3y451w74275fxr455zkfagrsvymbk"))))
"14qc109dibp32xfd9lah54djc0rc76fhbsj9cwyb328lzqmd5sqz"))))
(build-system python-build-system)
(propagated-inputs ; the following packages are all needed at run time
`(("python-cycler" ,python-cycler)
@ -3872,7 +3878,7 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of
;; 'pycairo'. However, 'pygobject' makes use of a 'pycairo' 'context'
;; object. For this reason we need to import both libraries.
;; https://pythonhosted.org/cairocffi/cffi_api.html#converting-pycairo
;; https://cairocffi.readthedocs.io/en/stable/cffi_api.html#converting-pycairo-wrappers-to-cairocffi
("python-pycairo" ,python-pycairo)
("python-cairocffi" ,python-cairocffi)))
(inputs
@ -3887,11 +3893,59 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
("tk" ,tk)))
(native-inputs
`(("pkg-config" ,pkg-config)
("python-nose" ,python-nose)
("python-mock" ,python-mock)))
("python-pytest" ,python-pytest)
("python-mock" ,python-mock)
("unzip" ,unzip)
("jquery-ui"
,(origin
(method url-fetch)
(uri "https://jqueryui.com/resources/download/jquery-ui-1.12.1.zip")
(sha256
(base32
"0kb21xf38diqgxcdi1z3s9ssq36pldvyqxy56hn6pcva6rs3c8zq"))))))
(arguments
`(#:phases
(modify-phases %standard-phases
;; XXX We disable all image comparison tests because we're using a
;; newer version of FreeType than matplotlib expects. This leads to
;; minor differences throughout the tests.
(add-after 'unpack 'fix-and-disable-failing-tests
(lambda _
(substitute* (append (find-files "lib/matplotlib/tests/"
"test_.*\\.py$")
(find-files "lib/mpl_toolkits/tests"
"test_.*\\.py$"))
(("^from matplotlib" match)
(string-append "import pytest\n" match))
(("( *)@image_comparison" match indent)
(string-append indent
"@pytest.mark.skip(reason=\"unknown minor image differences\")\n"
match)))
(substitute* "lib/matplotlib/tests/test_animation.py"
(("/bin/sh") (which "sh")))
(for-each delete-file
;; test_normal_axes, test_get_tightbbox_polar
'("lib/matplotlib/tests/test_axes.py"
;; test_outward_ticks
"lib/matplotlib/tests/test_tightlayout.py"
;; Fontconfig returns no fonts.
"lib/matplotlib/tests/test_font_manager.py"))
#t))
(add-before 'install 'install-jquery-ui
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((dir (string-append (assoc-ref outputs "out")
"/lib/python3.7/site-packages/matplotlib/backends/web_backend/")))
(mkdir-p dir)
(invoke "unzip"
(assoc-ref inputs "jquery-ui")
"-d" dir))
#t))
(delete 'check)
(add-after 'install 'check
(lambda* (#:key outputs inputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs)
(invoke "python" "tests.py" "-v"
"-m" "not network")))
(add-before 'build 'configure-environment
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((cairo (assoc-ref inputs "cairo")))
@ -3903,8 +3957,8 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
(lambda (port)
(format port "[directories]~%
basedirlist = ~a,~a~%
[rc_options]~%
backend = TkAgg~%"
[packages]~%
tests = True~%"
(assoc-ref inputs "tcl")
(assoc-ref inputs "tk")))))
#t)))))
@ -3923,6 +3977,14 @@ toolkits.")
(let ((matplotlib (package-with-python2
(strip-python2-variant python-matplotlib))))
(package (inherit matplotlib)
(version "2.2.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "matplotlib" version))
(sha256
(base32
"1rcc7x9ig3hpchkc4cwdvym3y451w74275fxr455zkfagrsvymbk"))))
;; Make sure to use special packages for Python 2 instead
;; of those automatically rewritten by package-with-python2.
(propagated-inputs
@ -3946,6 +4008,7 @@ toolkits.")
`(("python-matplotlib" ,python-matplotlib)
("python-colorspacious" ,python-colorspacious)
("python-sphinx" ,python-sphinx)
("python-sphinx-copybutton" ,python-sphinx-copybutton)
("python-sphinx-gallery" ,python-sphinx-gallery)
("python-numpydoc" ,python-numpydoc)
("python-ipython" ,python-ipython)
@ -3972,6 +4035,9 @@ toolkits.")
`(#:tests? #f ; we're only generating documentation
#:phases
(modify-phases %standard-phases
;; The tests in python-matplotlib are run after the install phase, so
;; we need to delete the extra phase here.
(delete 'check)
(replace 'build
(lambda _
(chdir "doc")
@ -4020,7 +4086,12 @@ toolkits.")
(license (package-license python-matplotlib))))
(define-public python2-matplotlib-documentation
(package-with-python2 python-matplotlib-documentation))
(let ((parent (package-with-python2 python-matplotlib-documentation)))
(package
(inherit parent)
(native-inputs
(alist-delete "python-sphinx-copybutton"
(package-native-inputs parent))))))
(define-public python-matplotlib-venn
(package
@ -5014,7 +5085,8 @@ releases.")
(outputs '("out" "doc"))
(build-system python-build-system)
(propagated-inputs
`(("python-appdirs" ,python-appdirs)))
`(("python-appdirs" ,python-appdirs)
("python-importlib-metadata" ,python-importlib-metadata)))
(native-inputs
`(("python-setuptools-scm" ,python-setuptools-scm)
("python-sphinx" ,python-sphinx)
@ -5447,6 +5519,13 @@ computing.")
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-docs-reproducible
(lambda _
(substitute* "IPython/sphinxext/ipython_directive.py"
((".*import datetime") "")
((".*datetime.datetime.now\\(\\)") "")
(("%timeit") "# %timeit"))
#t))
;; Tests can only be run after the library has been installed and not
;; within the source directory.
(delete 'check)
@ -7500,17 +7579,31 @@ serve the same purpose: provide Python bindings for libmagic.")))
(package
(name "python-debian")
(home-page "https://salsa.debian.org/python-debian-team/python-debian")
(version "0.1.28")
(version "0.1.36")
(source
(origin
(method url-fetch)
(uri (pypi-uri name version))
;; Use git-fetch, as pypi doesn't include test suite.
(method git-fetch)
(uri (git-reference
(url home-page)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0i15f0xzx679sd0ldq2sls9pnnps9fv6vhqvnv9dzf4qhma42i0y"))))
"0qy6x28bj6yfikhjww932v5xq4mf5bm1iczl7acy4c7zm6mwhqfa"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(add-after 'unpack 'remove-debian-specific-tests
;; python-apt, apt and dpkg are not yet available in guix,
;; and these tests heavily depend on them.
(lambda _
(delete-file "lib/debian/tests/test_deb822.py")
(delete-file "lib/debian/tests/test_debfile.py")
#t)))))
(propagated-inputs
`(("python-six" ,python-six)))
`(("python-six" ,python-six)
("python-chardet" ,python-chardet)))
(synopsis "Debian package related modules")
(description
;; XXX: Use @enumerate instead of @itemize to work around
@ -10554,25 +10647,29 @@ characters, mouse support, and auto suggestions.")
(define-public python-jedi
(package
(name "python-jedi")
(version "0.13.3")
(version "0.15.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jedi" version))
(sha256
(base32
"0nsrjlb57njqppxmi8wjsb1dkad7qa7svx67jbkhixq66lz61c1b"))))
"0bp4pxhsynaarbvzblsn5x32lzp29svy3sxfy8i6m5iwz9s9r1ds"))))
(build-system python-build-system)
(arguments
`( ;; Many tests are failing with Python 3.7.x as of version 0.13.3 (see:
;; https://github.com/davidhalter/jedi/issues/1263)
#:tests? #f
#:phases
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-file-completion-test
;; A single parameterized test currently fail (see:
;; https://github.com/davidhalter/jedi/issues/1395). Remove it.
(lambda _
(substitute* "test/test_api/test_completion.py"
((".*'example.py', 'rb\"' \\+ join\\('\\.\\.'.*") ""))
#t))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "py.test" "-vv")))))))
(lambda _
(setenv "HOME" "/tmp")
(invoke "python" "-m" "pytest"))))))
(native-inputs
`(("python-pytest" ,python-pytest)
("python-docopt" ,python-docopt)))
@ -10590,11 +10687,7 @@ well.")
(license license:expat)))
(define-public python2-jedi
(let ((base (package-with-python2 (strip-python2-variant python-jedi))))
(package
(inherit base)
(arguments (substitute-keyword-arguments (package-arguments base)
((#:tests? _) #t))))))
(package-with-python2 python-jedi))
(define-public ptpython
(package
@ -14729,17 +14822,21 @@ time-based (TOTP) passwords.")
(define-public python-parso
(package
(name "python-parso")
(version "0.3.1")
(version "0.5.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "parso" version))
(sha256
(base32
"18p89iwcm8mnf380f92g9w0bhx5km8wxp392vvjcq4y1ld1llw1m"))))
"171a9ivhxwsd52h1cgsz40zgzpgzscn7yqb7sdjhy8m1lzj0wsv6"))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(replace 'check
(lambda _ (invoke "pytest" "-vv"))))))
(home-page "https://github.com/davidhalter/parso")
(synopsis "Python Parser")
(description "Parso is a Python parser that supports error recovery and