diff options
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r-- | gnu/packages/python.scm | 345 |
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)) |