diff options
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r-- | gnu/packages/python-xyz.scm | 395 |
1 files changed, 324 insertions, 71 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index bf2e7de238..be27f2b60b 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -61,7 +61,7 @@ ;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us> ;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com> -;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com> ;;; Copyright © 2019, 2020 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz> @@ -81,6 +81,7 @@ ;;; Copyright © 2020 Josh Holland <josh@inv.alid.pw> ;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -106,6 +107,7 @@ #:use-module (gnu packages backup) #:use-module (gnu packages bash) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages databases) @@ -4991,46 +4993,51 @@ as the original project seems to have been abandoned circa 2007.") (package-with-python2 python-socksipy-branch)) (define-public python-socksipychain - (let ((commit "eb5ee8741ce006ac0c5c3e2e83204062c348c155") - (revision "1") - (version "2.1.1")) - (package - (name "python-socksipychain") - (version (git-version version revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pagekite/PySocksipyChain.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0fpphn6xnpm7qk8a914s4abycsbq9w6qkci07my632v0fylnm5n7")))) - (build-system python-build-system) - (arguments - `(#:tests? #f)) ; Tests try to access the network. - (home-page "http://pagekite.net/wiki/Floss/PySocksipyChain/") - (synopsis "Python SOCKS module with chained proxies support") - (description - "SocksiPyChain is a modified version of the SocksiPy SOCKS module, which + (package + (name "python-socksipychain") + (version "2.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pagekite/PySocksipyChain.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "02pp994qmiivkdx4y6az5q80l6rzy8g6d2ipvp7kns7lsxvmc2y7")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ; Tests try to access the network. + (home-page "http://pagekite.net/wiki/Floss/PySocksipyChain/") + (synopsis "Python SOCKS module with chained proxies support") + (description + "SocksiPyChain is a modified version of the SocksiPy SOCKS module, which adds support for arbitrary chaining of proxy servers and various modes of TLS/SSL encryption. It was developed for use in PageKite, and also includes a simple netcat replacement with chaining support.") - (license license:bsd-3)))) + (license license:bsd-3))) (define-public python-pycodestyle (package (name "python-pycodestyle") - (version "2.5.0") + (version "2.6.0") (source (origin (method url-fetch) (uri (pypi-uri "pycodestyle" version)) (sha256 (base32 - "0v4prb05n21bm8650v0a01k1nyqjdmkrsm3zycfxh2j5k9n962p4")))) + "0bhr6ia0hmgx3nhgibc9pmkzhlh1zcqk707i5fbxgs702ll7v2n5")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "pytest" "-vv")))))) + (native-inputs + `(("python-pytest" ,python-pytest))) (home-page "https://pycodestyle.readthedocs.io/") (synopsis "Python style guide checker") (description "@code{pycodestyle} (formerly pep8) is a tool to check @@ -5121,17 +5128,18 @@ multivalue dictionary that retains the order of insertions and deletions.") (define-public python-autopep8 (package (name "python-autopep8") - (version "1.3.5") + (version "1.5.3") (source (origin (method url-fetch) (uri (pypi-uri "autopep8" version)) (sha256 (base32 - "192bvhzi4d0claqxgzymvv7k3qnj627742bc8sgxpzjj42pd9112")))) + "1w6vh627vrmgfbvrdcxrc3k4gxcldrb2lpgxv9irkdds851qrzb0")))) (build-system python-build-system) (propagated-inputs - `(("python-pycodestyle" ,python-pycodestyle))) + `(("python-pycodestyle" ,python-pycodestyle) + ("python-toml" ,python-toml))) (home-page "https://github.com/hhatto/autopep8") (synopsis "Format Python code according to the PEP 8 style guide") (description @@ -5315,6 +5323,115 @@ a general image processing tool.") (define-public python2-pillow (package-with-python2 python-pillow)) +(define-public python-roifile + (package + (name "python-roifile") + (version "2020.5.28") + (source + (origin + (method url-fetch) + (uri (pypi-uri "roifile" version)) + (sha256 + (base32 + "1vwbwfsw745gyqymff6dllc5zqjsgqmxaw245sw4an6yw9rcbzc0")))) + (build-system python-build-system) + (arguments `(#:tests? #f)) ; there are none + (propagated-inputs + `(("python-numpy" ,python-numpy))) + (home-page "https://www.lfd.uci.edu/~gohlke/") + (synopsis "Read and write ImageJ ROI format") + (description "Roifile is a Python library to read, write, create, and plot +ImageJ ROIs, an undocumented and ImageJ application specific format to store +regions of interest, geometric shapes, paths, text, etc for image overlays.") + (license license:bsd-3))) + +(define-public python-tifffile + (package + (name "python-tifffile") + (version "2020.6.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tifffile" version)) + (sha256 + (base32 + "0xv3ynkbrsibqvx7250075idb7wm3canjd6lx2nzf3cbp6l07577")))) + (build-system python-build-system) + ;; Tests require lfdfiles, which depends on tifffile + (arguments `(#:tests? #f)) + (propagated-inputs + `(("python-numpy" ,python-numpy) + ;;("python-lfdfiles" ,python-lfdfiles) + ("python-roifile" ,python-roifile))) + (home-page "https://www.lfd.uci.edu/~gohlke/") + (synopsis "Read and write TIFF(r) files") + (description "This package lets you read image and metadata from many +bio-scientific formats such as plain TIFF, BigTIFF, OME-TIFF, STK, LSM, SGI, +NIH, ImageJ, MicroManager, MD GEL, and FluoView files. It also lets you write +numpy arrays to TIFF, BigTIFF, and ImageJ hyperstack compatible files.") + (license license:bsd-3))) + +(define-public python-lfdfiles + (package + (name "python-lfdfiles") + (version "2020.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "lfdfiles" version)) + (sha256 + (base32 + "1n9bkfn4vxl0lbhzd0m35lq86ayx5fwcj3ghpfl2vbjbsnfp3h47")))) + (build-system python-build-system) + (propagated-inputs + `(("python-click" ,python-click) + ("python-numpy" ,python-numpy) + ("python-tifffile" ,python-tifffile))) + (home-page "https://www.lfd.uci.edu/~gohlke/") + (synopsis "Work with LFD data files") + (description + "Lfdfiles is a Python library and console script for reading, writing, +converting, and viewing many of the proprietary file formats used to store +experimental data and metadata at the Laboratory for Fluorescence Dynamics.") + (license license:bsd-3))) + +(define-public python-imageio + (package + (name "python-imageio") + (version "2.8.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "imageio" version)) + (sha256 + (base32 + "1ksjl523fm0fikrd85llxfba35rc1qsgwadgr6mbn9kis79xcpzv")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; many tests require online data + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key outputs inputs tests? #:allow-other-keys) + (if tests? + (begin + ;; Make installed package available for running the tests. + (add-installed-pythonpath inputs outputs) + (invoke "pytest" "-vv")) + #t)))))) + (propagated-inputs + `(("python-numpy" ,python-numpy) + ("python-pillow" ,python-pillow) + ("python-psutil" ,python-psutil))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/imageio/imageio") + (synopsis "Read and write image, video, scientific, and volumetric data formats") + (description + "This package provides a Python library for reading and writing a wide +range of image, video, scientific, and volumetric data formats.") + (license license:bsd-2))) + (define-public python-pycparser (package (name "python-pycparser") @@ -5364,14 +5481,14 @@ a front-end for C compilers or analysis tools.") (define-public python-pywavelets (package (name "python-pywavelets") - (version "1.0.1") + (version "1.1.1") (home-page "https://github.com/PyWavelets/pywt") (source (origin (method url-fetch) (uri (pypi-uri "PyWavelets" version)) (sha256 (base32 - "1p3qv2v66ghnqrb1f98wyyhp9dz71jwcd6kfpsax65sfdpiyqp1w")))) + "1j88c0r4j1d4mb3f8qhz6nalyx21qrzmsm70rjngnkybd87v8r0s")))) (build-system python-build-system) (arguments '(#:modules ((ice-9 ftw) @@ -5379,17 +5496,18 @@ a front-end for C compilers or analysis tools.") (srfi srfi-26) (guix build utils) (guix build python-build-system)) - #:phases (modify-phases %standard-phases - (replace 'check - (lambda _ - (let ((cwd (getcwd)) - (libdir (find (cut string-prefix? "lib." <>) - (scandir "build")))) - (with-directory-excursion (string-append cwd "/build/" libdir) - (invoke "nosetests" "-v" ".")))))))) + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (let ((cwd (getcwd)) + (libdir (find (cut string-prefix? "lib." <>) + (scandir "build")))) + (with-directory-excursion (string-append cwd "/build/" libdir) + (invoke "pytest" "-vv")))))))) (native-inputs `(("python-matplotlib" ,python-matplotlib) ;for tests - ("python-nose" ,python-nose))) + ("python-pytest" ,python-pytest))) (propagated-inputs `(("python-numpy" ,python-numpy))) (synopsis "Wavelet transforms in Python") @@ -5647,7 +5765,7 @@ memoizing PEG/Packrat parser in Python.") (define-public python-gridmap (package (name "python-gridmap") - (version "0.13.0") + (version "0.14.0") (source (origin (method git-fetch) @@ -5656,7 +5774,7 @@ memoizing PEG/Packrat parser in Python.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1478lbwsr1w24cii2x01m2910fvh8r43ghnb78nc972a96hqiknm")))) + (base32 "0v0sgpg6pz8h61f9aqjf5xk0ipr512bbz8dxzjjylksj135qr19l")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; FIXME: Requires python-cherrypy. @@ -6453,7 +6571,7 @@ callback signature using a prototype function.") (propagated-inputs `(("python-backcall" ,python-backcall) ("python-pyzmq" ,python-pyzmq) - ("python-prompt-toolkit" ,python-prompt-toolkit) + ("python-prompt-toolkit" ,python-prompt-toolkit-2) ("python-terminado" ,python-terminado) ("python-matplotlib" ,python-matplotlib) ("python-numpy" ,python-numpy) @@ -7484,14 +7602,14 @@ PEP 8.") (define-public python-pyflakes (package (name "python-pyflakes") - (version "2.1.1") + (version "2.2.0") (source (origin (method url-fetch) (uri (pypi-uri "pyflakes" version)) (sha256 (base32 - "18pq95a1xj2dgdd0m85gyfsn40jajj4xc3lp8wfv7igqhrc86xnr")))) + "1j3zqbiwkyicvww499bblq33x0bjpzdrxajhaysr7sk7x5gdgcim")))) (build-system python-build-system) (home-page "https://github.com/pyflakes/pyflakes") @@ -7585,13 +7703,13 @@ complexity of Python source code.") (define-public python-flake8 (package (name "python-flake8") - (version "3.7.9") + (version "3.8.3") (source (origin (method url-fetch) (uri (pypi-uri "flake8" version)) (sha256 (base32 - "1yscj6avirm6m12bjh4fn2lfgxaamqsjh9pirdqfi0fcgq8ils25")))) + "02527892hh0qjivxaiphzalj7q32qkna1cqaikjs7c03mk5ryjzh")))) (build-system python-build-system) (arguments `(#:phases @@ -9007,8 +9125,7 @@ interactive computing.") "1ismyaxbv9d56yqqqb8xl58hg0iq0bbyy014a53y1g3hfbc8g7q7")))) (build-system python-build-system) (propagated-inputs - `(("python-ipykernel" - ,(prompt-toolkit-2-instead-of-prompt-toolkit python-ipykernel)) + `(("python-ipykernel" ,python-ipykernel) ("python-notebook" ,python-notebook))) (native-inputs `(("python-certifi" ,python-certifi) @@ -9035,8 +9152,7 @@ notebooks.") "15sww2mvnkqlvx55gwa82v05062a8j1xpncnqna4k9sl53hgcig9")))) (build-system python-build-system) (propagated-inputs - `(("python-ipython" ,(prompt-toolkit-2-instead-of-prompt-toolkit - python-ipython)) + `(("python-ipython" ,python-ipython) ("python-traitlets" ,python-traitlets) ("python-widgetsnbextension" ,python-widgetsnbextension))) (native-inputs @@ -9066,8 +9182,7 @@ in the data.") "06s3kr5vx0l1y1b7fxb04dmrppscl7q69sl9yyfr0d057d1ssvkg")))) (build-system python-build-system) (propagated-inputs - `(("python-ipykernel" ,(prompt-toolkit-2-instead-of-prompt-toolkit - python-ipykernel)) + `(("python-ipykernel" ,python-ipykernel) ("python-jupyter-client" ,python-jupyter-client) ("python-prompt-toolkit" ,python-prompt-toolkit-2) ("python-pygments" ,python-pygments))) @@ -9881,6 +9996,38 @@ concurrent.futures package from Python 3.2") ("python2-pytest" ,python2-pytest) ,@(package-native-inputs promise)))))) +(define-public python-progressbar2 + (package + (name "python-progressbar2") + (version "3.51.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "progressbar2" version)) + (sha256 + (base32 + "0b2v3mim90rmfvixkaniz2qrs650sk230rzgd5zhcjfldmlqgxpc")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six) + ("python-utils" ,python-utils))) + (native-inputs + `(("python-flake8" ,python-flake8) + ("python-freezegun" ,python-freezegun) + ("python-pycodestyle" ,python-pycodestyle) + ("python-pytest" ,python-pytest) + ("python-pytest-cache" ,python-pytest-cache) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-flakes" ,python-pytest-flakes) + ("python-pytest-pep8" ,python-pytest-pep8) + ("python-sphinx" ,python-sphinx))) + (home-page "https://github.com/WoLpH/python-progressbar") + (synopsis "Text progress bar library for Python") + (description + "This package provides a Python progressbar library to provide +visual (yet text based) progress to long running operations.") + (license license:bsd-3))) + (define-public python-progressbar33 (package (name "python-progressbar33") @@ -10052,6 +10199,29 @@ document.") (define-public python2-jmespath (package-with-python2 python-jmespath)) +(define-public python-symengine + (package + (name "python-symengine") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "symengine" version)) + (sha256 + (base32 "1kn1w4dp9mrsq6kzmhf4pjmx3wicxc3dw1mwa924q8g48g77lr4c")))) + (build-system python-build-system) + (native-inputs + `(("cmake" ,cmake) + ("python-cython" ,python-cython))) + (inputs + `(("symengine" ,symengine))) + (home-page "https://github.com/symengine/symengine.py") + (synopsis "Python library providing wrappers to SymEngine") + (description + "This library provides a Python wrapper to SymEngine, a fast C++ symbolic +manipulation library.") + (license license:expat))) + (define-public python-botocore (package (name "python-botocore") @@ -10087,6 +10257,24 @@ interface to the Amazon Web Services (AWS) API.") (define-public python2-botocore (package-with-python2 python-botocore)) +(define-public python-pyfiglet + (package + (name "python-pyfiglet") + (version "0.8.post1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyfiglet" version)) + (sha256 + (base32 + "0f9n2076ga2ccsg174k2d7n0z4d44ml96yzc72s6g4nhalbk5hn6")))) + (build-system python-build-system) + (home-page "https://github.com/pwaller/pyfiglet") + (synopsis "Draw ASCII art big letters in Python") + (description "This module lets you draw large letter from ordinary characters +in pure Python.") + (license license:expat))) + (define-public python-xdo (package (name "python-xdo") @@ -11749,17 +11937,26 @@ implementation has been adapted, improved, and fixed from Molten.") (define-public python-shellingham (package (name "python-shellingham") - (version "1.3.1") + (version "1.3.2") (source (origin (method url-fetch) (uri (pypi-uri "shellingham" version)) (sha256 - (base32 - "1q7kws7w4x2hji3g7y0ni9ddk4sd676ylrb3db54gbpys6xj6nwq")))) + (base32 "07kmia2hvd2q7wik89m82hig9mqr2faynvy38vxq5fm0ps11jv2p")))) (build-system python-build-system) - (home-page - "https://github.com/sarugaku/shellingham") + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'restore-setup.py + ;; setup.py will return in the next release. + ;; <https://github.com/sarugaku/shellingham/issues/33> + (lambda _ + (with-output-to-file "setup.py" + (lambda _ + (display "from setuptools import setup\nsetup()\n"))) + #t))))) + (home-page "https://github.com/sarugaku/shellingham") (synopsis "Tool to detect surrounding shell") (description "Shellingham detects what shell the current Python executable is @@ -11776,7 +11973,8 @@ running in.") (uri (pypi-uri "python-memcached" version)) (sha256 (base32 - "0kvyapavbirk2x3n1jx4yb9nyigrj1s3x15nm3qhpvhkpqvqdqm2")))) + "0kvyapavbirk2x3n1jx4yb9nyigrj1s3x15nm3qhpvhkpqvqdqm2")) + (patches (search-patches "python-memcached-syntax-warnings.patch")))) (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six))) (home-page @@ -11880,7 +12078,7 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.") (define-public poetry (package (name "poetry") - (version "1.0.5") + (version "1.0.9") ;; Poetry can only be built from source with Poetry. (source (origin @@ -11888,7 +12086,7 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.") (uri (pypi-uri "poetry" version)) (sha256 (base32 - "02h387k0xssvv78yy82pcpknpq4w5ym2in1zl8cg9r5wljl5w6cf")))) + "1avp0db1a4hf6lz3wrzhpdvj4rpmzr4in3myrd3lp5j66nc5ck0a")))) (build-system python-build-system) (arguments `(#:tests? #f ;; Pypi does not have tests. @@ -11899,8 +12097,7 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.") (substitute* "setup.py" ;; poetry won't update version as 21.0.0 relies on python > 3.6 (("keyring>=20.0.1,<21.0.0") "keyring>=21.0.0,<22.0.0") - (("pyrsistent>=0.14.2,<0.15.0") "pyrsistent>=0.14.2,<0.16.0") - (("importlib-metadata>=1.1.3,<1.2.0") "importlib-metadata>=1.1.3,<1.5.0")) + (("pyrsistent>=0.14.2,<0.15.0") "pyrsistent>=0.14.2,<0.17.0")) #t))))) (propagated-inputs `(("python-cachecontrol" ,python-cachecontrol) @@ -11908,9 +12105,9 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.") ("python-cleo" ,python-cleo) ("python-clikit" ,python-clikit) ("python-html5lib" ,python-html5lib) - ("python-importlib-metadata" ,python-importlib-metadata) ;; python < 3.8 ("python-jsonschema" ,python-jsonschema) ("python-keyring" ,python-keyring) + ("python-msgpack-transitional" ,python-msgpack-transitional) ("python-pexpect" ,python-pexpect) ("python-pkginfo" ,python-pkginfo) ("python-pyparsing" ,python-pyparsing) @@ -12186,10 +12383,6 @@ characters, mouse support, and auto suggestions.") ("python-six" ,python-six) ("python-pygments" ,python-pygments))))) -(define-public prompt-toolkit-2-instead-of-prompt-toolkit - (package-input-rewriting/spec - `(("python-prompt-toolkit" . ,(const python-prompt-toolkit-2))))) - (define-public python2-prompt-toolkit (package-with-python2 python-prompt-toolkit-2)) @@ -14170,14 +14363,22 @@ exception message with a traceback that points to the culprit.") (define-public python-utils (package (name "python-utils") - (version "2.1.0") + (version "2.4.0") (source (origin (method url-fetch) (uri (pypi-uri "python-utils" version)) (sha256 (base32 - "1mcsy6q5am4ya72rgkpb6kax6vv7c93cfkkas89xnpa4sj9zf28p")))) + "12c0glzkm81ljgf6pwh0d4rmdm1r7vvgg3ifzp8yp9cfyngw07zj")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (delete-file "pytest.ini") + (invoke "pytest" "-vv")))))) (native-inputs `(("pytest-runner" ,python-pytest-runner) ("pytest" ,python-pytest) @@ -17702,6 +17903,39 @@ on regular expressions.") `(("python2-enum34" ,python2-enum34) ,@(package-propagated-inputs reparser)))))) +(define-public python-retrying + (package + (name "python-retrying") + (version "1.3.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rholder/retrying.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kqipkbdaw5s1xg0gi29awm03vp1x8dz24pjidgxagvkvrjpzhi7")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six))) + (home-page "https://github.com/rholder/retrying") + (synopsis "Library for adding retry behavior") + (description "Retrying is a general-purpose retrying library to simplify +the task of adding retry behavior to just about anything. + +Features: + +@itemize +@item Generic Decorator API. +@item Specify stop condition (i.e. limit by number of attempts). +@item Specify wait condition (i.e. exponential backoff sleeping between attempts). +@item Customize retrying on Exceptions. +@item Customize retrying on expected returned result. +@end itemize") + (license license:asl2.0))) + (define-public python-precis-i18n (package (name "python-precis-i18n") @@ -19462,6 +19696,25 @@ using “=” characters. However this conveys no benefit so many protocols choose to use Base64 without the “=” padding.") (license license:asl2.0))) +(define-public python-py-cpuinfo + (package + (name "python-py-cpuinfo") + (version "5.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "py-cpuinfo" version)) + (sha256 + (base32 + "0045y6832gqjg63jmw0qj2jwyypgjwr7sfdq3lfv49b6fxpl5xic")))) + (build-system python-build-system) + (home-page "https://github.com/workhorsy/py-cpuinfo") + (synopsis "Get CPU info with Python") + (description + "This Python module returns the CPU info by using the best sources of +information for your operating system.") + (license license:expat))) + (define-public python-canonicaljson (package (name "python-canonicaljson") |