;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
+;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
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
(define-public python-cython
(package
(name "python-cython")
- (version "0.29.11")
+ (version "0.29.13")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Cython" version))
(sha256
(base32
- "1866m01ggl2h3rky4hac3m5p048gg4a0jb09ljkknryiqln54fkn"))))
+ "13k37lrcgagwwnzr5bzririsscb793vndj234d475x1h9ad0d7f2"))))
(build-system python-build-system)
;; we need the full python package and not just the python-wrapper
;; because we need libpython3.3m.so
(replace 'check
(lambda _
- (invoke "python" "runtests.py" "-vv"))))))
+ ;; Disable compiler optimizations to greatly reduce the running
+ ;; time of the test suite.
+ (setenv "CFLAGS" "-O0")
+
+ (invoke "python" "runtests.py" "-vv"
+ "-j" (number->string (parallel-job-count))))))))
(home-page "https://cython.org/")
(synopsis "C extensions for Python")
(description "Cython is an optimising static compiler for both the Python
("pkg-config" ,pkg-config)
("python-sphinx" ,python-sphinx)
("python-numpydoc" ,python-numpydoc)
- ("texlive" ,(texlive-union (list texlive-fonts-amsfonts
- texlive-fonts-cm-super
+ ("texlive" ,(texlive-union (list texlive-fonts-cm-super
texlive-fonts-ec
texlive-generic-ifxetex
texlive-generic-pdftex
- texlive-latex-amsfonts
+ texlive-amsfonts
texlive-latex-capt-of
texlive-latex-cmap
texlive-latex-environ
(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)
;; 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
("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")))
(lambda (port)
(format port "[directories]~%
basedirlist = ~a,~a~%
- [rc_options]~%
-backend = TkAgg~%"
+[packages]~%
+tests = True~%"
(assoc-ref inputs "tcl")
(assoc-ref inputs "tk")))))
#t)))))
(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
`(("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)
("python-ipykernel" ,python-ipykernel)
("python-mock" ,python-mock)
("graphviz" ,graphviz)
- ("texlive" ,(texlive-union (list texlive-latex-amsfonts
+ ("texlive" ,(texlive-union (list texlive-amsfonts
texlive-latex-amsmath
texlive-latex-enumitem
texlive-latex-expdlist
texlive-generic-pdftex
- texlive-fonts-amsfonts
texlive-fonts-ec
texlive-fonts-adobe-times
texlive-fonts-txfonts)))
`(#: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")
(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
(define-public python-scipy
(package
(name "python-scipy")
- (version "1.2.2")
+ (version "1.3.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "scipy" version))
(sha256
(base32
- "1cgvgin8fvckv96hjh3ikmwkra5rif51bdb75ifzf7xbil5iwcx4"))))
+ "1df113c9i6vazsn6y3n9wc22jh737z1g7dmx3mypkdwpdnscyhr6"))))
(build-system python-build-system)
(propagated-inputs
`(("python-numpy" ,python-numpy)
(properties `((python2-variant . ,(delay python2-scipy))))
(license license:bsd-3)))
+;; Version 1.2.2 is the last version to support Python 2
(define-public python2-scipy
- (package-with-python2
- (strip-python2-variant python-scipy)))
+ (package
+ (inherit (package-with-python2
+ (strip-python2-variant python-scipy)))
+ (version "1.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "scipy" version))
+ (sha256
+ (base32
+ "1cgvgin8fvckv96hjh3ikmwkra5rif51bdb75ifzf7xbil5iwcx4"))))))
(define-public python-socksipy-branch
(package
(define-public python-pillow
(package
(name "python-pillow")
- (version "5.4.1")
+ (version "6.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Pillow" version))
(sha256
(base32
- "17waygkhhzjd75kajlfw9v57mbb41lcpg6cvkdijqd7smm76ccsj"))))
+ "1pnrsz0f0n0c819v1pdr8j6rm8xvhc9f3kh1fv9xpdp9n5ygf108"))))
(build-system python-build-system)
(native-inputs
`(("python-pytest" ,python-pytest)))
(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)
(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)
`(("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-fonts-amsfonts
+ ("texlive" ,(texlive-union (list texlive-amsfonts
texlive-fonts-ec
texlive-generic-ifxetex
texlive-generic-pdftex
- texlive-latex-amsfonts
texlive-latex-capt-of
texlive-latex-cmap
texlive-latex-environ
(define-public python-wrapt
(package
(name "python-wrapt")
- (version "1.11.1")
+ (version "1.11.2")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "wrapt" version))
- (sha256
- (base32
- "0cqmysny1pz01jw26q48q5zasvns6507rwhgm6wcw743f0r01sja"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "wrapt" version))
+ (sha256
+ (base32
+ "1q81762dgsgrd12f8qc39zk8s5wll3m5xc32jdmlf6cls4gh4njn"))))
(build-system python-build-system)
(arguments
;; Tests are not included in the tarball, they are only available in the
(home-page "https://github.com/GrahamDumpleton/wrapt")
(synopsis "Module for decorators, wrappers and monkey patching")
(description
- "The aim of the wrapt module is to provide a transparent object proxy for
+ "The aim of the wrapt module is to provide a transparent object proxy for
Python, which can be used as the basis for the construction of function
wrappers and decorator functions.")
(license license:bsd-2)))
(define-public python-pip
(package
(name "python-pip")
- (version "18.1")
+ (version "19.2.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pip" version))
(sha256
(base32
- "188fclay154s520n43s7cxxlhdaiysvxf19zk8vr1xbyjyyr58n0"))))
+ "100sd12ss4mbdj5lf3wawad29cm573b27765mq098x6xhcj71395"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; there are no tests in the pypi archive.
(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
(define-public python-mako
(package
(name "python-mako")
- (version "1.0.13")
+ (version "1.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Mako" version))
(sha256
(base32
- "0h95n0g0k1jwxiqarr09navpfajarvbmpm8mhmw66c25qc675vlm"))))
+ "0jqa3qfpykyn4fmkn0kh6043sfls7br8i2bsdbccazcvk9cijsd3"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "pytest" "-vv"))))))
(propagated-inputs
`(("python-markupsafe" ,python-markupsafe)))
(native-inputs
`(("python-mock" ,python-mock)
- ("python-nose" ,python-nose)
("python-pytest" ,python-pytest)))
(home-page "https://www.makotemplates.org/")
(synopsis "Templating language for Python")
(define-public python-twisted
(package
(name "python-twisted")
- (version "19.2.1")
+ (version "19.7.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "Twisted" version ".tar.bz2"))
(sha256
(base32
- "0liymyd4pzphizjlpwkncxjpm9akyr3lkfkm77yfg6wasv108b7s"))))
+ "17d3hnxv9qndagzz63mdpyk99xj63p9gq586vjn0rxk8cl197nym"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; FIXME: some tests fail
(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)))
(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
("python-psutil" ,python-psutil)))
(home-page
"https://github.com/nicolargo/glances")
- (synopsis
- "A cross-platform curses-based monitoring tool")
+ (synopsis "Cross-platform curses-based monitoring tool")
(description
"Glances is a curses-based monitoring tool for a wide variety of platforms.
-Glances uses the PsUtil library to get information from your system. It monitors
-CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
+Glances uses the PsUtil library to get information from your system. It
+monitors CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
(license license:lgpl3+)))
(define-public python2-glances
(define-public python-pybtex
(package
(name "python-pybtex")
- (version "0.21")
+ (version "0.22.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pybtex" version))
(sha256
- (base32
- "00300j8dn5pxq4ndxmfmbmycg2znawkqs49val2x6jlmfiy6r2mg"))))
+ (base32 "070wfcmxrd7xg1si421mi9150gmx2qwx431nwf69sq3hhmgnx080"))))
(build-system python-build-system)
(native-inputs
`(("python-nose" ,python-nose)))
(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
time-or-computationally-expensive properties quick and easy and works in Python
2 or 3.")
(license license:bsd-3)))
+
+(define-public python-folium
+ (package
+ (name "python-folium")
+ (version "0.10.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "folium" version))
+ (sha256
+ (base32
+ "18fzxijsgrb95r0a8anc9ba5ijyw3nlnv3rpavfbkqa5v878x84f"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-branca" ,python-branca)
+ ("python-jinja2" ,python-jinja2)
+ ("python-numpy" ,python-numpy)
+ ("python-requests" ,python-requests)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/python-visualization/folium")
+ (synopsis "Make beautiful maps with Leaflet.js & Python")
+ (description "@code{folium} makes it easy to visualize data that’s been
+manipulated in Python on an interactive leaflet map. It enables both the
+binding of data to a map for @code{choropleth} visualizations as well as
+passing rich vector/raster/HTML visualizations as markers on the map.
+
+The library has a number of built-in tilesets from OpenStreetMap, Mapbox, and
+Stamen, and supports custom tilesets with Mapbox or Cloudmade API keys. It
+supports Image, Video, GeoJSON and TopoJSON overlays.")
+ (license license:expat)))
+
+(define-public jube
+ (package
+ ;; This is a command-line tool, so no "python-" prefix.
+ (name "jube")
+ (version "2.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://apps.fz-juelich.de/jsc/jube/jube2/download.php?version="
+ version))
+ (sha256
+ (base32
+ "0xq4k1q63s1p6swgyp61vahlrd1fqmgbm0gm5kpj8ikwy0yc0nqk"))
+ (file-name (string-append "jube-" version ".tar.gz"))))
+ (build-system python-build-system)
+ (home-page "https://apps.fz-juelich.de/jsc/jube/jube2/docu/index.html")
+ (synopsis "Benchmarking environment")
+ (description
+ "JUBE helps perform and analyze benchmarks in a systematic way. For each
+benchmarked application, benchmark data is stored in a format that allows JUBE
+to deduct the desired information. This data can be parsed by automatic pre-
+and post-processing scripts that draw information and store it more densely
+for manual interpretation.")
+ (license license:gpl3+)))
+
+(define-public python-pyroutelib3
+ (package
+ (name "python-pyroutelib3")
+ (version "1.3.post1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyroutelib3" version))
+ (sha256
+ (base32
+ "1hpbydpn2alyswiajfbvhzq4c7f36vdmvxy91hgv8l1lb2g2vfrj"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-dateutil" ,python-dateutil)))
+ (home-page "https://github.com/MKuranowski/pyroutelib3")
+ (synopsis "Library for simple routing on OSM data")
+ (description "Library for simple routing on OSM data")
+ (license license:gpl3+)))
+
+(define-public python-elementpath
+ (package
+ (name "python-elementpath")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "elementpath" version))
+ (sha256
+ (base32
+ "1syn2z543brab23dskh3fjd9pqvz6npqbcicrs2d88dbg26xl08p"))))
+ (build-system python-build-system)
+ (home-page
+ "https://github.com/sissaschool/elementpath")
+ (synopsis
+ "XPath 1.0/2.0 parsers and selectors for ElementTree and lxml")
+ (description
+ "The proposal of this package is to provide XPath 1.0 and 2.0 selectors
+for Python's ElementTree XML data structures, both for the standard
+ElementTree library and for the @uref{http://lxml.de, lxml.etree} library.
+
+For lxml.etree this package can be useful for providing XPath 2.0 selectors,
+because lxml.etree already has it's own implementation of XPath 1.0.")
+ (license license:expat)))