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.scm179
1 files changed, 143 insertions, 36 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 9472a441ef..fd13339ccc 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -908,6 +908,29 @@ version identifier.")
(define-public python2-semantic-version
(package-with-python2 python-semantic-version))
+(define-public python-serpent
+ (package
+ (name "python-serpent")
+ (version "1.27")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "serpent" version))
+ (sha256
+ (base32
+ "04p9dsrm5pv8vhk3flvih55kgvlzpi38hlaykdiakddmgwqw93bg"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/irmen/Serpent")
+ (synopsis "Serializer for literal Python expressions")
+ (description
+ "Serpent provides ast.literal_eval() compatible object tree
+serialization. It serializes an object tree into bytes (utf-8 encoded string)
+that can be decoded and then passed as-is to ast.literal_eval() to rebuild it
+as the original object tree. As such it is safe to send serpent data to other
+machines over the network for instance (because only safe literals are
+encoded).")
+ (license license:expat)))
+
(define-public python-setuptools
(package
(name "python-setuptools")
@@ -1048,6 +1071,32 @@ for additional processing.")
(define-public python2-capturer
(package-with-python2 python-capturer))
+(define-public python-case
+ (package
+ (name "python-case")
+ (version "1.5.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "case" version))
+ (sha256
+ (base32
+ "1cagg06vfph864s6l5jb0zqliwxh647bki8j6lf4a4qrv40jnhs8"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-mock" ,python-mock)
+ ("python-nose" ,python-nose)
+ ("python-six" ,python-six)
+ ("python-unittest2" ,python-unittest2)))
+ (native-inputs
+ `(("python-coverage" ,python-coverage)))
+ (home-page "https://github.com/celery/case")
+ (synopsis "Unittest utilities and convenience methods")
+ (description
+ "The @code{case} package provides utilities on top of unittest, including
+some helpful Python 2 compatibility convenience methods.")
+ (license license:bsd-3)))
+
(define-public python-verboselogs
(package
(name "python-verboselogs")
@@ -2268,6 +2317,30 @@ object.")
(define-public python2-pyyaml
(package-with-python2 python-pyyaml))
+(define-public python-vine
+ (package
+ (name "python-vine")
+ (version "1.1.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "vine" version))
+ (sha256
+ (base32
+ "0wkskb2hb494v9gixqnf4bl972p4ibcmxdykzpwjlfa5picns4aj"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-case" ,python-case)))
+ (home-page "https://github.com/celery/vine")
+ (synopsis "Promises for Python")
+ (description
+ "@code{vine} provides a special implementation of promises in that it can
+be used both for \"promise of a value\" and lazy evaluation. The biggest
+upside for this is that everything in a promise can also be a promise,
+e.g. filters, callbacks and errbacks can all be promises.")
+ (license license:bsd-3)))
+
(define-public python-virtualenv
(package
(name "python-virtualenv")
@@ -8196,18 +8269,21 @@ and provides a uniform API regardless of which JSON implementation is used.")
(define-public python-amqp
(package
(name "python-amqp")
- (version "1.4.9")
+ (version "2.3.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "amqp" version))
(sha256
(base32
- "06n6q0kxhjnbfz3vn8x9yz09lwmn1xi9d6wxp31h5jbks0b4vsid"))))
+ "1sv600dgqwpimr6i1g59y9hpn50mc236gdqkr7zin13kvlpx0g87"))))
(build-system python-build-system)
(native-inputs
- `(("python-nose" ,python-nose)
+ `(("python-case" ,python-case)
+ ("python-pytest-sugar" ,python-pytest-sugar)
("python-mock" ,python-mock)))
+ (propagated-inputs
+ `(("python-vine" ,python-vine)))
(home-page "https://github.com/celery/py-amqp")
(synopsis
"Low-level AMQP client for Python (fork of amqplib)")
@@ -8261,23 +8337,26 @@ applications.")
(define-public python-kombu
(package
(name "python-kombu")
- (version "3.0.37")
+ (version "4.2.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "kombu" version))
(sha256
(base32
- "0l16chb314gpq2v7fh94a22c30lcv6w3ylmhsa60bldlcq6a0r70"))))
+ "15k8f7mzqr049sg9vi48m19vjykviafk3f0p5xzgw9by0x0kyxjj"))))
(build-system python-build-system)
(native-inputs
`(("python-mock" ,python-mock)
- ("python-nose" ,python-nose)))
+ ("python-case" ,python-case)
+ ("python-pyro4" ,python-pyro4)
+ ("python-pytest-sugar" ,python-pytest-sugar)
+ ("python-pytz" ,python-pytz)))
(propagated-inputs
`(("python-anyjson" ,python-anyjson)
("python-amqp" ,python-amqp)
("python-redis" ,python-redis)))
- (home-page "http://kombu.readthedocs.org")
+ (home-page "https://kombu.readthedocs.io")
(synopsis "Message passing library for Python")
(description "The aim of Kombu is to make messaging in Python as easy as
possible by providing an idiomatic high-level interface for the AMQ protocol,
@@ -8303,17 +8382,18 @@ RabbitMQ messaging server is the most popular implementation.")
(define-public python-billiard
(package
(name "python-billiard")
- (version "3.3.0.23")
+ (version "3.5.0.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "billiard" version))
(sha256
(base32
- "02wxsc6bhqvzh8j6w758kvgqbnj14l796mvmrcms8fgfamd2lak9"))))
+ "03msmapj3s5zgqk87d646mafz7a01h5bm2wijalgpi0s80ks5na2"))))
(build-system python-build-system)
(native-inputs
- `(("python-nose" ,python-nose)))
+ `(("python-case" ,python-case)
+ ("python-pytest" ,python-pytest)))
(home-page "https://github.com/celery/billiard")
(synopsis
"Python multiprocessing fork with improvements and bugfixes")
@@ -8337,31 +8417,35 @@ Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.")
(define-public python-celery
(package
(name "python-celery")
- (version "3.1.24")
+ (version "4.2.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "celery" version))
(sha256
(base32
- "0yh2prhdnx2dgkb67a5drj12hh2zvzx5f611p7mqqg01ydghif4r"))))
+ "0y66rz7z8dfcgs3s0qxmdddlaq57bzbgxgfz896nbp14grkv9nkp"))))
(build-system python-build-system)
(arguments
- `(#:phases
+ '(;; TODO The tests fail with Python 3.7
+ ;; https://github.com/celery/celery/issues/4849
+ #:tests? #f
+ #:phases
(modify-phases %standard-phases
- ;; These tests break with Python 3.5:
- ;; https://github.com/celery/celery/issues/2897#issuecomment-253066295
- (replace 'check
+ (add-after 'unpack 'patch-requirements
(lambda _
- (zero?
- (system* "nosetests" "--exclude=^test_safe_to_remove.*")))))))
+ (substitute* "requirements/test.txt"
+ (("pytest>=3\\.0,<3\\.3")
+ "pytest>=3.0"))
+ #t)))))
(native-inputs
- `(("python-nose" ,python-nose)))
+ `(("python-case" ,python-case)
+ ("python-pytest" ,python-pytest)))
(propagated-inputs
`(("python-pytz" ,python-pytz)
("python-billiard" ,python-billiard)
("python-kombu" ,python-kombu)))
- (home-page "http://celeryproject.org")
+ (home-page "https://celeryproject.org")
(synopsis "Distributed Task Queue")
(description "Celery is an asynchronous task queue/job queue based on
distributed message passing. It is focused on real-time operation, but
@@ -9226,6 +9310,13 @@ graphviz.")
(setenv "CPATH"
(string-append greenlet "/" python)))))
#t))
+ (add-before 'check 'skip-timer-test
+ (lambda _
+ ;; XXX: Skip 'TestTimerResolution', which appears to be
+ ;; unreliable.
+ (substitute* "src/greentest/test__core_timer.py"
+ (("not greentest.RUNNING_ON_CI") "False"))
+ #t))
(replace 'check
(lambda _
;; Make sure the build directory is on PYTHONPATH.
@@ -9266,17 +9357,6 @@ to provide a high-level synchronous API on top of the libev event loop.")
(strip-python2-variant python-gevent))))
(package
(inherit base)
- (arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-before 'check 'skip-timer-test
- (lambda _
- ;; XXX: Skip 'TestTimerResolution', which appears to be
- ;; unreliable.
- (substitute* "src/greentest/test__core_timer.py"
- (("not greentest.RUNNING_ON_CI") "False"))
- #t))))))
(native-inputs `(,@(package-native-inputs python-gevent)
("python-mock" ,python2-mock))))))
@@ -9841,20 +9921,25 @@ characters, mouse support, and auto suggestions.")
(define-public python-jedi
(package
(name "python-jedi")
- (version "0.12.1")
+ (version "0.13.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jedi" version))
(sha256
(base32
- "1h8ypnjisn57kiv1zqrkj1im6sbfnhxllqaa8znh39qkd47ys2dl"))))
+ "0j11q42g5vjkyhhjpyy8nb0gdxs78m3rpjai7p1hvgpyl9rkyjdp"))))
(build-system python-build-system)
(arguments
- `(#:phases
+ `( ;; Many tests are failing with Python 3.7.x as of version 0.13.1 (see:
+ ;; https://github.com/davidhalter/jedi/issues/1263)
+ #:tests? #f
+ #:phases
(modify-phases %standard-phases
- (replace 'check (lambda _
- (invoke "py.test" "-vv"))))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "py.test" "-vv")))))))
(native-inputs
`(("python-pytest" ,python-pytest)
("python-docopt" ,python-docopt)))
@@ -13258,6 +13343,28 @@ such as figshare or Zenodo.")
(define-public python2-semver
(package-with-python2 python-semver))
+(define-public python-pyro4
+ (package
+ (name "python-pyro4")
+ (version "4.74")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Pyro4" version))
+ (sha256
+ (base32
+ "0pzp7c6q3vvkxq0wy9lr6wd5wky40sajz69g697i5rb2q497pvc9"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-serpent" ,python-serpent)))
+ (home-page "https://pyro4.readthedocs.io")
+ (synopsis "Distributed object middleware for Python")
+ (description
+ "Pyro enables you to build applications in which objects can talk to each
+other over the network. You can just use normal Python method calls to call
+objects on other machines, also known as remote procedure calls (RPC).")
+ (license license:expat)))
+
(define-public python2-pyro
(package
(name "python2-pyro")