diff options
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r-- | gnu/packages/python.scm | 274 |
1 files changed, 195 insertions, 79 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 3f1328ddf0..c555d8072a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -22,8 +22,8 @@ ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2016 Daniel Pimentel <d4n1@d4n1.org> ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com> -;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com> -;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net> +;;; Copyright © 2016, 2017 Troy Sankey <sankeytms@gmail.com> +;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org> ;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org> ;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> @@ -4512,7 +4512,8 @@ operators such as union, intersection, and difference.") (scandir (string-append cwd "/build"))) ":" (getenv "PYTHONPATH")))) - (zero? (system* "python" "-m" "rpy2.tests" "-v"))))))) + ;; FIXME: Even when all tests pass, the check phase will fail. + (system* "python" "-m" "rpy2.tests" "-v")))))) (propagated-inputs `(("python-six" ,python-six) ("python-jinja2" ,python-jinja2) @@ -5133,72 +5134,6 @@ a front-end for C compilers or analysis tools.") (define-public python2-pycparser (package-with-python2 python-pycparser)) -(define-public python-cffi - (package - (name "python-cffi") - (version "1.10.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "cffi" version)) - (sha256 - (base32 "1mffyilq4qycm8gs4wkgb18rnqil8a9blqq77chdlshzxc8jkc5k")))) - (build-system python-build-system) - (outputs '("out" "doc")) - (inputs - `(("libffi" ,libffi))) - (propagated-inputs ; required at run-time - `(("python-pycparser" ,python-pycparser))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("python-sphinx" ,python-sphinx) - ("python-pytest" ,python-pytest))) - (arguments - `(#:modules ((ice-9 ftw) - (srfi srfi-26) - (guix build utils) - (guix build python-build-system)) - #:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (setenv "PYTHONPATH" - (string-append - (getenv "PYTHONPATH") - ":" (getcwd) "/build/" - (car (scandir "build" (cut string-prefix? "lib." <>))))) - - ;; XXX The "normal" approach of setting CC and friends does - ;; not work here. Is this the correct way of doing things? - (substitute* "testing/embedding/test_basic.py" - (("c = distutils\\.ccompiler\\.new_compiler\\(\\)") - (string-append "c = distutils.ccompiler.new_compiler();" - "c.set_executables(compiler='gcc'," - "compiler_so='gcc',linker_exe='gcc'," - "linker_so='gcc -shared')"))) - (substitute* "testing/cffi0/test_ownlib.py" - (("'cc testownlib") "'gcc testownlib")) - (zero? (system* "py.test" "-v" "c/" "testing/")))) - (add-after 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) - (let* ((data (string-append (assoc-ref outputs "doc") "/share")) - (doc (string-append data "/doc/" ,name "-" ,version)) - (html (string-append doc "/html"))) - (with-directory-excursion "doc" - (system* "make" "html") - (mkdir-p html) - (copy-recursively "build/html" html)) - (copy-file "LICENSE" (string-append doc "/LICENSE")) - #t)))))) - (home-page "http://cffi.readthedocs.org") - (synopsis "Foreign function interface for Python") - (description - "Foreign Function Interface for Python calling C code.") - (license license:expat))) - -(define-public python2-cffi - (package-with-python2 python-cffi)) - (define-public python-xcffib (package (name "python-xcffib") @@ -5854,6 +5789,12 @@ tools for mocking system commands and recording calls to those.") ("python-numpy" ,python-numpy) ("python-numpydoc" ,python-numpydoc) ("python-jinja2" ,python-jinja2) + ("python-jupyter-console" + ;; The python-ipython and python-jupyter-console require each + ;; other. To get the functionality in both packages working, strip + ;; down the python-jupyter-console package when using it as an input + ;; to python-ipython. + ,python-jupyter-console-minimal) ("python-mistune" ,python-mistune) ("python-pexpect" ,python-pexpect) ("python-pickleshare" ,python-pickleshare) @@ -6607,6 +6548,26 @@ providing a clean and modern domain specific specification language (DSL) in Python style, together with a fast and comfortable execution environment.") (license license:expat))) +(define-public python-pyqrcode + (package + (name "python-pyqrcode") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PyQRCode" version)) + (sha256 + (base32 + "1m9ln8k9v7dfbh1i81225hx5mdsh8mpf9g7r4wpbfmiyfcs7dgzx")))) + (build-system python-build-system) + (home-page + "https://github.com/mnooner256/pyqrcode") + (synopsis "QR code generator") + (description + "Pyqrcode is a QR code generator written purely in Python with +SVG, EPS, PNG and terminal output.") + (license license:bsd-3))) + (define-public python-seaborn (package (name "python-seaborn") @@ -7415,15 +7376,13 @@ add functionality and customization to your projects with their own plugins.") (define-public python-fonttools (package (name "python-fonttools") - (version "2.5") + (version "3.15.1") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/F/FontTools/" - "fonttools-" version ".tar.gz")) + (uri (pypi-uri "fonttools" version ".zip")) (sha256 (base32 - "08ay3x4ijarwhl60gqx2i9jzq6pxs20p4snc2d1q5jagh4rn39lb")))) + "1hhj97izwliy0vybmza72d90l5d4mcn50y8akq7kyccfl82vdx4d")))) (build-system python-build-system) (arguments '(#:test-target "check" @@ -7437,6 +7396,8 @@ add functionality and customization to your projects with their own plugins.") (substitute* "setup.py" (("^[ \t]*extra_path *= *'FontTools',") "")) #t))))) + (native-inputs + `(("unzip" ,unzip))) (home-page "https://github.com/behdad/fonttools") (synopsis "Tools to manipulate font files") (description @@ -8560,6 +8521,31 @@ Jupyter kernels such as IJulia and IRKernel.") (define-public python2-jupyter-console (package-with-python2 python-jupyter-console)) +;; The python-ipython and python-jupyter-console require each other. To get +;; the functionality in both packages working, strip down the +;; python-jupyter-console package when using it as an input to python-ipython. +(define python-jupyter-console-minimal + (package + (inherit python-jupyter-console) + (arguments + (substitute-keyword-arguments + (package-arguments python-jupyter-console) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'install 'delete-bin + (lambda* (#:key outputs #:allow-other-keys) + ;; Delete the bin files, to avoid conflicts in profiles + ;; where python-ipython and python-jupyter-console are + ;; both present. + (delete-file-recursively + (string-append + (assoc-ref outputs "out") "/bin")))))))) + ;; Remove the python-ipython propagated input, to avoid the cycle + (propagated-inputs + (alist-delete + "python-ipython" + (package-propagated-inputs python-jupyter-console))))) + (define-public jupyter (package (name "jupyter") @@ -10784,14 +10770,14 @@ introspection of @code{zope.interface} instances in code.") (define-public python-psycopg2 (package (name "python-psycopg2") - (version "2.6.2") + (version "2.7.3.1") (source (origin (method url-fetch) (uri (pypi-uri "psycopg2" version)) (sha256 (base32 - "0p60z2gwfcal30y2w8gprflchp1kcg9qblc5rn782p4wxl90wjbh")))) + "0rda1j02ds6s28752fhmpwg761sh6jsxi1gpczqkrd28cki1cywv")))) (build-system python-build-system) (arguments ;; Tests would require a postgresql database "psycopg2_test" @@ -11746,13 +11732,13 @@ format.") (define-public python-twisted (package (name "python-twisted") - (version "16.2.0") + (version "17.1.0") (source (origin (method url-fetch) (uri (pypi-uri "Twisted" version ".tar.bz2")) (sha256 (base32 - "0ydxrp9myw1mvsz3qfzx5579y5llmqa82pxvqchgp5syczffi450")))) + "1p245mg15hkxp7hy5cyq2fgvlgjkb4cg0gwkwd148nzy1bbi3wnv")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; FIXME: Some tests are failing. @@ -11762,7 +11748,10 @@ format.") ;; (lambda _ ;; (zero? (system* "./bin/trial" "twisted"))))) (propagated-inputs - `(("python-zope-interface" ,python-zope-interface))) + `(("python-zope-interface" ,python-zope-interface) + ("python-incremental" ,python-incremental) + ("python-constantly" ,python-constantly) + ("python-automat" ,python-automat))) (home-page "https://twistedmatrix.com/") (synopsis "Asynchronous networking framework written in Python") (description @@ -14229,6 +14218,133 @@ Python. It is based on Parsing Expression Grammars, PEG. With pyPEG you can parse many formal languages.") (license license:gpl2))) +(define-public python-incremental + (package + (name "python-incremental") + (version "17.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "incremental" version)) + (sha256 + (base32 + "1cylxdz1cnkm5g3pklna3h2n0i0rks95ir1pnpxfnvpkmab1cxbv")))) + (build-system python-build-system) + (home-page "https://github.com/hawkowl/incremental") + (synopsis "Library for versioning Python projects") + (description "Incremental is a small library that versions your Python +projects.") + (license license:expat))) + +(define-public python2-incremental + (package-with-python2 python-incremental)) + +(define-public python-automat + (package + (name "python-automat") + (version "0.6.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "Automat" version)) + (sha256 + (base32 + "1a7nsrljysfmdqmpn2apfa1gg6rfah4y9sizvns8gb08rx7d07rw")))) + (build-system python-build-system) + ;; We disable the tests because they require python-twisted, while + ;; 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)) + (native-inputs + `(("python-m2r" ,python-m2r) + ("python-setuptools-scm" ,python-setuptools-scm) + ("python-graphviz" ,python-graphviz))) + (propagated-inputs + `(("python-six" ,python-six) + ("python-attrs" ,python-attrs))) + (home-page "https://github.com/glyph/Automat") + (synopsis "Self-service finite-state machines") + (description "Automat is a library for concise, idiomatic Python +expression of finite-state automata (particularly deterministic finite-state +transducers).") + (license license:expat))) + +(define-public python2-automat + (package-with-python2 python-automat)) + +(define-public python-m2r + (package + (name "python-m2r") + (version "0.1.12") + (source (origin + (method url-fetch) + (uri (pypi-uri "m2r" version)) + (sha256 + (base32 + "1axrwnf425sz4qz3c0qc7yhhki4myzb8rki7pczcsgzznzmqdyxd")))) + (build-system python-build-system) + (propagated-inputs + `(("python-docutils" ,python-docutils) + ("python-mistune" ,python-mistune))) + (native-inputs + `(("python-pygments" ,python-pygments) + ("python-mock" ,python-mock))) + (home-page "https://github.com/miyakogi/m2r") + (synopsis "Markdown to reStructuredText converter") + (description "M2R converts a markdown file including reST markups to valid +reST format.") + (license license:expat))) + +(define-public python2-m2r + (package-with-python2 python-m2r)) + +(define-public python-constantly + (package + (name "python-constantly") + (version "15.1.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "constantly" version)) + (sha256 + (base32 + "0dgwdla5kfpqz83hfril716inm41hgn9skxskvi77605jbmp4qsq")))) + (build-system python-build-system) + (home-page "https://github.com/twisted/constantly") + (synopsis "Symbolic constants in Python") + (description "Constantly is a Python library that provides symbolic +constant support. It includes collections and constants with text, numeric, +and bit flag values.") + (license license:expat))) + +(define-public python2-constantly + (package-with-python2 python-constantly)) + +(define-public python-attrs + (package + (name "python-attrs") + (version "17.2.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "attrs" version)) + (sha256 + (base32 + "04gx08ikpk26wnq22f7l42gapcvk8iz1512r927k6sadz6cinkax")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-hypothesis" ,python-hypothesis) + ("python-zope-interface" ,python-zope-interface) + ("python-six" ,python-six))) + (home-page "https://github.com/python-attrs/attrs/") + (synopsis "Attributes without boilerplate") + (description "@code{attrs} is a Python package with class decorators that +ease the chores of implementing the most common attribute-related object +protocols.") + (license license:expat))) + +(define-public python2-attrs + (package-with-python2 python-attrs)) + (define-public python2-cliapp (package (name "python2-cliapp") |