summaryrefslogtreecommitdiff
path: root/gnu/packages/python.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r--gnu/packages/python.scm577
1 files changed, 559 insertions, 18 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 0daa921c4b..30acb09a1d 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -30,6 +30,7 @@
;;; Copyright © 2016 Stefan Reichoer <stefan@xsteve.at>
;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
;;; Copyright © 2016 Alex Vong <alexvong1995@gmail.com>
+;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -80,6 +81,7 @@
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages protobuf)
#:use-module (gnu packages readline)
#:use-module (gnu packages sdl)
#:use-module (gnu packages statistics)
@@ -87,6 +89,7 @@
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
+ #:use-module (gnu packages video)
#:use-module (gnu packages web)
#:use-module (gnu packages base)
#:use-module (gnu packages xml)
@@ -1605,6 +1608,28 @@ standard library.")
`(#:python ,python-2
#:tests? #f)))) ; no setup.py test command
+(define-public python-pafy
+ (package
+ (name "python-pafy")
+ (version "0.5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pafy" version))
+ (sha256
+ (base32
+ "1ckvrypyvb7jbqlgwdz0y337ajagjv7dgxyns326nqwypn1wpq0i"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ ;; Youtube-dl is a python package which is imported in the file
+ ;; "backend_youtube_dl.py", therefore it needs to be propagated.
+ `(("youtube-dl" ,youtube-dl)))
+ (home-page "https://np1.github.io/pafy/")
+ (synopsis "Retrieve YouTube content and metadata")
+ (description
+ "@code{pafy} is a python library to retrieve YouTube content and metadata.")
+ (license license:lgpl3+)))
+
(define-public python-py
(package
(name "python-py")
@@ -4535,14 +4560,14 @@ standard library.")
(define-public python-traitlets
(package
(name "python-traitlets")
- (version "4.1.0")
+ (version "4.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "traitlets" version))
(sha256
(base32
- "0nxgj8jxlm1kqf8cx2x7vjid05zdgbxpqhjbdl46r8njlpgkh3j4"))))
+ "1afy08sa5n9gnkvh3da49c16zkyv598vchv0p1hp7zzjy8895hz4"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -4568,37 +4593,165 @@ without using the configuration machinery.")
(define-public python2-traitlets
(package-with-python2 python-traitlets))
+(define-public python-jupyter-core
+ (package
+ (name "python-jupyter-core")
+ (version "4.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append (pypi-uri "jupyter_core" version)))
+ (sha256
+ (base32
+ "177d9csqldzhsh6xs1p4nf6lzvhzyg6gklqjf69lxgxyadx87v24"))))
+ (build-system python-build-system)
+ ;; FIXME: not sure how to run the tests
+ (arguments `(#:tests? #f))
+ (propagated-inputs
+ `(("python-traitlets" ,python-traitlets)))
+ (home-page "http://jupyter.org/")
+ (synopsis "Jupyter base package")
+ (description
+ "Jupyter core is the base package on which Jupyter projects rely.")
+ (license license:bsd-3)))
+
+(define-public python2-jupyter-core
+ (package-with-python2 python-jupyter-core))
+
+(define-public python-jupyter-client
+ (package
+ (name "python-jupyter-client")
+ (version "4.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jupyter_client" version))
+ (sha256
+ (base32
+ "1vjjrpjw7k5sh982pbjnslv7byfbfazjw9g92jvs7dz5qbx556n9"))))
+ (build-system python-build-system)
+ ;; Tests fail because of missing native python kernel which I assume is
+ ;; provided by the ipython package, which we cannot use because it would
+ ;; cause a dependency cycle.
+ (arguments `(#:tests? #f))
+ (propagated-inputs
+ `(("python-pyzmq" ,python-pyzmq)
+ ("python-traitlets" ,python-traitlets)
+ ("python-jupyter-core" ,python-jupyter-core)))
+ (home-page "http://jupyter.org/")
+ (synopsis "Jupyter protocol implementation and client libraries")
+ (description
+ "The @code{jupyter_client} package contains the reference implementation
+of the Jupyter protocol. It also provides client and kernel management APIs
+for working with kernels, and the @code{jupyter kernelspec} entrypoint for
+installing @code{kernelspec}s for use with Jupyter frontends.")
+ (license license:bsd-3)))
+
+(define-public python2-jupyter-client
+ (package-with-python2 python-jupyter-client))
+
+(define-public python-ipykernel
+ (package
+ (name "python-ipykernel")
+ (version "4.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ipykernel" version))
+ (sha256
+ (base32 "15c2bp1x3i6s4xb7vz7742h3kmvdfdfn9n2haywm3mwgvf77jni4"))))
+ (build-system python-build-system)
+ ;; The tests load a submodule of IPython. However, IPython itself depends
+ ;; on ipykernel.
+ (arguments `(#:tests? #f))
+ (propagated-inputs
+ ;; imported at runtime during connect
+ `(("python-jupyter-client" ,python-jupyter-client)))
+ (home-page "http://ipython.org")
+ (synopsis "IPython Kernel for Jupyter")
+ (description
+ "This package provides the IPython kernel for Jupyter.")
+ (license license:bsd-3)))
+
+(define-public python2-ipykernel
+ (package-with-python2 python-ipykernel))
+
+(define-public python-testpath
+ (package
+ (name "python-testpath")
+ (version "0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/jupyter/testpath/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "04kh3fgvmqz6cfcw79q70qwjz7ib7lxm27cc548iy2rpr33qqf55"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ; this package does not even have a setup.py
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'install)
+ (replace 'build
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((dir (string-append
+ (assoc-ref outputs "out")
+ "/lib/python"
+ (string-take (string-take-right
+ (assoc-ref inputs "python") 5) 3)
+ "/site-packages/testpath")))
+ (mkdir-p dir)
+ (copy-recursively "testpath" dir))
+ #t)))))
+ (home-page "https://github.com/takluyver/testpath")
+ (synopsis "Test utilities for code working with files and commands")
+ (description
+ "Testpath is a collection of utilities for Python code working with files
+and commands. It contains functions to check things on the filesystem, and
+tools for mocking system commands and recording calls to those.")
+ (license license:expat)))
+
+(define-public python2-testpath
+ (package-with-python2 python-testpath))
+
(define-public python-ipython
(package
(name "python-ipython")
- (version "3.2.1")
+ (version "4.0.0")
(source
(origin
(method url-fetch)
- (patches (search-patches "python-ipython-inputhook-ctype.patch"))
- (uri (string-append "https://pypi.python.org/packages/source/i/"
- "ipython/ipython-" version ".tar.gz"))
+ (uri (pypi-uri "ipython" version ".tar.gz"))
(sha256
- (base32 "0xwin0sa9n0cabx4cq1ibf5ldsiw5dyimibla82kicz5gbpas4y9"))))
+ (base32 "1npl8g6bfsff9j938ypx0q5fyzy2l8lp0jl8skjjj2zv0z27dlig"))))
(build-system python-build-system)
(outputs '("out" "doc"))
(propagated-inputs
`(("python-pyzmq" ,python-pyzmq)
- ("python-terminado" ,python-terminado)))
- (inputs
- `(("readline" ,readline)
- ("which" ,which)
+ ("python-terminado" ,python-terminado)
("python-matplotlib" ,python-matplotlib)
("python-numpy" ,python-numpy)
("python-numpydoc" ,python-numpydoc)
("python-jinja2" ,python-jinja2)
("python-mistune" ,python-mistune)
+ ("python-pexpect" ,python-pexpect)
+ ("python-pickleshare" ,python-pickleshare)
+ ("python-simplegeneric" ,python-simplegeneric)
("python-jsonschema" ,python-jsonschema)
- ("python-pygments" ,python-pygments)
- ("python-requests" ,python-requests) ;; for tests
- ("python-nose" ,python-nose)))
+ ("python-traitlets" ,python-traitlets)
+ ("python-ipykernel" ,python-ipykernel)
+ ("python-pygments" ,python-pygments)))
+ (inputs
+ `(("readline" ,readline)
+ ("which" ,which)))
(native-inputs
`(("pkg-config" ,pkg-config)
+ ("python-requests" ,python-requests) ;; for tests
+ ("python-testpath" ,python-testpath)
+ ("python-nose" ,python-nose)
("python-sphinx" ,python-sphinx)
("texlive" ,texlive)
("texinfo" ,texinfo)
@@ -4617,13 +4770,13 @@ without using the configuration machinery.")
(examples (string-append doc "/examples")))
(setenv "LANG" "en_US.utf8")
(with-directory-excursion "docs"
- ;; FIXME: html and pdf fail to build
- ;; (system* "make" "html")
- ;; (system* "make" "pdf" "PAPER=a4")
+ ;; FIXME: pdf fails to build
+ ;;(system* "make" "pdf" "PAPER=a4")
+ (system* "make" "html")
(system* "make" "info"))
(copy-recursively "docs/man" man1)
(copy-recursively "examples" examples)
- ;; (copy-recursively "docs/build/html" html)
+ (copy-recursively "docs/build/html" html)
;; (copy-file "docs/build/latex/ipython.pdf"
;; (string-append doc "/ipython.pdf"))
(mkdir-p info)
@@ -4732,6 +4885,22 @@ and written in Python.")
(define-public python2-html5lib
(package-with-python2 python-html5lib))
+;; Needed for python-bleach, a dependency of python-notebook
+(define-public python-html5lib-0.9
+ (package
+ (inherit python-html5lib)
+ (version "0.999")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "html5lib" version))
+ (sha256
+ (base32
+ "17n4zfsj6ynmbwdwviywmj8r6nzr3xvfx2zs0xhndmvm51z7z263"))))))
+
+(define-public python2-html5lib-0.9
+ (package-with-python2 python-html5lib-0.9))
+
(define-public python-urwid
(package
(name "python-urwid")
@@ -6618,6 +6787,302 @@ Debian-related files, such as:
(define-public python2-debian
(package-with-python2 python-debian))
+(define-public python-nbformat
+ (package
+ (name "python-nbformat")
+ (version "4.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "nbformat" version))
+ (sha256
+ (base32
+ "0mq8iki3d4mnx7wy05phss7x98mds4fqydin8lcagidp1knw1xnv"))))
+ (build-system python-build-system)
+ (arguments `(#:tests? #f)) ; no test target
+ (propagated-inputs
+ `(("python-ipython-genutils" ,python-ipython-genutils)
+ ("python-jsonschema" ,python-jsonschema)
+ ("python-jupyter-core" ,python-jupyter-core)
+ ("python-traitlets" ,python-traitlets)))
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)))
+ (home-page "http://jupyter.org")
+ (synopsis "Jupyter Notebook format")
+ (description "This package provides the reference implementation of the
+Jupyter Notebook format and Python APIs for working with notebooks.")
+ (license license:bsd-3)))
+
+(define-public python2-nbformat
+ (package-with-python2 python-nbformat))
+
+(define-public python-bleach
+ (package
+ (name "python-bleach")
+ (version "1.4.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "bleach" version))
+ (sha256
+ (base32
+ "0jvg3jxrvnx7xmm9gj262v60ib452xlnwlb0navyp7jsvcd0d4qj"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-html5lib" ,python-html5lib-0.9)
+ ("python-setuptools" ,python-setuptools)
+ ("python-six" ,python-six)))
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (home-page "http://github.com/jsocol/bleach")
+ (synopsis "Whitelist-based HTML-sanitizing tool")
+ (description "Bleach is an easy whitelist-based HTML-sanitizing tool.")
+ (license license:asl2.0)))
+
+(define-public python2-bleach
+ (package-with-python2 python-bleach))
+
+(define-public python-entrypoints
+ (package
+ (name "python-entrypoints")
+ (version "0.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/takluyver/entrypoints/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0azqlkh3j0za080lsf5crnhaxx3c93k9dpv5ihkhf5cppgw5sjz5"))))
+ (build-system python-build-system)
+ ;; The package does not come with a setup.py file, so we have to generate
+ ;; one ourselves.
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'create-setup.py
+ (lambda _
+ (call-with-output-file "setup.py"
+ (lambda (port)
+ (format port "\
+from setuptools import setup
+setup(name='entrypoints', version='~a', py_modules=['entrypoints'])
+" ,version))))))))
+ (home-page "https://github.com/takluyver/entrypoints")
+ (synopsis "Discover and load entry points from installed Python packages")
+ (description "Entry points are a way for Python packages to advertise
+objects with some common interface. The most common examples are
+@code{console_scripts} entry points, which define shell commands by
+identifying a Python function to run. The @code{entrypoints} module contains
+functions to find and load entry points.")
+ (license license:expat)))
+
+(define-public python2-entrypoints
+ (package-with-python2 python-entrypoints))
+
+(define-public python-nbconvert
+ (package
+ (name "python-nbconvert")
+ (version "5.0.0b1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "nbconvert" version))
+ (sha256
+ (base32
+ "0brclbb18l4nmd5qy3dl9wn05rjdh1fz4rmzdlfqacj12rcdvdgp"))))
+ (build-system python-build-system)
+ ;; The "bdist_egg" target is disabled by default, causing the installation
+ ;; to fail.
+ (arguments `(#:configure-flags (list "bdist_egg")))
+ (propagated-inputs
+ `(("python-bleach" ,python-bleach)
+ ("python-entrypoints" ,python-entrypoints)
+ ("python-jinja2" ,python-jinja2)
+ ("python-jupyter-core" ,python-jupyter-core)
+ ("python-mistune" ,python-mistune)
+ ("python-nbformat" ,python-nbformat)
+ ("python-pygments" ,python-pygments)
+ ("python-setuptools" ,python-setuptools)
+ ("python-traitlets" ,python-traitlets)))
+ (home-page "http://jupyter.org")
+ (synopsis "Converting Jupyter Notebooks")
+ (description "The @code{nbconvert} tool, @{jupyter nbconvert}, converts
+notebooks to various other formats via Jinja templates. It allows you to
+convert an @code{.ipynb} notebook file into various static formats including:
+
+@enumerate
+@item HTML
+@item LaTeX
+@item PDF
+@item Reveal JS
+@item Markdown (md)
+@item ReStructured Text (rst)
+@item executable script
+@end enumerate\n")
+ (license license:bsd-3)))
+
+(define-public python2-nbconvert
+ (package-with-python2 python-nbconvert))
+
+(define-public python-notebook
+ (package
+ (name "python-notebook")
+ (version "4.2.3")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "notebook" version))
+ (sha256
+ (base32
+ "0laq5c2f21frq6xcdckgq7raqhznbjb0qs0357g612z87wyn1a9r"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ ;; HOME must be set for tests
+ (setenv "HOME" "/tmp")
+ (zero? (system* "nosetests")))))))
+ (propagated-inputs
+ `(("python-jupyter-core" ,python-jupyter-core)
+ ("python-nbformat" ,python-nbformat)
+ ("python-nbconvert" ,python-nbconvert)
+ ("python-ipython" ,python-ipython)))
+ (native-inputs
+ `(("python-nose" ,python-nose)
+ ("python-sphinx" ,python-sphinx)
+ ("python-requests" ,python-requests)))
+ (home-page "http://jupyter.org/")
+ (synopsis "Web-based notebook environment for interactive computing")
+ (description
+ "The Jupyter HTML notebook is a web-based notebook environment for
+interactive computing.")
+ (license license:bsd-3)))
+
+(define-public python2-notebook
+ (package-with-python2 python-notebook))
+
+(define-public python-widgetsnbextension
+ (package
+ (name "python-widgetsnbextension")
+ (version "1.2.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "widgetsnbextension" version))
+ (sha256
+ (base32
+ "0lff2mrwrgsa1mxmwx3phl9xvy0jqfpg6khbmxy53jbq56rwy666"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-notebook" ,python-notebook)))
+ (native-inputs
+ `(("python-nose" ,python-nose)
+ ("python-setuptools" ,python-setuptools)))
+ (home-page "http://ipython.org")
+ (synopsis "IPython HTML widgets for Jupyter")
+ (description "This package provides interactive HTML widgets for Jupyter
+notebooks.")
+ (license license:bsd-3)))
+
+(define-public python2-widgetsnbextension
+ (package-with-python2 python-widgetsnbextension))
+
+(define-public python-ipywidgets
+ (package
+ (name "python-ipywidgets")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ipywidgets" version))
+ (sha256
+ (base32
+ "1lk0qrr5l9a0z7qkkn30hv5832whxwxymf1l576fmmad0n7hkxms"))))
+ (build-system python-build-system)
+ ;; FIXME: it's not clear how to run the tests.
+ (arguments `(#:tests? #f))
+ (propagated-inputs
+ `(("python-ipykernel" ,python-ipykernel)
+ ("python-ipython" ,python-ipython)
+ ("python-setuptools" ,python-setuptools)
+ ("python-traitlets" ,python-traitlets)
+ ("python-widgetsnbextension" ,python-widgetsnbextension)))
+ (home-page "http://ipython.org")
+ (synopsis "IPython HTML widgets for Jupyter")
+ (description "Ipywidgets are interactive HTML widgets for Jupyter
+notebooks and the IPython kernel. Notebooks come alive when interactive
+widgets are used. Users gain control of their data and can visualize changes
+in the data.")
+ (license license:bsd-3)))
+
+(define-public python2-ipywidgets
+ (package-with-python2 python-ipywidgets))
+
+(define-public python-jupyter-console
+ (package
+ (name "python-jupyter-console")
+ (version "5.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jupyter_console" version))
+ (sha256
+ (base32
+ "04acmkwsi99rcg3vb54c6n492zv35s92h2ahabc0w6wj976cipvx"))))
+ (build-system python-build-system)
+ ;; FIXME: it's not clear how to run the tests.
+ (arguments `(#:tests? #f))
+ (propagated-inputs
+ `(("python-ipykernel" ,python-ipykernel)
+ ("python-ipython" ,python-ipython)
+ ("python-jupyter-client" ,python-jupyter-client)
+ ("python-prompt-toolkit" ,python-prompt-toolkit)
+ ("python-pygments" ,python-pygments)
+ ("python-setuptools" ,python-setuptools)))
+ (home-page "https://jupyter.org")
+ (synopsis "Jupyter terminal console")
+ (description "This package provides a terminal-based console frontend for
+Jupyter kernels. It also allows for console-based interaction with non-Python
+Jupyter kernels such as IJulia and IRKernel.")
+ (license license:bsd-3)))
+
+(define-public python2-jupyter-console
+ (package-with-python2 python-jupyter-console))
+
+(define-public jupyter
+ (package
+ (name "jupyter")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jupyter" version))
+ (sha256
+ (base32
+ "0pwf3pminkzyzgx5kcplvvbvwrrzd3baa7lmh96f647k30rlpp6r"))))
+ (build-system python-build-system)
+ ;; FIXME: it's not clear how to run the tests.
+ (arguments `(#:tests? #f))
+ (propagated-inputs
+ `(("python-ipykernel" ,python-ipykernel)
+ ("python-ipywidgets" ,python-ipywidgets)
+ ("python-jupyter-console" ,python-jupyter-console)
+ ("python-nbconvert" ,python-nbconvert)
+ ("python-notebook" ,python-notebook)
+ ("python-setuptools" ,python-setuptools)))
+ (home-page "http://jupyter.org")
+ (synopsis "Web application for interactive documents")
+ (description
+ "The Jupyter Notebook is a web application that allows you to create and
+share documents that contain live code, equations, visualizations and
+explanatory text. Uses include: data cleaning and transformation, numerical
+simulation, statistical modeling, machine learning and much more.")
+ (license license:bsd-3)))
+
(define-public python-chardet
(package
(name "python-chardet")
@@ -11625,3 +12090,79 @@ PNG, JPEG, JPEG2000 and GIF files in pure Python.")
(inherit base)
(native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
+
+(define-public python-axolotl-curve25519
+ (package
+ (name "python-axolotl-curve25519")
+ (version "0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://github.com/tgalal/python-axolotl-curve25519")
+ (commit "e4a9c4de0eae27223200579c58d1f8f6d20637e2")))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0agap5q0hmvf6cwzjqc05kw53pjgf6942pcivpazksmg1vk400ra"))))
+ (build-system python-build-system)
+ (arguments
+ `(;; Prevent creation of the egg. This works around
+ ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765
+ #:configure-flags '("--root=/")))
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)))
+ (home-page "https://github.com/tgalal/python-axolotl-curve25519")
+ (synopsis "Python wrapper for curve25519 library")
+ (description "This is a python wrapper for the curve25519 library
+with ed25519 signatures. The C code was pulled from
+libaxolotl-android. At the moment this wrapper is meant for use by
+python-axolotl.")
+ (license (list license:gpl3 ; Most files
+ license:bsd-3)))) ; curve/curve25519-donna.c
+
+(define-public python2-axolotl-curve25519
+ (package-with-python2 python-axolotl-curve25519))
+
+(define-public python-axolotl
+ (package
+ (name "python-axolotl")
+ (version "0.1.35")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/tgalal/python-axolotl/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1z8d89p7v40p4bwywjm9h4z28fdvra79ddw06azlkrfjbl7dxmz8"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; Don't install tests
+ (add-before 'install 'remove-tests
+ (lambda _
+ (for-each delete-file-recursively
+ '("axolotl/tests" "build/lib/axolotl/tests"))
+ #t)))
+ ;; Prevent creation of the egg. This works around
+ ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765
+ #:configure-flags '("--root=/")))
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)))
+ (propagated-inputs
+ `(("python-axolotl-curve25519" ,python-axolotl-curve25519)
+ ("python-dateutil" ,python-dateutil)
+ ("python-protobuf" ,python-protobuf)
+ ("python-pycrypto" ,python-pycrypto)))
+ (home-page "https://github.com/tgalal/python-axolotl")
+ (synopsis "Python port of libaxolotl-android")
+ (description "This is a python port of libaxolotl-android. This
+is a ratcheting forward secrecy protocol that works in synchronous and
+asynchronous messaging environments.")
+ (license license:gpl3)))
+
+(define-public python2-axolotl
+ (package-with-python2 python-axolotl))