aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/python.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r--gnu/packages/python.scm345
1 files changed, 342 insertions, 3 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index ee9173b570..fc4fad6f98 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -32,7 +32,7 @@
#:use-module ((guix licenses)
#:select (asl2.0 bsd-4 bsd-3 bsd-2 non-copyleft cc0 x11 x11-style
gpl2 gpl2+ gpl3+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ agpl3+
- isc psfl public-domain x11-style))
+ isc psfl public-domain x11-style zpl2.1))
#:use-module ((guix licenses) #:select (expat zlib) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages attr)
@@ -1566,6 +1566,44 @@ and many external plugins.")
(define-public python2-pytest
(package-with-python2 python-pytest))
+(define-public python-pytest-runner
+ (package
+ (name "python-pytest-runner")
+ (version "2.6.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/p/"
+ "pytest-runner/pytest-runner-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1nwcqx0l3fv52kv8526wy8ypzghbq96c96di318d98d3wh7a8xg7"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; The fancy way of setting the version with setuptools_scm does not
+ ;; seem to work here.
+ (add-after 'unpack 'set-version
+ (lambda _
+ (substitute* "docs/conf.py"
+ (("version = setuptools_scm\\.get_version\\(root='\\.\\.')")
+ (string-append "version = \"" ,version "\"")))
+ #t)))))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-setuptools-scm" ,python-setuptools-scm)))
+ (home-page "https://bitbucket.org/pytest-dev/pytest-runner")
+ (synopsis "Invoke py.test as a distutils command")
+ (description
+ "This package provides a @command{pytest-runner} command that
+@file{setup.py} files can use to run tests.")
+ (license license:expat)))
+
+(define-public python2-pytest-runner
+ (package-with-python2 python-pytest-runner))
+
(define-public python-scripttest
(package
(name "python-scripttest")
@@ -1708,7 +1746,14 @@ protocol.")
(define-public python2-subunit
(package-with-python2 python-subunit))
-(define-public python-fixtures
+;; Recent versions of python-fixtures need a recent version of python-pbr,
+;; which needs a recent version of python-fixtures. To fix this circular
+;; dependency, we keep old versions of python-fixtures and python-pbr to
+;; bootstrap the whole thing:
+;; - python-fixtures-0.3.16 is used to build python-pbr-0.11
+;; - python-pbr-0.11 is used to build python-fixtures
+;; - python-fixtures is used to build python-pbr
+(define-public python-fixtures-0.3.16
(package
(name "python-fixtures")
(version "0.3.16")
@@ -1733,6 +1778,70 @@ protocol.")
Python tests.")
(license (list bsd-3 asl2.0)))) ; at user's option
+(define-public python2-fixtures-0.3.16
+ (package-with-python2 python-fixtures-0.3.16))
+
+(define-public python-pbr-0.11
+ (package
+ (name "python-pbr")
+ (version "0.11.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://pypi.python.org/packages/source/p/pbr/pbr-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0v9gb7gyqf7q9s99l0nnjj9ww9b0jvyqlwm4d56pcyinxydddw6p"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;; Most tests seem to use the Internet.
+ (inputs
+ `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16)
+ ("python-pip" ,python-pip)
+ ("python-setuptools" ,python-setuptools)))
+ (home-page "https://launchpad.net/pbr")
+ (synopsis "Change the default behavior of Python’s setuptools")
+ (description
+ "Python Build Reasonableness (PBR) is a library that injects some useful
+and sensible default behaviors into your setuptools run.")
+ (license asl2.0)))
+
+(define-public python2-pbr-0.11
+ (package-with-python2 python-pbr-0.11))
+
+(define-public python-fixtures
+ (package
+ (name "python-fixtures")
+ (version "1.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://pypi.python.org/packages/source/f/fixtures/fixtures-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1khpywdh91ijryhxjxiyyi5rmbimhl8hwbbf8lazhgzq6yxz6g5n"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-six" ,python-six)
+ ("python-pbr-0.11" ,python-pbr-0.11)))
+ (inputs
+ `(("python-pip" ,python-pip)
+ ("python-setuptools" ,python-setuptools)
+ ;; Tests
+ ("python-testtools" ,python-testtools)))
+ (arguments
+ '(#:tests? #f)) ; no setup.py test command
+ (home-page "https://launchpad.net/python-fixtures")
+ (synopsis "Python test fixture library")
+ (description
+ "Fixtures provides a way to create reusable state, useful when writing
+Python tests.")
+ (license (list bsd-3 asl2.0)))) ; at user's option
+
(define-public python2-fixtures
(package-with-python2 python-fixtures))
@@ -1751,7 +1860,7 @@ Python tests.")
"1ssqb07c277010i6gzzkbdd46gd9mrj0bi0i8vn560n2k2y4j93m"))))
(build-system python-build-system)
(propagated-inputs
- `(("python-fixtures" ,python-fixtures)
+ `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16)
("python-testtools" ,python-testtools)))
(inputs
`(("python-setuptools" ,python-setuptools)
@@ -3679,6 +3788,204 @@ cluster without needing to write any wrapper code yourself.")
(define-public python2-gridmap
(package-with-python2 python-gridmap))
+(define-public python-pexpect
+ (package
+ (name "python-pexpect")
+ (version "3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/p/"
+ "pexpect/pexpect-" version ".tar.gz"))
+ (sha256
+ (base32 "1fp5gm976z7ghm8jw57463rj19cv06c8zw842prgyg788f6n3snz"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check (lambda _ (zero? (system* "nosetests")))))))
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (home-page "http://pexpect.readthedocs.org/")
+ (synopsis "Controlling interactive console applications")
+ (description
+ "Pexpect is a pure Python module for spawning child applications;
+controlling them; and responding to expected patterns in their output.
+Pexpect works like Don Libes’ Expect. Pexpect allows your script to spawn a
+child application and control it as if a human were typing commands.")
+ (license isc)))
+
+(define-public python2-pexpect
+ (package-with-python2 python-pexpect))
+
+(define-public python-setuptools-scm
+ (package
+ (name "python-setuptools-scm")
+ (version "1.8.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/s/"
+ "setuptools_scm/setuptools_scm-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "00p60v2yfqy1r58pjcx9wy6dvqd7wkpfs5z1dzwf7y75c1g3dgyx"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/pypa/setuptools_scm/")
+ (synopsis "Manage Python package versions in SCM metadata")
+ (description
+ "setuptools_scm handles managing your Python package versions in
+@dfn{software configuration management} (SCM) metadata instead of declaring
+them as the version argument or in a SCM managed file.")
+ (license license:expat)))
+
+(define-public python2-setuptools-scm
+ (package-with-python2 python-setuptools-scm))
+
+(define-public python-pathpy
+ (package
+ (name "python-pathpy")
+ (version "8.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/p/"
+ "path.py/path.py-" version ".tar.gz"))
+ (sha256
+ (base32 "1p8s1l2vfkqhqxdhqlj0g1jjw4f1as2frr35sjcpjjpd5a89y41f"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-appdirs" ,python-appdirs)))
+ (native-inputs
+ `(("python-setuptools-scm" ,python-setuptools-scm)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-runner" ,python-pytest-runner)))
+ (home-page "http://github.com/jaraco/path.py")
+ (synopsis "Python module wrapper for built-in os.path")
+ (description
+ "@code{path.py} implements path objects as first-class entities, allowing
+common operations on files to be invoked on those path objects directly.")
+ (license license:expat)))
+
+(define-public python2-pathpy
+ (package-with-python2 python-pathpy))
+
+(define-public python-pickleshare
+ (package
+ (name "python-pickleshare")
+ (version "0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/p/"
+ "pickleshare/pickleshare-" version ".tar.gz"))
+ (sha256
+ (base32 "11ljr90j3p6qswdrbl7p4cjb2i93f6vn0vx9anzpshsx0d2mggn0"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-pathpy" ,python-pathpy)))
+ (home-page "https://github.com/vivainio/pickleshare")
+ (synopsis "Tiny key value database with concurrency support")
+ (description
+ "PickleShare is a small ‘shelve’-like datastore with concurrency support.
+Like shelve, a PickleShareDB object acts like a normal dictionary. Unlike
+shelve, many processes can access the database simultaneously. Changing a
+value in database is immediately visible to other processes accessing the same
+database. Concurrency is possible because the values are stored in separate
+files. Hence the “database” is a directory where all files are governed by
+PickleShare.")
+ (license license:expat)))
+
+(define-public python2-pickleshare
+ (package-with-python2 python-pickleshare))
+
+(define-public python-simplegeneric
+ (package
+ (name "python-simplegeneric")
+ (version "0.8.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/s/"
+ "simplegeneric/simplegeneric-" version ".zip"))
+ (sha256
+ (base32 "0wwi1c6md4vkbcsfsf8dklf3vr4mcdj4mpxkanwgb6jb1432x5yw"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (home-page "http://cheeseshop.python.org/pypi/simplegeneric")
+ (synopsis "Python module for simple generic functions")
+ (description
+ "The simplegeneric module lets you define simple single-dispatch generic
+functions, akin to Python’s built-in generic functions like @code{len()},
+@code{iter()} and so on. However, instead of using specially-named methods,
+these generic functions use simple lookup tables, akin to those used by
+e.g. @code{pickle.dump()} and other generic functions found in the Python
+standard library.")
+ (license zpl2.1)))
+
+(define-public python2-simplegeneric
+ (package-with-python2 python-simplegeneric))
+
+(define-public python-ipython-genutils
+ (package
+ (name "python-ipython-genutils")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/i/"
+ "ipython_genutils/ipython_genutils-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "19l2pp1c64ansr89l3cqh19jdi2ixhssdzx0vz4n6r52a6i281is"))))
+ (build-system python-build-system)
+ (arguments `(#:tests? #f)) ; no tests
+ (home-page "http://ipython.org")
+ (synopsis "Vestigial utilities from IPython")
+ (description
+ "This package provides retired utilities from IPython.")
+ (license bsd-3)))
+
+(define-public python2-ipython-genutils
+ (package-with-python2 python-ipython-genutils))
+
+(define-public python-traitlets
+ (package
+ (name "python-traitlets")
+ (version "4.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/t/"
+ "traitlets/traitlets-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0fr3w2xwb46c591dp7zw02bgf4d21mjy9g6rhwc9bwd4ji50n50b"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check (lambda _ (zero? (system* "nosetests")))))))
+ (propagated-inputs
+ `(("python-ipython-genutils" ,python-ipython-genutils)
+ ("python-decorator" ,python-decorator)))
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (home-page "http://ipython.org")
+ (synopsis "Configuration system for Python applications")
+ (description
+ "Traitlets is a framework that lets Python classes have attributes with
+type checking, dynamically calculated default values, and ‘on change’
+callbacks. The package also includes a mechanism to use traitlets for
+configuration, loading values from files or from command line arguments. This
+is a distinct layer on top of traitlets, so you can use traitlets in your code
+without using the configuration machinery.")
+ (license bsd-3)))
+
+(define-public python2-traitlets
+ (package-with-python2 python-traitlets))
+
(define-public python-ipython
(package
(name "python-ipython")
@@ -5268,3 +5575,35 @@ library.")
`(("python2-cryptography" ,python2-cryptography)
,@(alist-delete "python-cryptography"
(package-propagated-inputs pyopenssl)))))))
+
+(define-public python-pip
+ (package
+ (name "python-pip")
+ (version "7.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://pypi.python.org/packages/source/p/pip/pip-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0xx4aypfgchxdknxq7gyqghd8wb221zrzyqlbabzm32jy237j16a"))))
+ (build-system python-build-system)
+ (inputs
+ `(("python-setuptools" ,python-setuptools)
+ ("python-virtualenv" ,python-virtualenv)
+ ;; Tests
+ ("python-mock" ,python-mock)
+ ("python-pytest" ,python-pytest)
+ ("python-scripttest" ,python-scripttest)))
+ (home-page "https://pip.pypa.io/")
+ (synopsis
+ "Package manager for Python software")
+ (description
+ "Pip is a package manager for Python software, that finds packages on the
+Python Package Index (PyPI).")
+ (license license:expat)))
+
+(define-public python2-pip
+ (package-with-python2 python-pip))