gnu: python-pillow: Update to 3.3.1.
[jackhill/guix/guix.git] / gnu / packages / python.scm
CommitLineData
a01b6da7
NK
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
48b311b1 3;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
8e451885 4;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
e99f4211 5;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
a480bc41 6;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
da6ce3f1 7;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
e99f4211 8;;; Copyright © 2015 Omar Radwan <toxemicsquire4@gmail.com>
d95a56c6 9;;; Copyright © 2015 Pierre-Antoine Rault <par@rigelk.eu>
534db463 10;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
0bdc1671 11;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
345f0611 12;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
2b2f2fc1 13;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
6a44697d 14;;; Copyright © 2015, 2016 Leo Famulari <leo@famulari.name>
02a8a187 15;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com>
b9893908 16;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com>
264ae686 17;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
1872f1bb 18;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
daeeea71 19;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com>
b31fbea5 20;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
88bb4197 21;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
b8fdbca3 22;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
0de78c95 23;;; Copyright © 2016 Daniel Pimentel <d4n1@d4n1.org>
9250b0f3 24;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
47d0b292 25;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
42c4b246 26;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
6eb7af2a 27;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
3f641af0 28;;; Copyright © 2016 David Craven <david@craven.ch>
dddcb25c 29;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
a01b6da7
NK
30;;;
31;;; This file is part of GNU Guix.
32;;;
33;;; GNU Guix is free software; you can redistribute it and/or modify it
34;;; under the terms of the GNU General Public License as published by
35;;; the Free Software Foundation; either version 3 of the License, or (at
36;;; your option) any later version.
37;;;
38;;; GNU Guix is distributed in the hope that it will be useful, but
39;;; WITHOUT ANY WARRANTY; without even the implied warranty of
40;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
41;;; GNU General Public License for more details.
42;;;
43;;; You should have received a copy of the GNU General Public License
44;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
45
1ffa7090 46(define-module (gnu packages python)
3f641af0 47 #:use-module ((guix licenses) #:prefix license:)
3fdc99da 48 #:use-module (gnu packages)
8e451885 49 #:use-module (gnu packages algebra)
d79a343b 50 #:use-module (gnu packages adns)
89b2e0b0 51 #:use-module (gnu packages attr)
d96034ed 52 #:use-module (gnu packages backup)
1ffa7090 53 #:use-module (gnu packages compression)
4ed20663 54 #:use-module (gnu packages databases)
5e1c9367 55 #:use-module (gnu packages file)
4ed20663 56 #:use-module (gnu packages fontutils)
4ed20663
AE
57 #:use-module (gnu packages gcc)
58 #:use-module (gnu packages ghostscript)
6eb7af2a 59 #:use-module (gnu packages gl)
4ed20663 60 #:use-module (gnu packages glib)
6eb7af2a 61 #:use-module (gnu packages gstreamer)
4ed20663 62 #:use-module (gnu packages gtk)
421a80a2 63 #:use-module (gnu packages icu4c)
c937562e 64 #:use-module (gnu packages image)
4ed20663 65 #:use-module (gnu packages imagemagick)
d79a343b 66 #:use-module (gnu packages libevent)
b10ab723 67 #:use-module (gnu packages libffi)
89b2e0b0 68 #:use-module (gnu packages linux)
0da98533 69 #:use-module (gnu packages maths)
4ed20663 70 #:use-module (gnu packages multiprecision)
45203542 71 #:use-module (gnu packages networking)
be7134bf 72 #:use-module (gnu packages ncurses)
c9b1b4f9 73 #:use-module (gnu packages pcre)
4ed20663 74 #:use-module (gnu packages perl)
b10ab723 75 #:use-module (gnu packages pkg-config)
4ed20663 76 #:use-module (gnu packages readline)
6eb7af2a 77 #:use-module (gnu packages sdl)
c9b1b4f9 78 #:use-module (gnu packages statistics)
8f9ac901 79 #:use-module (gnu packages tex)
1c65314c 80 #:use-module (gnu packages texinfo)
cc2b77df 81 #:use-module (gnu packages tls)
e25f0174 82 #:use-module (gnu packages version-control)
8d12be1e 83 #:use-module (gnu packages web)
ce0614dd 84 #:use-module (gnu packages base)
26b307e2 85 #:use-module (gnu packages xml)
6fa14469 86 #:use-module (gnu packages xorg)
0bdc1671 87 #:use-module (gnu packages xdisorg)
4ed20663 88 #:use-module (gnu packages zip)
afa181ff 89 #:use-module (gnu packages tcl)
63bcec71
DM
90 #:use-module (gnu packages bdw-gc)
91 #:use-module (gnu packages pcre)
a01b6da7
NK
92 #:use-module (guix packages)
93 #:use-module (guix download)
ea5456c8 94 #:use-module (guix git-download)
11bb85a1 95 #:use-module (guix utils)
acc26ff1 96 #:use-module (guix build-system gnu)
d8c4998f 97 #:use-module (guix build-system cmake)
898238b9 98 #:use-module (guix build-system python)
1c65314c
FB
99 #:use-module (guix build-system trivial)
100 #:use-module (srfi srfi-1))
a01b6da7 101
45848023 102(define-public python-2.7
a01b6da7
NK
103 (package
104 (name "python")
e7e7a1eb 105 (version "2.7.11")
a01b6da7
NK
106 (source
107 (origin
108 (method url-fetch)
9b43a0ff 109 (uri (string-append "https://www.python.org/ftp/python/"
a01b6da7
NK
110 version "/Python-" version ".tar.xz"))
111 (sha256
112 (base32
e7e7a1eb 113 "0iiz844riiznsyhhyy962710pz228gmhv8qi3yk4w4jhmx2lqawn"))
c3052d6b
ML
114 (patches (search-patches "python-2.7-search-paths.patch"
115 "python-2-deterministic-build-info.patch"
116 "python-2.7-source-date-epoch.patch"))
10a42aa2
EF
117 (modules '((guix build utils)))
118 ;; suboptimal to delete failing tests here, but if we delete them in the
119 ;; arguments then we need to make sure to strip out that phase when it
120 ;; gets inherited by python and python-minimal.
121 (snippet
122 '(begin
123 (for-each delete-file
124 '("Lib/test/test_compileall.py"
125 "Lib/test/test_distutils.py"
126 "Lib/test/test_import.py"
127 "Lib/test/test_shutil.py"
128 "Lib/test/test_socket.py"
1bb163b0 129 "Lib/test/test_subprocess.py"))
10a42aa2 130 #t))))
02f0c3b2
LC
131 (outputs '("out"
132 "tk")) ;tkinter; adds 50 MiB to the closure
a01b6da7 133 (build-system gnu-build-system)
3fdc99da 134 (arguments
10a42aa2 135 `(;; 356 tests OK.
e7e7a1eb
EF
136 ;; 6 tests failed:
137 ;; test_compileall test_distutils test_import test_shutil test_socket
138 ;; test_subprocess
139 ;; 39 tests skipped:
ff6f33cf
ED
140 ;; test_aepack test_al test_applesingle test_bsddb test_bsddb185
141 ;; test_bsddb3 test_cd test_cl test_codecmaps_cn test_codecmaps_hk
e7e7a1eb
EF
142 ;; test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_curses
143 ;; test_dl test_gdb test_gl test_imageop test_imgfile test_ioctl
144 ;; test_kqueue test_linuxaudiodev test_macos test_macostools
145 ;; test_msilib test_ossaudiodev test_scriptpackages test_smtpnet
146 ;; test_socketserver test_startfile test_sunaudiodev test_timeout
147 ;; test_tk test_ttk_guionly test_urllib2net test_urllibnet
148 ;; test_winreg test_winsound test_zipfile64
149 ;; 4 skips unexpected on linux2:
150 ;; test_bsddb test_bsddb3 test_gdb test_ioctl
af807dea 151 #:test-target "test"
3fdc99da 152 #:configure-flags
6a20289d
LC
153 (list "--enable-shared" ;allow embedding
154 "--with-system-ffi" ;build ctypes
155 (string-append "LDFLAGS=-Wl,-rpath="
156 (assoc-ref %outputs "out") "/lib"))
fd982732 157
d2cc9c7c
LC
158 #:modules ((ice-9 ftw) (ice-9 match)
159 (guix build utils) (guix build gnu-build-system))
fd982732 160 #:phases
46472ecd
MW
161 (modify-phases %standard-phases
162 (add-before
163 'configure 'patch-lib-shells
164 (lambda _
165 ;; Filter for existing files, since some may not exist in all
166 ;; versions of python that are built with this recipe.
167 (substitute* (filter file-exists?
168 '("Lib/subprocess.py"
169 "Lib/popen2.py"
170 "Lib/distutils/tests/test_spawn.py"
171 "Lib/test/test_subprocess.py"))
172 (("/bin/sh") (which "sh")))
dedc8320
LC
173
174 ;; Use zero as the timestamp in .pyc files so that builds are
175 ;; deterministic. TODO: Remove it when this variable is set in
176 ;; gnu-build-system.scm.
a665996f 177 (setenv "SOURCE_DATE_EPOCH" "1")
46472ecd 178 #t))
5b4e2791
LC
179 (add-before 'configure 'do-not-record-configure-flags
180 (lambda* (#:key configure-flags #:allow-other-keys)
181 ;; Remove configure flags from the installed '_sysconfigdata.py'
182 ;; and 'Makefile' so we don't end up keeping references to the
183 ;; build tools.
184 ;;
185 ;; Preserve at least '--with-system-ffi' since otherwise the
186 ;; thing tries to build libffi, fails, and we end up with a
187 ;; Python that lacks ctypes.
188 (substitute* "configure"
189 (("^CONFIG_ARGS=.*$")
190 (format #f "CONFIG_ARGS='~a'\n"
191 (if (member "--with-system-ffi" configure-flags)
192 "--with-system-ffi"
193 ""))))
194 #t))
46472ecd
MW
195 (add-before
196 'check 'pre-check
197 (lambda _
198 ;; 'Lib/test/test_site.py' needs a valid $HOME
199 (setenv "HOME" (getcwd))
1bb163b0
LC
200 ,@(if (string-prefix? "mips64el" (%current-system))
201
202 ;; XXX: The following test fails on mips64el.
203 '((false-if-exception
204 (delete-file "Lib/test/test_ctypes.py")))
205
206 '())
46472ecd
MW
207 #t))
208 (add-after
209 'unpack 'set-source-file-times-to-1980
210 ;; XXX One of the tests uses a ZIP library to pack up some of the
211 ;; source tree, and fails with "ZIP does not support timestamps
212 ;; before 1980". Work around this by setting the file times in the
213 ;; source tree to sometime in early 1980.
214 (lambda _
215 (let ((circa-1980 (* 10 366 24 60 60)))
216 (ftw "." (lambda (file stat flag)
217 (utime file circa-1980 circa-1980)
218 #t))
02f0c3b2 219 #t)))
9ffe61b0
LC
220 (add-after 'install 'remove-tests
221 ;; Remove 25 MiB of unneeded unit tests. Keep test_support.*
222 ;; because these files are used by some libraries out there.
223 (lambda* (#:key outputs #:allow-other-keys)
224 (let ((out (assoc-ref outputs "out")))
225 (match (scandir (string-append out "/lib")
226 (lambda (name)
227 (string-prefix? "python" name)))
228 ((pythonX.Y)
229 (let ((testdir (string-append out "/lib/" pythonX.Y
230 "/test")))
231 (with-directory-excursion testdir
232 (for-each delete-file-recursively
233 (scandir testdir
234 (match-lambda
235 ((or "." "..") #f)
236 (file
237 (not
238 (string-prefix? "test_support."
239 file))))))
240 (call-with-output-file "__init__.py" (const #t))
241 #t)))))))
216c283b
LC
242 (add-before 'strip 'make-libraries-writable
243 (lambda* (#:key outputs #:allow-other-keys)
244 ;; Make .so files writable so they can be stripped.
245 (let ((out (assoc-ref outputs "out")))
246 (for-each (lambda (file)
247 (chmod file #o755))
248 (find-files (string-append out "/lib")
249 "\\.so"))
250 #t)))
02f0c3b2
LC
251 (add-after 'install 'move-tk-inter
252 (lambda* (#:key outputs #:allow-other-keys)
253 ;; When Tkinter support is built move it to a separate output so
254 ;; that the main output doesn't contain a reference to Tcl/Tk.
255 (let ((out (assoc-ref outputs "out"))
256 (tk (assoc-ref outputs "tk")))
257 (when tk
258 (match (find-files out "tkinter.*\\.so")
259 ((tkinter.so)
260 ;; The .so is in OUT/lib/pythonX.Y/lib-dynload, but we
261 ;; want it under TK/lib/pythonX.Y/site-packages.
262 (let* ((len (string-length out))
263 (target (string-append
264 tk "/"
265 (string-drop
266 (dirname (dirname tkinter.so))
267 len)
268 "/site-packages")))
269 (install-file tkinter.so target)
270 (delete-file tkinter.so)))))
271 #t))))))
a01b6da7 272 (inputs
3fdc99da
CR
273 `(("bzip2" ,bzip2)
274 ("gdbm" ,gdbm)
b10ab723 275 ("libffi" ,libffi) ; for ctypes
b88e1b0a 276 ("sqlite" ,sqlite) ; for sqlite extension
a01b6da7 277 ("openssl" ,openssl)
3fdc99da 278 ("readline" ,readline)
afa181ff
LC
279 ("zlib" ,zlib)
280 ("tcl" ,tcl)
281 ("tk" ,tk))) ; for tkinter
b10ab723
CR
282 (native-inputs
283 `(("pkg-config" ,pkg-config)))
9be8d7c8
LC
284 (native-search-paths
285 (list (search-path-specification
286 (variable "PYTHONPATH")
af070955 287 (files '("lib/python2.7/site-packages")))))
a01b6da7 288 (home-page "http://python.org")
afa181ff 289 (synopsis "High-level, dynamically-typed programming language")
a01b6da7
NK
290 (description
291 "Python is a remarkably powerful dynamic programming language that
292is used in a wide variety of application domains. Some of its key
293distinguishing features include: clear, readable syntax; strong
294introspection capabilities; intuitive object orientation; natural
295expression of procedural code; full modularity, supporting hierarchical
296packages; exception-based error handling; and very high level dynamic
297data types.")
3f641af0 298 (license license:psfl)))
acc26ff1 299
45848023
HG
300;; Current 2.x version.
301(define-public python-2 python-2.7)
302
303(define-public python-3.4
b24d1cfc 304 (package (inherit python-2)
08c04509 305 (version "3.4.3")
717003e3
LC
306 (source (origin
307 (method url-fetch)
308 (uri (string-append "https://www.python.org/ftp/python/"
309 version "/Python-" version ".tar.xz"))
fc1adab1
AK
310 (patches (search-patches
311 "python-fix-tests.patch"
312 ;; XXX Try removing this patch for python > 3.4.3
313 "python-disable-ssl-test.patch"
314 "python-3-deterministic-build-info.patch"
315 "python-3-search-paths.patch"))
717003e3
LC
316 (patch-flags '("-p0"))
317 (sha256
318 (base32
08c04509 319 "1f4nm4z08sy0kqwisvv95l02crv6dyysdmx44p1mz3bn6csrdcxm"))))
1f434457
MW
320 (arguments (substitute-keyword-arguments (package-arguments python-2)
321 ((#:tests? _) #t)))
1aebc0cb
AE
322 (native-search-paths
323 (list (search-path-specification
324 (variable "PYTHONPATH")
0e05d01e
SB
325 (files (list (string-append "lib/python"
326 (version-major+minor version)
327 "/site-packages"))))))))
f26a77ff 328
45848023
HG
329;; Current 3.x version.
330(define-public python-3 python-3.4)
331
332;; Current major version.
333(define-public python python-3)
334
95288fcc
LC
335;; Minimal variants of Python, mostly used to break the cycle between Tk and
336;; Python (Tk -> libxcb -> Python.)
337
338(define-public python2-minimal
339 (package (inherit python-2)
340 (name "python-minimal")
02f0c3b2 341 (outputs '("out"))
95288fcc
LC
342 (arguments
343 (substitute-keyword-arguments (package-arguments python-2)
c5a05e31
LC
344 ((#:configure-flags cf)
345 `(append ,cf '("--without-system-ffi")))))
95288fcc
LC
346 (inputs '()))) ;none of the optional dependencies
347
348(define-public python-minimal
898238b9 349 (package (inherit python)
95288fcc 350 (name "python-minimal")
02f0c3b2 351 (outputs '("out"))
95288fcc
LC
352 (arguments
353 (substitute-keyword-arguments (package-arguments python)
c5a05e31
LC
354 ((#:configure-flags cf)
355 `(append ,cf '("--without-system-ffi")))))
95288fcc
LC
356
357 ;; OpenSSL is a mandatory dependency of Python 3.x, for urllib;
358 ;; zlib is required by 'zipimport', used by pip.
359 (inputs `(("openssl" ,openssl)
360 ("zlib" ,zlib)))))
361
64cb064c
LC
362(define* (wrap-python3 python
363 #:optional
364 (name (string-append (package-name python) "-wrapper")))
898238b9 365 (package (inherit python)
95288fcc 366 (name name)
898238b9
AE
367 (source #f)
368 (build-system trivial-build-system)
02f0c3b2 369 (outputs '("out"))
3c0f2329 370 (propagated-inputs `(("python" ,python)))
898238b9
AE
371 (arguments
372 `(#:modules ((guix build utils))
373 #:builder
374 (begin
375 (use-modules (guix build utils))
376 (let ((bin (string-append (assoc-ref %outputs "out") "/bin"))
377 (python (string-append (assoc-ref %build-inputs "python") "/bin/")))
378 (mkdir-p bin)
379 (for-each
380 (lambda (old new)
381 (symlink (string-append python old)
382 (string-append bin "/" new)))
187e9094
LF
383 '("python3" "pydoc3" "idle3")
384 '("python" "pydoc" "idle"))))))
0d56e3e1
LC
385 (synopsis "Wrapper for the Python 3 commands")
386 (description
387 "This package provides wrappers for the commands of Python@tie{}3.x such
388that they can be invoked under their usual name---e.g., @command{python}
389instead of @command{python3}.")))
390
95288fcc
LC
391(define-public python-wrapper (wrap-python3 python))
392(define-public python-minimal-wrapper (wrap-python3 python-minimal))
898238b9 393
aaf625b8
RW
394(define-public python-psutil
395 (package
396 (name "python-psutil")
88535a44 397 (version "4.3.0")
aaf625b8
RW
398 (source
399 (origin
400 (method url-fetch)
f56777be 401 (uri (pypi-uri "psutil" version))
aaf625b8
RW
402 (sha256
403 (base32
88535a44 404 "1w4r09fvn6kd80m5mx4ws1wz100brkaq6hzzpwrns8cgjzjpl6c6"))))
aaf625b8
RW
405 (build-system python-build-system)
406 (native-inputs
407 `(("python-setuptools" ,python-setuptools)))
88535a44 408 (home-page "https://www.github.com/giampaolo/psutil")
aaf625b8
RW
409 (synopsis "Library for retrieving information on running processes")
410 (description
411 "psutil (Python system and process utilities) is a library for retrieving
412information on running processes and system utilization (CPU, memory, disks,
413network) in Python. It is useful mainly for system monitoring, profiling and
414limiting process resources and management of running processes. It implements
415many functionalities offered by command line tools such as: ps, top, lsof,
416netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop, uptime,
417pidof, tty, taskset, pmap.")
3f641af0 418 (license license:bsd-3)))
aaf625b8
RW
419
420(define-public python2-psutil
421 (package-with-python2 python-psutil))
898238b9 422
f9da1d8a
ED
423(define-public python-passlib
424 (package
425 (name "python-passlib")
690e8c66 426 (version "1.6.5")
f9da1d8a
ED
427 (source
428 (origin
429 (method url-fetch)
690e8c66 430 (uri (pypi-uri "passlib" version))
f9da1d8a
ED
431 (sha256
432 (base32
690e8c66 433 "1z27wdxs5rj5xhhqfzvzn3yg682irkxw6dcs5jj7mcf97psk8gd8"))))
f9da1d8a
ED
434 (build-system python-build-system)
435 (native-inputs
436 `(("python-nose" ,python-nose)
437 ("python-setuptools" ,python-setuptools)))
438 (inputs
439 `(("python-py-bcrypt" ,python-py-bcrypt)))
440 (arguments
441 `(#:phases
442 (alist-cons-before
443 'check 'set-PYTHON_EGG_CACHE
444 ;; some tests require access to "$HOME/.cython"
445 (lambda* _ (setenv "PYTHON_EGG_CACHE" "/tmp"))
446 %standard-phases)))
447 (home-page "https://bitbucket.org/ecollins/passlib")
448 (synopsis
449 "Comprehensive password hashing framework")
450 (description
451 "Passlib is a password hashing library for Python 2 & 3, which provides
452cross-platform implementations of over 30 password hashing algorithms, as well
453as a framework for managing existing password hashes. It's designed to be
454useful for a wide range of tasks, from verifying a hash found in /etc/shadow,
455to providing full-strength password hashing for multi-user application.")
3f641af0 456 (license license:bsd-3)))
f9da1d8a
ED
457
458(define-public python2-passlib
459 (package-with-python2 python-passlib))
460
feb0d9c3
ED
461(define-public python-py-bcrypt
462 (package
463 (name "python-py-bcrypt")
464 (version "0.4")
465 (source
466 (origin
467 (method url-fetch)
468 (uri (string-append
469 "https://pypi.python.org/packages/source/p/py-bcrypt/py-bcrypt-"
470 version
471 ".tar.gz"))
472 (sha256
473 (base32
474 "0y6smdggwi5s72v6p1nn53dg6w05hna3d264cq6kas0lap73p8az"))))
475 (build-system python-build-system)
476 (native-inputs
477 `(("python-setuptools" ,python-setuptools)))
478 (home-page "https://code.google.com/p/py-bcrypt")
479 (synopsis
480 "Bcrypt password hashing and key derivation")
481 (description
482 "A python wrapper of OpenBSD's Blowfish password hashing code. This
483system hashes passwords using a version of Bruce Schneier's Blowfish block
484cipher with modifications designed to raise the cost of off-line password
485cracking and frustrate fast hardware implementation. The computation cost of
486the algorithm is parametised, so it can be increased as computers get faster.
487The intent is to make a compromise of a password database less likely to
488result in an attacker gaining knowledge of the plaintext passwords (e.g. using
489John the Ripper).")
490 ;; "sha2.c" is under BSD-3;
491 ;; "blowfish.c" and "bcrypt.c" are under BSD-4;
492 ;; the rest is under ISC.
3f641af0 493 (license (list license:isc license:bsd-3 license:bsd-4))))
feb0d9c3
ED
494
495(define-public python2-py-bcrypt
496 (package-with-python2 python-py-bcrypt))
497
498
429fdea1
ED
499(define-public python-paramiko
500 (package
501 (name "python-paramiko")
81b9bbbd 502 (version "1.16.0")
429fdea1
ED
503 (source
504 (origin
505 (method url-fetch)
81b9bbbd 506 (uri (pypi-uri "paramiko" version))
429fdea1
ED
507 (sha256
508 (base32
81b9bbbd 509 "14k8z7ndc3zk5xivnm4d8lncchx475ll5izpf8vmfbq7rp9yp5rj"))))
429fdea1
ED
510 (build-system python-build-system)
511 (native-inputs
512 `(("python-setuptools" ,python-setuptools)))
a3fc12da
CR
513 (propagated-inputs
514 `(("python-pycrypto" ,python-pycrypto)))
429fdea1 515 (inputs
a3fc12da 516 `(("python-ecdsa" ,python-ecdsa)))
429fdea1
ED
517 (home-page "http://www.paramiko.org/")
518 (synopsis "SSHv2 protocol library")
519 (description "Paramiko is a python implementation of the SSHv2 protocol,
520providing both client and server functionality. While it leverages a Python C
521extension for low level cryptography (PyCrypto), Paramiko itself is a pure
522Python interface around SSH networking concepts.")
3f641af0 523 (license license:lgpl2.1+)))
429fdea1
ED
524
525(define-public python2-paramiko
526 (package-with-python2 python-paramiko))
527
528
de73dbf6
ED
529(define-public python-httplib2
530 (package
531 (name "python-httplib2")
286f1bac 532 (version "0.9.2")
de73dbf6
ED
533 (source
534 (origin
535 (method url-fetch)
286f1bac 536 (uri (pypi-uri "httplib2" version))
de73dbf6
ED
537 (sha256
538 (base32
286f1bac 539 "126rsryvw9vhbf3qmsfw9lf4l4xm2srmgs439lgma4cpag4s3ay3"))))
de73dbf6
ED
540 (build-system python-build-system)
541 (native-inputs
542 `(("python-setuptools" ,python-setuptools)))
286f1bac 543 (home-page "https://github.com/jcgregorio/httplib2")
de73dbf6
ED
544 (synopsis "Comprehensive HTTP client library")
545 (description
546 "A comprehensive HTTP client library supporting many features left out of
547other HTTP libraries.")
548 (license license:expat)))
549
550(define-public python2-httplib2
551 (package-with-python2 python-httplib2))
552
67039875
ED
553(define-public python-ecdsa
554 (package
555 (name "python-ecdsa")
556 (version "0.13")
557 (source
558 (origin
559 (method url-fetch)
560 (uri (string-append
561 "https://pypi.python.org/packages/source/e/ecdsa/ecdsa-"
562 version
563 ".tar.gz"))
564 (sha256
565 (base32
566 "1yj31j0asmrx4an9xvsaj2icdmzy6pw0glfpqrrkrphwdpi1xkv4"))))
567 (build-system python-build-system)
568 (native-inputs
569 `(("python-setuptools" ,python-setuptools)))
570 (inputs
571 `(("openssl" ,openssl)))
572 (home-page
573 "http://github.com/warner/python-ecdsa")
574 (synopsis
575 "ECDSA cryptographic signature library (pure python)")
576 (description
577 "This is an easy-to-use implementation of ECDSA cryptography (Elliptic
578Curve Digital Signature Algorithm), implemented purely in Python. With this
579library, you can quickly create keypairs (signing key and verifying key), sign
580messages, and verify the signatures. The keys and signatures are very short,
581making them easy to handle and incorporate into other protocols.")
582 (license license:expat)))
583
584(define-public python2-ecdsa
585 (package-with-python2 python-ecdsa))
586
52323f32
ED
587(define-public python-ccm
588 (package
589 (name "python-ccm")
db5567f7 590 (version "2.1.6")
52323f32
ED
591 (source
592 (origin
593 (method url-fetch)
db5567f7 594 (uri (pypi-uri "ccm" version))
52323f32
ED
595 (sha256
596 (base32
db5567f7 597 "177dfxsmk3k4cih6fh6v8d91bh4nqx7ns6pc07w7m7i3cvdx3c8n"))))
52323f32
ED
598 (build-system python-build-system)
599 (native-inputs
600 `(("python-setuptools" ,python-setuptools)))
601 (inputs
602 `(("python-pyyaml" ,python-pyyaml)
603 ("python-six" ,python-six)))
604 (home-page "https://github.com/pcmanus/ccm")
605 (synopsis "Cassandra Cluster Manager")
606 (description "A script/library to create, launch and remove an Apache
607Cassandra cluster on localhost.")
3f641af0 608 (license license:asl2.0)))
52323f32
ED
609
610(define-public python2-ccm
611 (package-with-python2 python-ccm))
612
89114f39 613(define-public python-pytz
acc26ff1 614 (package
89114f39 615 (name "python-pytz")
61c9babb 616 (version "2016.3")
acc26ff1
CR
617 (source
618 (origin
619 (method url-fetch)
61c9babb 620 (uri (pypi-uri "pytz" version ".tar.bz2"))
acc26ff1
CR
621 (sha256
622 (base32
61c9babb 623 "1mjmrkk4vc5xzppw7fm0pli1nnbj57cvqv7jjv5whcmccyhxz4y1"))))
acc26ff1 624 (build-system python-build-system)
8498b8cf 625 (arguments `(#:tests? #f)) ; no test target
b01bbbcf 626 (home-page "http://pythonhosted.org/pytz")
9e771e3b 627 (synopsis "Python timezone library")
acc26ff1
CR
628 (description
629 "This library allows accurate and cross platform timezone calculations
630using Python 2.4 or higher and provides access to the Olson timezone database.")
b01bbbcf 631 (license license:expat)))
5ace6e2f 632
89114f39 633(define-public python2-pytz
11bb85a1 634 (package-with-python2 python-pytz))
89114f39 635
fc50e9c6 636
89114f39 637(define-public python-babel
5ace6e2f 638 (package
89114f39 639 (name "python-babel")
3f37db6b 640 (version "2.3.2")
5ace6e2f
CR
641 (source
642 (origin
643 (method url-fetch)
b850a6d8 644 (uri (pypi-uri "Babel" version))
5ace6e2f
CR
645 (sha256
646 (base32
3f37db6b 647 "0k43pi0p1dwpds2w0km3fw92wixzxv2vw7p09capxmjz5cfh23lw"))))
5ace6e2f
CR
648 (build-system python-build-system)
649 (inputs
e1804763
AE
650 `(("python-pytz" ,python-pytz)
651 ("python-setuptools" ,python-setuptools)))
8498b8cf 652 (arguments `(#:tests? #f)) ; no test target
e1804763 653 (home-page "http://babel.pocoo.org/")
5ace6e2f
CR
654 (synopsis
655 "Tools for internationalizing Python applications")
656 (description
657 "Babel is composed of two major parts:
658- tools to build and work with gettext message catalogs
659- a Python interface to the CLDR (Common Locale Data Repository), providing
660access to various locale display names, localized number and date formatting,
661etc. ")
3f641af0 662 (license license:bsd-3)))
89114f39
AE
663
664(define-public python2-babel
11bb85a1 665 (package-with-python2 python-babel))
73adf220 666
ed377cc6
RW
667(define-public python2-backport-ssl-match-hostname
668 (package
669 (name "python2-backport-ssl-match-hostname")
f2d06d46 670 (version "3.5.0.1")
ed377cc6
RW
671 (source
672 (origin
673 (method url-fetch)
674 (uri (string-append
675 "https://pypi.python.org/packages/source/b/"
676 "backports.ssl_match_hostname/backports.ssl_match_hostname-"
677 version ".tar.gz"))
678 (sha256
679 (base32
f2d06d46 680 "1wndipik52cyqy0677zdgp90i435pmvwd89cz98lm7ri0y3xjajh"))))
ed377cc6 681 (build-system python-build-system)
f2d06d46
EF
682 (arguments
683 `(#:python ,python-2
684 #:tests? #f)) ; no test target
ed377cc6
RW
685 (inputs
686 `(("python2-setuptools" ,python2-setuptools)))
f2d06d46
EF
687 (home-page "https://bitbucket.org/brandon/backports.ssl_match_hostname")
688 (synopsis "Backport of ssl.match_hostname() function from Python 3.5")
ed377cc6
RW
689 (description
690 "This backport brings the ssl.match_hostname() function to users of
691earlier versions of Python. The function checks the hostname in the
692certificate returned by the server to which a connection has been established,
693and verifies that it matches the intended target hostname.")
3f641af0 694 (license license:psfl)))
ed377cc6 695
ef5cbf9b
RW
696(define-public python-h5py
697 (package
698 (name "python-h5py")
fe147c41 699 (version "2.6.0")
ef5cbf9b
RW
700 (source
701 (origin
702 (method url-fetch)
fe147c41 703 (uri (pypi-uri "h5py" version))
ef5cbf9b
RW
704 (sha256
705 (base32
fe147c41 706 "0df46dg7i7xfking9lp221bfm8dbl974yvlrbi1w7r6m61ac7bxj"))))
ef5cbf9b 707 (build-system python-build-system)
797e1401
RW
708 (arguments
709 `(#:tests? #f ; no test target
710 #:phases
711 (modify-phases %standard-phases
712 (add-after 'unpack 'fix-hdf5-paths
713 (lambda* (#:key inputs #:allow-other-keys)
714 (let ((prefix (assoc-ref inputs "hdf5")))
715 (substitute* "setup_build.py"
716 (("\\['/opt/local/lib', '/usr/local/lib'\\]")
717 (string-append "['" prefix "/lib" "']"))
718 (("'/opt/local/include', '/usr/local/include'")
719 (string-append "'" prefix "/include" "'")))
720 (substitute* "setup_configure.py"
721 (("\\['/usr/local/lib', '/opt/local/lib'\\]")
722 (string-append "['" prefix "/lib" "']")))
723 #t))))))
3c4010b1
RW
724 (propagated-inputs
725 `(("python-numpy" ,python-numpy)))
ef5cbf9b 726 (inputs
fe147c41
EF
727 `(("hdf5" ,hdf5)
728 ("python-six" ,python-six)))
ef5cbf9b 729 (native-inputs
fe147c41
EF
730 `(("python-cython" ,python-cython)
731 ("python-pkgconfig" ,python-pkgconfig)))
ef5cbf9b
RW
732 (home-page "http://www.h5py.org/")
733 (synopsis "Read and write HDF5 files from Python")
734 (description
735 "The h5py package provides both a high- and low-level interface to the
736HDF5 library from Python. The low-level interface is intended to be a
737complete wrapping of the HDF5 API, while the high-level component supports
738access to HDF5 files, datasets and groups using established Python and NumPy
739concepts.")
3f641af0 740 (license license:bsd-3)
fe147c41 741 (properties `((python2-variant . ,(delay python2-h5py))))))
ef5cbf9b
RW
742
743(define-public python2-h5py
fe147c41 744 (package-with-python2 (strip-python2-variant python-h5py)))
ef5cbf9b 745
c1448c69
EB
746(define-public python-lockfile
747 (package
748 (name "python-lockfile")
692add53 749 (version "0.12.2")
c1448c69
EB
750 (source
751 (origin
752 (method url-fetch)
753 (uri (string-append "https://pypi.python.org/packages/source/l/lockfile/"
754 "lockfile-" version ".tar.gz"))
755 (sha256
756 (base32
692add53 757 "16gpx5hm73ah5n1079ng0vy381hl802v606npkx4x8nb0gg05vba"))))
c1448c69
EB
758 (build-system python-build-system)
759 (arguments '(#:test-target "check"))
692add53
BW
760 (native-inputs
761 `(("python-pbr" ,python-pbr)))
c1448c69
EB
762 (home-page "http://code.google.com/p/pylockfile/")
763 (synopsis "Platform-independent file locking module")
764 (description
765 "The lockfile package exports a LockFile class which provides a simple
766API for locking files.")
1804527a
BW
767 (license license:expat)
768 (properties `((python2-variant . ,(delay python2-lockfile))))))
c1448c69
EB
769
770(define-public python2-lockfile
1804527a
BW
771 (let ((base (package-with-python2 (strip-python2-variant python-lockfile))))
772 (package
692add53
BW
773 (inherit base)
774 (native-inputs `(("python2-setuptools" ,python2-setuptools)
775 ,@(package-native-inputs base))))))
c1448c69 776
5a1a4bf6
EB
777(define-public python-mock
778 (package
779 (name "python-mock")
780 (version "1.0.1")
781 (source
782 (origin
783 (method url-fetch)
784 (uri (string-append "https://pypi.python.org/packages/source/m/mock/"
785 "mock-" version ".tar.gz"))
786 (sha256
787 (base32
788 "0kzlsbki6q0awf89rc287f3aj8x431lrajf160a70z0ikhnxsfdq"))))
789 (build-system python-build-system)
790 (arguments '(#:test-target "check"))
07af3e5e 791 (home-page "http://code.google.com/p/mock/")
9e771e3b 792 (synopsis "Python mocking and patching library for testing")
5a1a4bf6
EB
793 (description
794 "Mock is a library for testing in Python. It allows you to replace parts
795of your system under test with mock objects and make assertions about how they
796have been used.")
bd3fa666 797 (license license:expat)))
5a1a4bf6
EB
798
799(define-public python2-mock
800 (package-with-python2 python-mock))
801
fc50e9c6 802
73adf220
AE
803(define-public python-setuptools
804 (package
805 (name "python-setuptools")
62a9a23b 806 (version "18.3.1")
73adf220
AE
807 (source
808 (origin
809 (method url-fetch)
810 (uri (string-append "https://pypi.python.org/packages/source/s/setuptools/setuptools-"
811 version ".tar.gz"))
812 (sha256
813 (base32
62a9a23b 814 "0kc7rbav00ks6iaw14p38y81q12fx0lpkhgf5m97xc04f5r318ig"))))
73adf220 815 (build-system python-build-system)
d3d656c5
AE
816 ;; FIXME: Tests require pytest, which itself relies on setuptools.
817 ;; One could bootstrap with an internal untested setuptools.
73adf220 818 (arguments
824af8ca 819 `(#:tests? #f))
73adf220
AE
820 (home-page "https://pypi.python.org/pypi/setuptools")
821 (synopsis
822 "Library designed to facilitate packaging Python projects")
823 (description
824 "Setuptools is a fully-featured, stable library designed to facilitate
825packaging Python projects, where packaging includes:
826Python package and module definitions,
827distribution package metadata,
828test hooks,
829project installation,
830platform-specific details,
831Python 3 support.")
3f641af0 832 (license license:psfl)))
73adf220
AE
833
834(define-public python2-setuptools
835 (package-with-python2 python-setuptools))
fc50e9c6
AE
836
837
cafc3f5a
EB
838(define-public python-pycrypto
839 (package
840 (name "python-pycrypto")
841 (version "2.6.1")
842 (source
843 (origin
844 (method url-fetch)
845 (uri (string-append "https://pypi.python.org/packages/source/p/"
846 "pycrypto/pycrypto-" version ".tar.gz"))
847 (sha256
848 (base32
849 "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj"))))
850 (build-system python-build-system)
851 (native-inputs
852 `(("python-setuptools" ,python-setuptools)))
853 (inputs
854 `(("python" ,python)
855 ("gmp" ,gmp)))
856 (arguments
857 `(#:phases
858 (alist-cons-before
859 'build 'set-build-env
860 ;; pycrypto runs an autoconf configure script behind the scenes
861 (lambda _
862 (setenv "CONFIG_SHELL" (which "bash")))
863 %standard-phases)))
864 (home-page "http://www.pycrypto.org/")
865 (synopsis "Cryptographic modules for Python")
866 (description
867 "Pycrypto is a collection of both secure hash functions (such as SHA256
868and RIPEMD160), and various encryption algorithms (AES, DES, RSA, ElGamal,
35b9e423 869etc.). The package is structured to make adding new modules easy.")
3f641af0 870 (license license:public-domain)))
cafc3f5a 871
345f0611 872(define-public python2-pycrypto
1c0059da
EF
873 (let ((pycrypto (package-with-python2 python-pycrypto)))
874 (package (inherit pycrypto)
875 (inputs
876 `(("python" ,python-2)
877 ,@(alist-delete
878 "python"
879 (package-inputs pycrypto)))))))
345f0611 880
cafc3f5a
EB
881(define-public python-keyring
882 (package
883 (name "python-keyring")
13f3ff35 884 (version "8.7")
cafc3f5a
EB
885 (source
886 (origin
887 (method url-fetch)
664e6c3a 888 (uri (pypi-uri "keyring" version))
cafc3f5a
EB
889 (sha256
890 (base32
13f3ff35 891 "0482rmi2x6p78wl2kz8qzyq21xz1sbbfwnv5x7dggar4vkwxhzfx"))))
cafc3f5a
EB
892 (build-system python-build-system)
893 (native-inputs
13f3ff35 894 `(("python-setuptools-scm" ,python-setuptools-scm)))
cafc3f5a
EB
895 (inputs
896 `(("python-pycrypto" ,python-pycrypto)))
897 (arguments
664e6c3a 898 `(#:tests? #f)) ;TODO: tests require pytest
cafc3f5a
EB
899 (home-page "http://bitbucket.org/kang/python-keyring-lib")
900 (synopsis "Store and access your passwords safely")
901 (description
902 "The Python keyring lib provides a easy way to access the system keyring
35b9e423 903service from python. It can be used in any application that needs safe
cafc3f5a
EB
904password storage.")
905 ;; "MIT" and PSF dual license
3f641af0 906 (license license:x11)
13f3ff35 907 (properties `((python2-variant . ,(delay python2-keyring))))))
cafc3f5a 908
d7af1069 909(define-public python2-keyring
13f3ff35
EF
910 (let ((base (package-with-python2 (strip-python2-variant python-keyring))))
911 (package
912 (inherit base)
913 (native-inputs `(("python2-setuptools" ,python2-setuptools)
914 ,@(package-native-inputs base))))))
d7af1069 915
a480bc41
EB
916(define-public python-six
917 (package
918 (name "python-six")
b6ab89ef 919 (version "1.10.0")
a480bc41
EB
920 (source
921 (origin
922 (method url-fetch)
b6ab89ef 923 (uri (pypi-uri "six" version))
a480bc41
EB
924 (sha256
925 (base32
b6ab89ef 926 "0snmb8xffb3vsma0z67i0h0w2g2dy0p3gsgh9gi4i0kgc5l8spqh"))))
a480bc41
EB
927 (build-system python-build-system)
928 (inputs
929 `(("python-setuptools" ,python-setuptools)))
930 (home-page "http://pypi.python.org/pypi/six/")
931 (synopsis "Python 2 and 3 compatibility utilities")
932 (description
35b9e423 933 "Six is a Python 2 and 3 compatibility library. It provides utility
a480bc41
EB
934functions for smoothing over the differences between the Python versions with
935the goal of writing Python code that is compatible on both Python versions.
35b9e423 936Six supports every Python version since 2.5. It is contained in only one
a480bc41 937Python file, so it can be easily copied into your project.")
3f641af0 938 (license license:x11)))
a480bc41 939
0c20025c
AE
940(define-public python2-six
941 (package-with-python2 python-six))
942
cafc3f5a
EB
943(define-public python-dateutil-2
944 (package
945 (name "python-dateutil")
394b8060 946 (version "2.5.2")
cafc3f5a
EB
947 (source
948 (origin
949 (method url-fetch)
394b8060 950 (uri (pypi-uri "python-dateutil" version))
cafc3f5a
EB
951 (sha256
952 (base32
394b8060 953 "0jrfpcgvgya6hs45dhrd9yiqgdgz9qp9aa07zsw8gqgn8zphff86"))))
cafc3f5a
EB
954 (build-system python-build-system)
955 (inputs
394b8060 956 `(("python-six" ,python-six)))
cafc3f5a
EB
957 (home-page "http://labix.org/python-dateutil")
958 (synopsis "Extensions to the standard datetime module")
959 (description
960 "The dateutil module provides powerful extensions to the standard
961datetime module, available in Python 2.3+.")
3f641af0 962 (license license:bsd-3)
394b8060 963 (properties `((python2-variant . ,(delay python2-dateutil-2))))))
cafc3f5a
EB
964
965(define-public python2-dateutil-2
394b8060
EF
966 (let ((base (package-with-python2 (strip-python2-variant python-dateutil-2))))
967 (package
968 (inherit base)
969 (inputs `(("python2-setuptools" ,python2-setuptools)
970 ,@(package-inputs base))))))
cafc3f5a 971
fc50e9c6
AE
972(define-public python-dateutil
973 (package
974 (name "python-dateutil")
975 (version "1.5") ; last version for python < 3
976 (source
977 (origin
978 (method url-fetch)
cafc3f5a
EB
979 (uri (string-append "http://labix.org/download/python-dateutil/"
980 "python-dateutil-" version ".tar.gz"))
fc50e9c6
AE
981 (sha256
982 (base32
983 "0fqfglhy5khbvsipr3x7m6bcaqljh8xl5cw33vbfxy7qhmywm2n0"))))
984 (build-system python-build-system)
985 (inputs
986 `(("python-setuptools" ,python-setuptools)))
987 (home-page "http://labix.org/python-dateutil")
cafc3f5a 988 (synopsis "Extensions to the standard datetime module")
fc50e9c6
AE
989 (description
990 "The dateutil module provides powerful extensions to the standard
991datetime module, available in Python 2.3+.")
3f641af0 992 (license license:psfl)))
fc50e9c6
AE
993
994(define-public python2-dateutil
995 (package-with-python2 python-dateutil))
1d08c01f 996
cafc3f5a
EB
997(define-public python-parsedatetime
998 (package
999 (name "python-parsedatetime")
eebf6f01 1000 (version "2.1")
cafc3f5a
EB
1001 (source
1002 (origin
1003 (method url-fetch)
eebf6f01 1004 (uri (pypi-uri "parsedatetime" version))
cafc3f5a
EB
1005 (sha256
1006 (base32
eebf6f01 1007 "0bdgyw6y3v7bcxlx0p50s8drxsh5bb5cy2afccqr3j90amvpii8p"))))
cafc3f5a
EB
1008 (build-system python-build-system)
1009 (native-inputs
eebf6f01
EF
1010 `(("python-nose" ,python-nose)
1011 ("python-pyicu" ,python-pyicu)))
cafc3f5a
EB
1012 (home-page "http://github.com/bear/parsedatetime/")
1013 (synopsis
1014 "Parse human-readable date/time text")
1015 (description
e881752c 1016 "Parse human-readable date/time text.")
3f641af0 1017 (license license:asl2.0)
eebf6f01 1018 (properties `((python2-variant . ,(delay python2-parsedatetime))))))
cafc3f5a 1019
38b8f9b2 1020(define-public python2-parsedatetime
eebf6f01
EF
1021 (let ((base (package-with-python2 (strip-python2-variant python-parsedatetime))))
1022 (package
1023 (inherit base)
1024 (native-inputs `(("python2-setuptools" ,python2-setuptools)
1025 ,@(package-native-inputs base))))))
38b8f9b2 1026
d072efcb
RW
1027(define-public python-pandas
1028 (package
1029 (name "python-pandas")
7d0c3c8d 1030 (version "0.18.1")
d072efcb
RW
1031 (source
1032 (origin
1b96f069 1033 (method url-fetch)
7d0c3c8d
EF
1034 (uri (string-append
1035 "https://pypi.python.org/packages/11/09/"
1036 "e66eb844daba8680ddff26335d5b4fead77f60f957678243549a8dd4830d/"
1037 "pandas-" version ".tar.gz"))
1b96f069 1038 (sha256
7d0c3c8d 1039 (base32 "1ckpxrvvjj6zxmn68icd9hib8qcpx9b35f6izxnr25br5ilq7r6j"))))
d072efcb 1040 (build-system python-build-system)
d072efcb 1041 (propagated-inputs
42603726
EF
1042 `(("python-numpy" ,python-numpy)))
1043 (inputs
1044 `(("python-pytz" ,python-pytz)
d072efcb
RW
1045 ("python-dateutil" ,python-dateutil-2)))
1046 (native-inputs
7d0c3c8d 1047 `(("python-nose" ,python-nose)))
d072efcb
RW
1048 (home-page "http://pandas.pydata.org")
1049 (synopsis "Data structures for data analysis, time series, and statistics")
1050 (description
1051 "Pandas is a Python package providing fast, flexible, and expressive data
1052structures designed to make working with structured (tabular,
1053multidimensional, potentially heterogeneous) and time series data both easy
1054and intuitive. It aims to be the fundamental high-level building block for
1055doing practical, real world data analysis in Python.")
3f641af0 1056 (license license:bsd-3)
7d0c3c8d 1057 (properties `((python2-variant . ,(delay python2-pandas))))))
d072efcb
RW
1058
1059(define-public python2-pandas
7d0c3c8d
EF
1060 (let ((base (package-with-python2 (strip-python2-variant python-pandas))))
1061 (package
1062 (inherit base)
1063 (native-inputs `(("python2-setuptools" ,python2-setuptools)
dbd40ac1 1064 ,@(package-native-inputs base))))))
d072efcb 1065
cafc3f5a
EB
1066(define-public python-tzlocal
1067 (package
1068 (name "python-tzlocal")
ed80839b 1069 (version "1.2.2")
cafc3f5a
EB
1070 (source
1071 (origin
1072 (method url-fetch)
226d3331 1073 (uri (pypi-uri "tzlocal" version))
cafc3f5a
EB
1074 (sha256
1075 (base32
ed80839b 1076 "0paj7vlsb0np8b5sp4bv64wxv7qk2piyp7xg29pkhdjwsbls9fnb"))))
cafc3f5a 1077 (build-system python-build-system)
ed80839b 1078 (inputs `(("python-pytz" ,python-pytz)))
cafc3f5a
EB
1079 (home-page "https://github.com/regebro/tzlocal")
1080 (synopsis
35b9e423 1081 "Local timezone information for Python")
cafc3f5a
EB
1082 (description
1083 "Tzlocal returns a tzinfo object with the local timezone information.
1084This module attempts to fix a glaring hole in pytz, that there is no way to
1085get the local timezone information, unless you know the zoneinfo name, and
1086under several distributions that's hard or impossible to figure out.")
3f641af0 1087 (license license:cc0)))
cafc3f5a 1088
1d08c01f
AE
1089(define-public python2-pysqlite
1090 (package
1091 (name "python2-pysqlite")
fe476868 1092 (version "2.8.1")
1d08c01f
AE
1093 (source
1094 (origin
1095 (method url-fetch)
fe476868 1096 (uri (pypi-uri "pysqlite" version))
1d08c01f
AE
1097 (sha256
1098 (base32
fe476868 1099 "0rm0zqyb363y6wljhfmbxs16jjv7p8nk1d8zgq9sdwj6js7y3jkm"))))
1d08c01f
AE
1100 (build-system python-build-system)
1101 (inputs
1102 `(("sqlite" ,sqlite)))
1103 (arguments
1104 `(#:python ,python-2 ; incompatible with Python 3
1105 #:tests? #f)) ; no test target
fe476868 1106 (home-page "http://github.com/ghaering/pysqlite")
7a03af70 1107 (synopsis "SQLite bindings for Python")
1d08c01f
AE
1108 (description
1109 "Pysqlite provides SQLite bindings for Python that comply to the
1110Database API 2.0T.")
ed0cdf83 1111 (license license:zlib)))
1d08c01f 1112
2875caf5
AE
1113
1114(define-public python2-mechanize
1115 (package
1116 (name "python2-mechanize")
1117 (version "0.2.5")
1118 (source
1119 (origin
1120 (method url-fetch)
1121 (uri (string-append "https://pypi.python.org/packages/source/m/mechanize/mechanize-"
1122 version ".tar.gz"))
1123 (sha256
1124 (base32
1125 "0rj7r166i1dyrq0ihm5rijfmvhs8a04im28lv05c0c3v206v4rrf"))))
1126 (build-system python-build-system)
1127 (inputs
1128 `(("python2-setuptools" ,python2-setuptools)))
1129 (arguments
1130 `(#:python ,python-2 ; apparently incompatible with Python 3
1131 #:tests? #f))
1132 ;; test fails with message
1133 ;; AttributeError: 'module' object has no attribute 'test_pullparser'
1134 ;; (python-3.3.2) or
1135 ;; AttributeError: 'module' object has no attribute 'test_urllib2_localnet'
1136 ;; (python-2.7.5).
1137 ;; The source code is from March 2011 and probably not up-to-date
1138 ;; with respect to python unit tests.
1139 (home-page "http://wwwsearch.sourceforge.net/mechanize/")
1140 (synopsis
1141 "Stateful programmatic web browsing in Python")
1142 (description
1143 "Mechanize implements stateful programmatic web browsing in Python,
1144after Andy Lester’s Perl module WWW::Mechanize.")
3f641af0
DC
1145 (license (license:non-copyleft
1146 "file://COPYING"
1147 "See COPYING in the distribution."))))
2875caf5 1148
0352532e
AE
1149
1150(define-public python-simplejson
1151 (package
1152 (name "python-simplejson")
988d1bad 1153 (version "3.8.2")
0352532e
AE
1154 (source
1155 (origin
1156 (method url-fetch)
988d1bad 1157 (uri (pypi-uri "simplejson" version))
0352532e
AE
1158 (sha256
1159 (base32
988d1bad 1160 "0zylrnax8b6r0ndgni4w9c599fi6wm9vx5g6k3ddqfj3932kk16m"))))
0352532e
AE
1161 (build-system python-build-system)
1162 (home-page "http://simplejson.readthedocs.org/en/latest/")
1163 (synopsis
1164 "Json library for Python")
1165 (description
e881752c
AK
1166 "JSON (JavaScript Object Notation) is a subset of JavaScript
1167syntax (ECMA-262 3rd edition) used as a lightweight data interchange
1168format.
0352532e
AE
1169
1170Simplejson exposes an API familiar to users of the standard library marshal
1171and pickle modules. It is the externally maintained version of the json
1172library contained in Python 2.6, but maintains compatibility with Python 2.5
1173and (currently) has significant performance advantages, even without using
1174the optional C extension for speedups. Simplejson is also supported on
1175Python 3.3+.")
3f641af0 1176 (license license:x11)))
0352532e
AE
1177
1178(define-public python2-simplejson
1179 (package-with-python2 python-simplejson))
421a80a2
AE
1180
1181
ed07b08d 1182(define-public python-pyicu
421a80a2 1183 (package
ed07b08d 1184 (name "python-pyicu")
d3b29319 1185 (version "1.9.2")
421a80a2
AE
1186 (source
1187 (origin
1188 (method url-fetch)
1189 (uri (string-append "https://pypi.python.org/packages/source/P/PyICU/PyICU-"
1190 version ".tar.gz"))
1191 (sha256
1192 (base32
d3b29319 1193 "1diba0g8md614fvm9yf50paiwdkhj6rd7xwf1rg9mc0pxc0hhn4v"))))
421a80a2
AE
1194 (build-system python-build-system)
1195 (inputs
1196 `(("icu4c" ,icu4c)))
421a80a2 1197 (home-page "http://pyicu.osafoundation.org/")
9e771e3b 1198 (synopsis "Python extension wrapping the ICU C++ API")
421a80a2
AE
1199 (description
1200 "PyICU is a python extension wrapping the ICU C++ API.")
3f641af0 1201 (license license:x11)
ed07b08d
LF
1202 (properties `((python2-variant . ,(delay python2-pyicu))))))
1203
1204(define-public python2-pyicu
1205 (package
1206 (inherit (package-with-python2
1207 (strip-python2-variant python-pyicu)))
1208 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
cc20a22a
LC
1209
1210(define-public python2-dogtail
1211 ;; Python 2 only, as it leads to "TabError: inconsistent use of tabs and
1212 ;; spaces in indentation" with Python 3.
1213 (package
1214 (name "python2-dogtail")
1215 (version "0.8.2")
1216 (source (origin
1217 (method url-fetch)
1218 (uri (string-append
1219 "https://fedorahosted.org/released/dogtail/dogtail-"
1220 version ".tar.gz"))
1221 (sha256
1222 (base32
1223 "1yc4cg7ip87z15gyd4wy2vzbywrjc52a3m8r8gqy2b50d65llcg1"))))
1224 (build-system python-build-system)
1225 (arguments `(#:python ,python-2
1226 #:tests? #f)) ; invalid command "test"
1227 (home-page "https://fedorahosted.org/dogtail/")
1228 (synopsis "GUI test tool and automation framework written in ​Python")
1229 (description
35b9e423 1230 "Dogtail is a GUI test tool and automation framework written in Python.
cc20a22a
LC
1231It uses Accessibility (a11y) technologies to communicate with desktop
1232applications. dogtail scripts are written in Python and executed like any
1233other Python program.")
3f641af0 1234 (license license:gpl2+)))
515e6878 1235
011b18c3
LC
1236(define-public python2-empy
1237 (package
1238 (name "python2-empy")
1239 (version "3.3")
1240 (source (origin
1241 (method url-fetch)
1242 (uri (string-append "http://www.alcyone.com/software/empy/empy-"
1243 version ".tar.gz"))
1244 (sha256
1245 (base32
1246 "01g8mmkfnvjdmlhsihwyx56lrg7r5m5d2fg6mnxsvy6g0dnl69f6"))))
1247 (build-system python-build-system)
1248 (arguments
1249 `(#:python ,python-2
1250 #:phases (alist-replace
1251 'check
1252 (lambda _
1253 (zero? (system* "./test.sh")))
1254 %standard-phases)))
1255 (home-page "http://www.alcyone.com/software/empy/")
1256 (synopsis "Templating system for Python")
1257 (description
1258 "EmPy is a system for embedding Python expressions and statements in
1259template text; it takes an EmPy source file, processes it, and produces
1260output. This is accomplished via expansions, which are special signals to the
1cd4027c 1261EmPy system and are set off by a special prefix (by default the at sign, @@).
011b18c3
LC
1262EmPy can expand arbitrary Python expressions and statements in this way, as
1263well as a variety of special forms. Textual data not explicitly delimited in
1264this way is sent unaffected to the output, allowing Python to be used in
1265effect as a markup language. Also supported are callbacks via hooks,
1266recording and playback via diversions, and dynamic, chainable filters. The
1267system is highly configurable via command line options and embedded
1268commands.")
3f641af0 1269 (license license:lgpl2.1+)))
011b18c3 1270
8deeda0c
LC
1271(define-public python2-element-tree
1272 (package
1273 (name "python2-element-tree")
1274 (version "1.2.6")
1275 (source (origin
1276 (method url-fetch)
1277 (uri (string-append
1278 "http://effbot.org/media/downloads/elementtree-"
1279 version "-20050316.tar.gz"))
1280 (sha256
1281 (base32
1282 "016bphqnlg0l4vslahhw4r0aanw95bpypy65r1i1acyb2wj5z7dj"))))
1283 (build-system python-build-system)
1284 (arguments
1285 `(#:python ,python-2 ; seems to be part of Python 3
1286 #:tests? #f)) ; no 'test' sub-command
1287 (synopsis "Toolkit for XML processing in Python")
1288 (description
1289 "ElementTree is a Python library supporting lightweight XML processing.")
1290 (home-page "http://effbot.org/zone/element-index.htm")
3f641af0
DC
1291 (license (license:x11-style
1292 "http://docs.python.org/2/license.html"
1293 "Like \"CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2\"."))))
8deeda0c
LC
1294
1295(define-public python2-pybugz
1296 (package
1297 (name "python2-pybugz")
1298 (version "0.6.11")
1299 (source (origin
1300 (method url-fetch)
1301 (uri (string-append
1302 "http://bits.liquidx.net/projects/pybugz/pybugz-"
1303 version ".tar.gz"))
1304 (sha256
1305 (base32
6f194a1e 1306 "17ni00p08gp5lkxlrrcnvi3x09fmajnlbz4da03qcgl9q21ym4jd"))
fc1adab1
AK
1307 (patches (search-patches "pybugz-stty.patch"
1308 "pybugz-encode-error.patch"))))
8deeda0c
LC
1309 (build-system python-build-system)
1310 (arguments
1311 `(#:python ,python-2 ; SyntaxError with Python 3
1312 #:tests? #f)) ; no 'test' sub-command
1313 (inputs `(("element-tree" ,python2-element-tree)))
1314 (synopsis "Python and command-line interface to Bugzilla")
1315 (description
1316 "PyBugz is a Python library and command-line tool to query the Bugzilla
1317bug tracking system. It is meant as an aid to speed up interaction with the
1318bug tracker.")
1319 (home-page "http://www.liquidx.net/pybugz/")
3f641af0 1320 (license license:gpl2)))
8deeda0c 1321
a480bc41
EB
1322(define-public python-enum34
1323 (package
1324 (name "python-enum34")
d39ae1e5 1325 (version "1.1.0")
a480bc41
EB
1326 (source
1327 (origin
1328 (method url-fetch)
d39ae1e5 1329 (uri (pypi-uri "enum34" version))
a480bc41
EB
1330 (sha256
1331 (base32
d39ae1e5 1332 "0yx1m4564wxgbm4glb3457hi16xihd9w63rv13y2przkdir9dfgp"))))
a480bc41 1333 (build-system python-build-system)
a480bc41
EB
1334 (arguments
1335 `(#:phases
1336 (alist-replace
1337 'check
1338 (lambda _ (zero? (system* "python" "enum/test_enum.py")))
1339 %standard-phases)))
1340 (home-page "https://pypi.python.org/pypi/enum34")
1341 (synopsis "Backported Python 3.4 Enum")
1342 (description
1343 "Enum34 is the new Python stdlib enum module available in Python 3.4
1344backported for previous versions of Python from 2.4 to 3.3.")
3f641af0 1345 (license license:bsd-3)))
a480bc41 1346
820acd1b
LF
1347(define-public python2-enum34
1348 (package-with-python2 python-enum34))
1349
a480bc41
EB
1350(define-public python-parse-type
1351 (package
1352 (name "python-parse-type")
1353 (version "0.3.4")
1354 (source
1355 (origin
1356 (method url-fetch)
1357 (uri (string-append "https://pypi.python.org/packages/source/p/"
1358 "parse_type/parse_type-" version ".tar.gz"))
1359 (sha256
1360 (base32
1361 "0iv1c34npr4iynwpgv1vkjx9rjd18a85ir8c01gc5f7wp8iv7l1x"))))
1362 (build-system python-build-system)
1363 (inputs
1364 `(("python-setuptools" ,python-setuptools)
1365 ("python-six" ,python-six)
68f1cdec 1366 ("python-parse" ,python-parse)))
a480bc41
EB
1367 (arguments '(#:tests? #f)) ;TODO: tests require pytest
1368 (home-page "https://github.com/jenisys/parse_type")
1369 (synopsis "Extended parse module")
1370 (description
1371 "Parse_type extends the python parse module.")
3f641af0 1372 (license license:bsd-3)))
a480bc41
EB
1373
1374(define-public python-parse
1375 (package
1376 (name "python-parse")
eb3d3503 1377 (version "1.6.6")
a480bc41
EB
1378 (source
1379 (origin
1380 (method url-fetch)
eb3d3503 1381 (uri (pypi-uri "parse" version))
a480bc41
EB
1382 (sha256
1383 (base32
eb3d3503 1384 "0y31i3mwgv35qn0kzzjn9q8jqfdqmbi6sr6yfvn8rq4lqjm5lhvi"))))
a480bc41
EB
1385 (build-system python-build-system)
1386 (arguments
1387 `(#:phases
1388 (alist-replace
1389 'check
1390 (lambda _ (zero? (system* "python" "test_parse.py")))
1391 %standard-phases)))
1392 (home-page "https://github.com/r1chardj0n3s/parse")
1393 (synopsis "Parse strings")
1394 (description
1395 "Parse strings using a specification based on the Python format()
1396syntax.")
3f641af0 1397 (license license:x11)))
a480bc41
EB
1398
1399
515e6878
LC
1400(define-public scons
1401 (package
1402 (name "scons")
a3f61425 1403 (version "2.3.4")
515e6878
LC
1404 (source (origin
1405 (method url-fetch)
de67e922
LF
1406 (uri (string-append "mirror://sourceforge/scons/scons/" version
1407 "/scons-" version ".tar.gz"))
515e6878
LC
1408 (sha256
1409 (base32
a3f61425 1410 "0hdlci43wjz8maryj83mz04ir6rwcdrrzpd7cpzvdlzycqhdfmsb"))))
515e6878
LC
1411 (build-system python-build-system)
1412 (arguments
1413 ;; With Python 3.x, fails to build with a syntax error.
1414 `(#:python ,python-2
1415 #:tests? #f)) ; no 'python setup.py test' command
1416 (home-page "http://scons.org/")
1417 (synopsis "Software construction tool written in Python")
1418 (description
1419 "SCons is a software construction tool. Think of SCons as an improved,
1420cross-platform substitute for the classic Make utility with integrated
1421functionality similar to autoconf/automake and compiler caches such as ccache.
1422In short, SCons is an easier, more reliable and faster way to build
1423software.")
3f641af0 1424 (license license:x11)))
011b18c3 1425
c15a5c0e
DT
1426(define-public python-extras
1427 (package
1428 (name "python-extras")
1429 (version "0.0.3")
1430 (source
1431 (origin
1432 (method url-fetch)
1433 (uri (string-append
1434 "https://pypi.python.org/packages/source/e/extras/extras-"
1435 version ".tar.gz"))
1436 (sha256
1437 (base32
1438 "1h7zx4dfyclalg0fqnfjijpn0f793a9mx8sy3b27gd31nr6dhq3s"))))
1439 (build-system python-build-system)
1440 (inputs
1441 `(("python-setuptools" ,python-setuptools)))
1442 (arguments
1443 ;; error in setup.cfg: command 'test' has no such option 'buffer'
1444 '(#:tests? #f))
1445 (home-page "https://github.com/testing-cabal/extras")
1446 (synopsis "Useful extensions to the Python standard library")
1447 (description
1448 "Extras is a set of extensions to the Python standard library.")
bd3fa666 1449 (license license:expat)))
c15a5c0e
DT
1450
1451(define-public python2-extras
1452 (package-with-python2 python-extras))
1453
56ea0efd
DT
1454(define-public python-mimeparse
1455 (package
1456 (name "python-mimeparse")
1457 (version "0.1.4")
1458 (source
1459 (origin
1460 (method url-fetch)
1461 (uri (string-append
1462 "https://pypi.python.org/packages/source/p/python-mimeparse/python-mimeparse-"
1463 version ".tar.gz"))
1464 (sha256
1465 (base32
1466 "1hyxg09kaj02ri0rmwjqi86wk4nd1akvv7n0dx77azz76wga4s9w"))))
1467 (build-system python-build-system)
1468 (inputs
1469 `(("python-setuptools" ,python-setuptools)))
1470 (arguments
1471 '(#:tests? #f)) ; no setup.py test command
1472 (home-page
1473 "https://github.com/dbtsai/python-mimeparse")
9e771e3b 1474 (synopsis "Python library for parsing MIME types")
56ea0efd
DT
1475 (description
1476 "Mimeparse provides basic functions for parsing MIME type names and
1477matching them against a list of media-ranges.")
bd3fa666 1478 (license license:expat)))
56ea0efd
DT
1479
1480(define-public python2-mimeparse
1481 (package-with-python2 python-mimeparse))
1482
4435427e
DT
1483(define-public python-nose
1484 (package
1485 (name "python-nose")
f7cb9841 1486 (version "1.3.7")
4435427e
DT
1487 (source
1488 (origin
1489 (method url-fetch)
f7cb9841 1490 (uri (pypi-uri "nose" version))
4435427e
DT
1491 (sha256
1492 (base32
f7cb9841 1493 "164a43k7k2wsqqk1s6vavcdamvss4mz0vd6pwzv2h9n8rgwzxgzi"))))
4435427e
DT
1494 (build-system python-build-system)
1495 (inputs
1496 `(("python-setuptools" ,python-setuptools)))
1497 (arguments
1498 '(#:tests? #f)) ; FIXME: test suite fails
1499 (home-page "http://readthedocs.org/docs/nose/")
1500 (synopsis "Python testing library")
1501 (description
1502 "Nose extends the unittest library to make testing easier.")
3f641af0 1503 (license license:lgpl2.0+)))
4435427e
DT
1504
1505(define-public python2-nose
1506 (package-with-python2 python-nose))
1507
6cd9c356
DT
1508(define-public python-unittest2
1509 (package
1510 (name "python-unittest2")
1511 (version "0.5.1")
1512 (source
1513 (origin
1514 (method url-fetch)
1515 (uri (string-append
1516 "https://pypi.python.org/packages/source/u/unittest2py3k/unittest2py3k-"
1517 version ".tar.gz"))
1518 (sha256
1519 (base32
1520 "00yl6lskygcrddx5zspkhr0ibgvpknl4678kkm6s626539grq93q"))))
1521 (build-system python-build-system)
1522 (inputs
1523 `(("python-setuptools" ,python-setuptools)))
1524 (home-page "http://pypi.python.org/pypi/unittest2")
1525 (synopsis "Python unit testing library")
1526 (description
1527 "Unittest2 is a replacement for the unittest module in the Python
1528standard library.")
3f641af0 1529 (license license:psfl)))
6cd9c356
DT
1530
1531(define-public python2-unittest2
1532 (package (inherit python-unittest2)
1533 (name "python2-unittest2")
1534 (version "0.5.1")
1535 (source
1536 (origin
1537 (method url-fetch)
1538 (uri (string-append
1539 "https://pypi.python.org/packages/source/u/unittest2/unittest2-"
1540 version ".tar.gz"))
1541 (sha256
1542 (base32
1543 "0wbs4i4x3x7klr3v35ss6p9mcqz883i1xgcpkhvl7n2lyv6yhpda"))))
1544 (inputs
7957fe6c 1545 `(("python2-setuptools" ,python2-setuptools)))
6cd9c356
DT
1546 (arguments
1547 `(#:python ,python-2
1548 #:tests? #f)))) ; no setup.py test command
1549
542ad60f
DT
1550(define-public python-py
1551 (package
1552 (name "python-py")
71c8a804 1553 (version "1.4.31")
542ad60f
DT
1554 (source
1555 (origin
1556 (method url-fetch)
71c8a804 1557 (uri (pypi-uri "py" version))
542ad60f
DT
1558 (sha256
1559 (base32
71c8a804 1560 "0561gz2w3i825gyl42mcq14y3dcgkapfiv5zv9a2bz15qxiijl56"))))
542ad60f
DT
1561 (build-system python-build-system)
1562 (inputs
1563 `(("python-setuptools" ,python-setuptools)))
1564 (home-page "http://pylib.readthedocs.org/")
1565 (synopsis "Python library for parsing, I/O, instrospection, and logging")
1566 (description
1567 "Py is a Python library for file name parsing, .ini file parsing, I/O,
1568code introspection, and logging.")
bd3fa666 1569 (license license:expat)))
542ad60f
DT
1570
1571(define-public python2-py
1572 (package-with-python2 python-py))
1573
855d4761
DT
1574(define-public python-pytest
1575 (package
1576 (name "python-pytest")
61a4332d 1577 (version "2.7.3")
855d4761
DT
1578 (source
1579 (origin
1580 (method url-fetch)
1581 (uri (string-append
1582 "https://pypi.python.org/packages/source/p/pytest/pytest-"
1583 version ".tar.gz"))
1584 (sha256
1585 (base32
61a4332d 1586 "1z4yi986f9n0p8qmzmn21m21m8j1x78hk3505f89baqm6pdw7afm"))
855d4761
DT
1587 (modules '((guix build utils)))
1588 (snippet
1589 ;; One of the tests involves the /usr directory, so it fails.
1590 '(substitute* "testing/test_argcomplete.py"
1591 (("def test_remove_dir_prefix\\(self\\):")
1592 "@pytest.mark.xfail\n def test_remove_dir_prefix(self):")))))
1593 (build-system python-build-system)
1594 (inputs
1595 `(("python-setuptools" ,python-setuptools)
1596 ("python-py" ,python-py)
1597 ("python-nose" ,python-nose)
1598 ("python-mock" ,python-mock)))
1599 (home-page "http://pytest.org")
1600 (synopsis "Python testing library")
1601 (description
1602 "Pytest is a testing tool that provides auto-discovery of test modules
1603and functions, detailed info on failing assert statements, modular fixtures,
1604and many external plugins.")
bd3fa666 1605 (license license:expat)))
855d4761
DT
1606
1607(define-public python2-pytest
1608 (package-with-python2 python-pytest))
1609
358c3d61
EF
1610(define-public python-pytest-cov
1611 (package
1612 (name "python-pytest-cov")
545f4a1c 1613 (version "2.2.1")
358c3d61
EF
1614 (source
1615 (origin
1616 (method url-fetch)
1617 (uri (pypi-uri "pytest-cov" version))
1618 (sha256
545f4a1c
EF
1619 (base32
1620 "1yl4nbhzfgsxqlsyk4clafgp9x11zvgrkprm9i2p3fgkwx9jxcm8"))))
10468636 1621 (build-system python-build-system)
545f4a1c 1622 (inputs
10468636
EF
1623 `(("python-coverage" ,python-coverage)
1624 ("python-pytest" ,python-pytest)))
10468636
EF
1625 (home-page "https://github.com/pytest-dev/pytest-cov")
1626 (synopsis "Pytest plugin for measuring coverage")
1627 (description
1628 "Pytest-cov produces coverage reports. It supports centralised testing and
1629distributed testing in both @code{load} and @code{each} modes. It also
1630supports coverage of subprocesses.")
545f4a1c
EF
1631 (license license:expat)
1632 (properties `((python2-variant . ,(delay python2-pytest-cov))))))
358c3d61
EF
1633
1634(define-public python2-pytest-cov
545f4a1c
EF
1635 (let ((base (package-with-python2 (strip-python2-variant python-pytest-cov))))
1636 (package
1637 (inherit base)
1638 (inputs `(("python2-setuptools" ,python2-setuptools)
1639 ,@(package-inputs base))))))
358c3d61 1640
6784f2e3
RW
1641(define-public python-pytest-runner
1642 (package
1643 (name "python-pytest-runner")
1644 (version "2.6.2")
1645 (source
1646 (origin
1647 (method url-fetch)
54cd239b 1648 (uri (pypi-uri "pytest-runner" version))
6784f2e3
RW
1649 (sha256
1650 (base32
1651 "1nwcqx0l3fv52kv8526wy8ypzghbq96c96di318d98d3wh7a8xg7"))))
1652 (build-system python-build-system)
1653 (arguments
1654 `(#:phases
1655 (modify-phases %standard-phases
1656 ;; The fancy way of setting the version with setuptools_scm does not
1657 ;; seem to work here.
1658 (add-after 'unpack 'set-version
1659 (lambda _
1660 (substitute* "docs/conf.py"
1661 (("version = setuptools_scm\\.get_version\\(root='\\.\\.')")
1662 (string-append "version = \"" ,version "\"")))
1663 #t)))))
1664 (native-inputs
1665 `(("python-pytest" ,python-pytest)
1666 ("python-setuptools-scm" ,python-setuptools-scm)))
54cd239b 1667 (home-page "https://github.com/pytest-dev/pytest-runner")
6784f2e3
RW
1668 (synopsis "Invoke py.test as a distutils command")
1669 (description
1670 "This package provides a @command{pytest-runner} command that
1671@file{setup.py} files can use to run tests.")
54cd239b
EF
1672 (license license:expat)
1673 (properties `((python2-variant . ,(delay python2-pytest-runner))))))
1674
1675(define-public python2-pytest-runner
1676 (let ((base (package-with-python2
1677 (strip-python2-variant python-pytest-runner))))
1678 (package
1679 (inherit base)
1680 (native-inputs `(("python2-setuptools" ,python2-setuptools)
1681 ,@(package-native-inputs base))))))
6784f2e3
RW
1682
1683(define-public python2-pytest-runner
1684 (package-with-python2 python-pytest-runner))
1685
8fa58fc9
CAW
1686(define-public python-pytest-xdist
1687 (package
1688 (name "python-pytest-xdist")
1689 (version "1.14")
1690 (source
1691 (origin
1692 (method url-fetch)
1693 (uri (pypi-uri "pytest-xdist" version ".zip"))
1694 (sha256
1695 (base32
1696 "08rn2l39ds60xshs4js787l84pfckksqklfq2wq9x8ig2aci2pja"))))
1697 (build-system python-build-system)
1698 (native-inputs
1699 `(("unzip" ,unzip)
8fa58fc9 1700 ("python-setuptools-scm" ,python-setuptools-scm)))
fbe9abcc
EF
1701 (inputs
1702 `(("python-apipkg" ,python-apipkg)
1703 ("python-execnet" ,python-execnet)
8fa58fc9
CAW
1704 ("python-pytest" ,python-pytest)
1705 ("python-py" ,python-py)))
1706 (home-page
1707 "https://github.com/pytest-dev/pytest-xdist")
1708 (synopsis
1709 "Plugin for py.test with distributed testing and loop-on-failing modes")
1710 (description
1711 "The pytest-xdist plugin extends py.test with some unique test execution
1712modes: parallelization, running tests in boxed subprocesses, the ability
1713to run tests repeatedly when failed, and the ability to run tests on multiple
1714Python interpreters or platforms. It uses rsync to copy the existing
1715program code to a remote location, executes there, and then syncs the
1716result back.")
fbe9abcc
EF
1717 (license license:expat)
1718 (properties `((python2-variant . ,(delay python2-pytest-xdist))))))
8fa58fc9
CAW
1719
1720(define-public python2-pytest-xdist
fbe9abcc
EF
1721 (let ((base (package-with-python2
1722 (strip-python2-variant python-pytest-xdist))))
1723 (package
1724 (inherit base)
1725 (native-inputs `(("python2-setuptools" ,python2-setuptools)
1726 ,@(package-native-inputs base))))))
8fa58fc9 1727
84d24017
DT
1728(define-public python-scripttest
1729 (package
1730 (name "python-scripttest")
1731 (version "1.3")
1732 (source
1733 (origin
1734 (method url-fetch)
1735 (uri (string-append
1736 "https://pypi.python.org/packages/source/s/scripttest/scripttest-"
1737 version ".tar.gz"))
1738 (sha256
1739 (base32
1740 "0f4w84k8ck82syys7yg9maz93mqzc8p5ymis941x034v44jzq74m"))))
1741 (build-system python-build-system)
1742 (inputs
1743 `(("python-setuptools" ,python-setuptools)
1744 ("python-pytest" ,python-pytest)))
1745 (home-page "http://pythonpaste.org/scripttest/")
1746 (synopsis "Python library to test command-line scripts")
1747 (description "Scripttest is a Python helper library for testing
1748interactive command-line applications. With it you can run a script in a
1749subprocess and see the output as well as any file modifications.")
bd3fa666 1750 (license license:expat)))
84d24017
DT
1751
1752(define-public python2-scripttest
1753 (package-with-python2 python-scripttest))
1754
d8fa80e1
DT
1755(define-public python-testtools
1756 (package
1757 (name "python-testtools")
1758 (version "1.0.0")
1759 (source
1760 (origin
1761 (method url-fetch)
1762 (uri (string-append
1763 "https://pypi.python.org/packages/source/t/testtools/testtools-"
1764 version ".tar.gz"))
1765 (sha256
1766 (base32
1767 "1dyml28ykpl5jb9khdmcdvhy1cxqingys6qvj2k04fzlaj6z3bbx"))))
1768 (build-system python-build-system)
0e88cbf8
CR
1769 (propagated-inputs
1770 `(("python-mimeparse" ,python-mimeparse)))
d8fa80e1
DT
1771 (inputs
1772 `(("python-setuptools" ,python-setuptools)
d8fa80e1
DT
1773 ("python-extras" ,python-extras)))
1774 (home-page "https://github.com/testing-cabal/testtools")
1775 (synopsis
1776 "Extensions to the Python standard library unit testing framework")
1777 (description
1778 "Testtools extends the Python standard library unit testing framework to
1779provide matchers, more debugging information, and cross-Python
1780compatibility.")
3f641af0 1781 (license license:psfl)))
d8fa80e1
DT
1782
1783(define-public python2-testtools
1784 (package-with-python2 python-testtools))
1785
5bf3afea
DT
1786(define-public python-testscenarios
1787 (package
1788 (name "python-testscenarios")
1789 (version "0.4")
1790 (source
1791 (origin
1792 (method url-fetch)
1793 (uri (string-append
1794 "https://pypi.python.org/packages/source/t/testscenarios/testscenarios-"
1795 version ".tar.gz"))
1796 (sha256
1797 (base32
1798 "1671jvrvqlmbnc42j7pc5y6vc37q44aiwrq0zic652pxyy2fxvjg"))))
1799 (build-system python-build-system)
1800 (inputs
1801 `(("python-setuptools" ,python-setuptools)
1802 ("python-testtools" ,python-testtools)
1803 ("python-mimeparse" ,python-mimeparse)))
1804 (home-page "https://launchpad.net/testscenarios")
1805 (synopsis "Pyunit extension for dependency injection")
1806 (description
1807 "Testscenarios provides clean dependency injection for Python unittest
1808style tests.")
3f641af0 1809 (license (list license:bsd-3 license:asl2.0)))) ; at the user's option
5bf3afea
DT
1810
1811(define-public python2-testscenarios
1812 (package-with-python2 python-testscenarios))
1813
dac79ecc
DT
1814(define-public python-testresources
1815 (package
1816 (name "python-testresources")
1817 (version "0.2.7")
1818 (source
1819 (origin
1820 (method url-fetch)
1821 (uri (string-append
1822 "https://pypi.python.org/packages/source/t/testresources/testresources-"
1823 version ".tar.gz"))
1824 (sha256
1825 (base32
1826 "0cbj3plbllyz42c4b5xxgwaa7mml54lakslrn4kkhinxhdri22md"))))
1827 (build-system python-build-system)
1828 (inputs
1829 `(("python-setuptools" ,python-setuptools)))
1830 (home-page "https://launchpad.net/testresources")
1831 (synopsis
1832 "Pyunit extension for managing test resources")
1833 (description
1834 "Testresources is an extension to Python's unittest to allow declarative
1835use of resources by test cases.")
3f641af0 1836 (license (list license:bsd-3 license:asl2.0)))) ; at the user's option
dac79ecc
DT
1837
1838(define-public python2-testresources
1839 (package-with-python2 python-testresources))
1840
070ab058
DT
1841(define-public python-subunit
1842 (package
1843 (name "python-subunit")
1844 (version "0.0.21")
1845 (source
1846 (origin
1847 (method url-fetch)
1848 (uri (string-append
1849 "https://pypi.python.org/packages/source/p/python-subunit/python-subunit-"
1850 version ".tar.gz"))
1851 (sha256
1852 (base32
1853 "1nkw9wfbvizmpajbj3in8ns07g7lwkiv8hip14jjlwk3cacls6jv"))))
1854 (build-system python-build-system)
1855 (inputs
1856 `(("python-setuptools" ,python-setuptools)
1857 ("python-testtools" ,python-testtools)
1858 ("python-mimeparse" ,python-mimeparse)
1859 ("python-testscenarios" ,python-testscenarios)))
1860 (home-page "http://launchpad.net/subunit")
1861 (synopsis "Python implementation of the subunit protocol")
1862 (description
1863 "Python-subunit is a Python implementation of the subunit test streaming
1864protocol.")
3f641af0 1865 (license (list license:bsd-3 license:asl2.0)))) ; at the user's option
070ab058
DT
1866
1867(define-public python2-subunit
1868 (package-with-python2 python-subunit))
1869
7787ef76
CR
1870;; Recent versions of python-fixtures need a recent version of python-pbr,
1871;; which needs a recent version of python-fixtures. To fix this circular
1872;; dependency, we keep old versions of python-fixtures and python-pbr to
1873;; bootstrap the whole thing:
1874;; - python-fixtures-0.3.16 is used to build python-pbr-0.11
1875;; - python-pbr-0.11 is used to build python-fixtures
1876;; - python-fixtures is used to build python-pbr
1877(define-public python-fixtures-0.3.16
cd49454b
DT
1878 (package
1879 (name "python-fixtures")
1880 (version "0.3.16")
1881 (source
1882 (origin
1883 (method url-fetch)
1884 (uri (string-append
1885 "https://pypi.python.org/packages/source/f/fixtures/fixtures-"
1886 version ".tar.gz"))
1887 (sha256
1888 (base32
1889 "0x9r2gwilcig5g54k60bxzg96zabizq1855lrprlb4zckalp9asc"))))
1890 (build-system python-build-system)
1891 (inputs
1892 `(("python-setuptools" ,python-setuptools)))
1893 (arguments
1894 '(#:tests? #f)) ; no setup.py test command
1895 (home-page "https://launchpad.net/python-fixtures")
1896 (synopsis "Python test fixture library")
1897 (description
1898 "Fixtures provides a way to create reusable state, useful when writing
1899Python tests.")
3f641af0 1900 (license (list license:bsd-3 license:asl2.0)))) ; at user's option
cd49454b 1901
7787ef76
CR
1902(define-public python2-fixtures-0.3.16
1903 (package-with-python2 python-fixtures-0.3.16))
1904
1905(define-public python-pbr-0.11
1906 (package
1907 (name "python-pbr")
1908 (version "0.11.0")
1909 (source
1910 (origin
1911 (method url-fetch)
1912 (uri (string-append
1913 "https://pypi.python.org/packages/source/p/pbr/pbr-"
1914 version ".tar.gz"))
1915 (sha256
1916 (base32
1917 "0v9gb7gyqf7q9s99l0nnjj9ww9b0jvyqlwm4d56pcyinxydddw6p"))))
1918 (build-system python-build-system)
1919 (arguments
1920 `(#:tests? #f)) ;; Most tests seem to use the Internet.
1921 (inputs
1922 `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16)
1923 ("python-pip" ,python-pip)
1924 ("python-setuptools" ,python-setuptools)))
1925 (home-page "https://launchpad.net/pbr")
1926 (synopsis "Change the default behavior of Python’s setuptools")
1927 (description
1928 "Python Build Reasonableness (PBR) is a library that injects some useful
1929and sensible default behaviors into your setuptools run.")
3f641af0 1930 (license license:asl2.0)))
7787ef76
CR
1931
1932(define-public python2-pbr-0.11
1933 (package-with-python2 python-pbr-0.11))
1934
1ef09c0c 1935(define-public python-pbr
e25f0174
BW
1936 (package
1937 (name "python-pbr")
1ef09c0c
BW
1938 (version "1.8.1")
1939 (source
e25f0174
BW
1940 (origin
1941 (method url-fetch)
1942 (uri (string-append
1943 "https://pypi.python.org/packages/source/p/pbr/pbr-"
1944 version
1945 ".tar.gz"))
1946 (sha256
1947 (base32
1948 "0jcny36cf3s8ar5r4a575npz080hndnrfs4np1fqhv0ym4k7c4p2"))))
1ef09c0c 1949 (build-system python-build-system)
e25f0174
BW
1950 (arguments
1951 `(#:tests? #f)) ;; Most tests seem to use the Internet.
1952 (propagated-inputs
1953 `(("python-testrepository" ,python-testrepository)
1954 ("git" ,git))) ;; pbr actually uses the "git" binary.
1ef09c0c 1955 (inputs
e25f0174
BW
1956 `(("python-fixtures" ,python-fixtures)
1957 ("python-mimeparse" ,python-mimeparse)
1958 ("python-mock" ,python-mock)
1959 ("python-setuptools" ,python-setuptools)
1960 ("python-six" ,python-six)
1961 ("python-sphinx" ,python-sphinx)
1962 ("python-testrepository" ,python-testrepository)
1963 ("python-testresources" ,python-testresources)
1964 ("python-testscenarios" ,python-testscenarios)
1965 ("python-testtools" ,python-testtools)
1966 ("python-virtualenv" ,python-virtualenv)))
1967 (home-page "https://launchpad.net/pbr")
1968 (synopsis "Change the default behavior of Python’s setuptools")
1969 (description
1970 "Python Build Reasonableness (PBR) is a library that injects some useful
1971and sensible default behaviors into your setuptools run.")
3f641af0 1972 (license license:asl2.0)))
1ef09c0c
BW
1973
1974(define-public python2-pbr
e25f0174 1975 (package-with-python2 python-pbr))
1ef09c0c 1976
7787ef76
CR
1977(define-public python-fixtures
1978 (package
1979 (name "python-fixtures")
13fcc6df 1980 (version "1.4.0")
7787ef76
CR
1981 (source
1982 (origin
1983 (method url-fetch)
13fcc6df 1984 (uri (pypi-uri "fixtures" version))
7787ef76
CR
1985 (sha256
1986 (base32
13fcc6df 1987 "0djxvdwm8s60dbfn7bhf40x6g818p3b3mlwijm1c3bqg7msn271y"))))
7787ef76
CR
1988 (build-system python-build-system)
1989 (propagated-inputs
1990 `(("python-six" ,python-six)
1991 ("python-pbr-0.11" ,python-pbr-0.11)))
1992 (inputs
1993 `(("python-pip" ,python-pip)
1994 ("python-setuptools" ,python-setuptools)
1995 ;; Tests
1996 ("python-testtools" ,python-testtools)))
1997 (arguments
1998 '(#:tests? #f)) ; no setup.py test command
1999 (home-page "https://launchpad.net/python-fixtures")
2000 (synopsis "Python test fixture library")
2001 (description
2002 "Fixtures provides a way to create reusable state, useful when writing
2003Python tests.")
3f641af0 2004 (license (list license:bsd-3 license:asl2.0)))) ; at user's option
7787ef76 2005
cd49454b
DT
2006(define-public python2-fixtures
2007 (package-with-python2 python-fixtures))
2008
b24a0c00
DT
2009(define-public python-testrepository
2010 (package
2011 (name "python-testrepository")
2012 (version "0.0.20")
2013 (source
2014 (origin
2015 (method url-fetch)
2016 (uri (string-append
2017 "https://pypi.python.org/packages/source/t/testrepository/testrepository-"
2018 version ".tar.gz"))
2019 (sha256
2020 (base32
2021 "1ssqb07c277010i6gzzkbdd46gd9mrj0bi0i8vn560n2k2y4j93m"))))
2022 (build-system python-build-system)
05de40c5 2023 (propagated-inputs
7787ef76 2024 `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16)
05de40c5 2025 ("python-testtools" ,python-testtools)))
b24a0c00
DT
2026 (inputs
2027 `(("python-setuptools" ,python-setuptools)
b24a0c00 2028 ("python-subunit" ,python-subunit)
b24a0c00
DT
2029 ("python-mimeparse" ,python-mimeparse)))
2030 (home-page "https://launchpad.net/testrepository")
2031 (synopsis "Database for Python test results")
2032 (description "Testrepository provides a database of test results which can
2033be used as part of a developer's workflow to check things such as what tests
2034have failed since the last commit or what tests are currently failing.")
3f641af0 2035 (license (list license:bsd-3 license:asl2.0)))) ; at user's option
b24a0c00
DT
2036
2037(define-public python2-testrepository
2038 (package-with-python2 python-testrepository))
2039
243a009a
DT
2040(define-public python-coverage
2041 (package
2042 (name "python-coverage")
4d4cf3dd 2043 (version "4.1")
243a009a
DT
2044 (source
2045 (origin
2046 (method url-fetch)
82a3c582 2047 (uri (pypi-uri "coverage" version))
243a009a
DT
2048 (sha256
2049 (base32
4d4cf3dd 2050 "01rbr4br4lsk0lwn8fb96zwd2xr4f0mg1w7iq3j11i8f5ig2nqs1"))))
243a009a
DT
2051 (build-system python-build-system)
2052 (inputs
2053 `(("python-setuptools" ,python-setuptools)))
2054 (home-page "http://nedbatchelder.com/code/coverage")
2055 (synopsis "Code coverage measurement for Python")
2056 (description
2057 "Coverage measures code coverage, typically during test execution. It
2058uses the code analysis tools and tracing hooks provided in the Python standard
2059library to determine which lines are executable, and which have been
2060executed.")
3f641af0 2061 (license license:bsd-3)))
243a009a
DT
2062
2063(define-public python2-coverage
2064 (package-with-python2 python-coverage))
2065
041358fb
DT
2066(define-public python-discover
2067 (package
2068 (name "python-discover")
2069 (version "0.4.0")
2070 (source
2071 (origin
2072 (method url-fetch)
2073 (uri (string-append
2074 "https://pypi.python.org/packages/source/d/discover/discover-"
2075 version ".tar.gz"))
2076 (sha256
2077 (base32
2078 "0y8d0zwiqar51kxj8lzmkvwc3b8kazb04gk5zcb4nzg5k68zmhq5"))))
2079 (build-system python-build-system)
2080 (inputs
2081 `(("python-setuptools" ,python-setuptools)))
2082 (home-page "http://pypi.python.org/pypi/discover/")
2083 (synopsis
2084 "Python test discovery for unittest")
2085 (description
2086 "Discover provides test discovery for unittest, a feature that has been
e881752c 2087backported from Python 2.7 for Python 2.4+.")
3f641af0 2088 (license license:bsd-3)))
041358fb
DT
2089
2090(define-public python2-discover
2091 (package-with-python2 python-discover))
2092
a480bc41
EB
2093(define-public behave
2094 (package
2095 (name "behave")
287cfd1a 2096 (version "1.2.5")
a480bc41
EB
2097 (source (origin
2098 (method url-fetch)
287cfd1a 2099 (uri (pypi-uri "behave" version ".tar.bz2"))
a480bc41
EB
2100 (sha256
2101 (base32
287cfd1a 2102 "1iypp6z46r19n4xmgx6m1lwmlpfjh8vapq8izigrqlaarvp2y64c"))))
a480bc41
EB
2103 (build-system python-build-system)
2104 (inputs
2105 `(("python-setuptools" ,python-setuptools)
2106 ("python-six" ,python-six)
a480bc41
EB
2107 ("python-parse" ,python-parse)
2108 ("python-parse-type" ,python-parse-type)))
2109 (arguments `(#:tests? #f)) ;TODO: tests require nose>=1.3 and
2110 ;PyHamcrest>=1.8
2111 (home-page "http://github.com/behave/behave")
2112 (synopsis "Python behavior-driven development")
2113 (description
2114 "Behave is a tool for behavior-driven development in python.
2115Behavior-driven development (or BDD) is an agile software development
2116technique that encourages collaboration between developers, QA and
2117non-technical or business participants in a software project. Behave uses
2118tests written in a natural language style, backed up by Python code.")
3f641af0 2119 (license license:x11)))
c7303d3c
DT
2120
2121(define-public python-exif-read
2122 (package
2123 (name "python-exif-read")
2a2d0981 2124 (version "2.1.2")
c7303d3c
DT
2125 (source (origin
2126 (method url-fetch)
2a2d0981 2127 (uri (pypi-uri "ExifRead" version))
c7303d3c
DT
2128 (sha256
2129 (base32
2a2d0981 2130 "1b90jf6m9vxh9nanhpyvqdq7hmfx5iggw1l8kq10jrs6xgr49qkr"))))
c7303d3c
DT
2131 (build-system python-build-system)
2132 (inputs
2133 `(("python-setuptools" ,python-setuptools)))
2134 (arguments `(#:tests? #f)) ; no tests
2135 (home-page "https://github.com/ianare/exif-py")
2136 (synopsis "Python library to extract EXIF data from image files")
2137 (description
2138 "ExifRead is a Python library to extract EXIF data from tiff and jpeg
2139files.")
3f641af0 2140 (license license:bsd-3)))
c7303d3c
DT
2141
2142(define-public python2-exif-read
2143 (package-with-python2 python-exif-read))
d5f89b22
DT
2144
2145(define-public python-pyld
2146 (package
2147 (name "python-pyld")
af1ab773 2148 (version "0.6.8")
d5f89b22
DT
2149 (source (origin
2150 (method url-fetch)
af1ab773 2151 (uri (pypi-uri "PyLD" version))
d5f89b22
DT
2152 (sha256
2153 (base32
af1ab773 2154 "0k881ffazpf8q1z8862g4bb3pzwpnz9whrci2mf311mvn1qbyqad"))))
d5f89b22
DT
2155 (build-system python-build-system)
2156 (inputs
2157 `(("python-setuptools" ,python-setuptools)))
2158 (arguments `(#:tests? #f)) ; no tests
2159 (home-page "http://github.com/digitalbazaar/pyld")
2160 (synopsis "Python implementation of the JSON-LD specification")
2161 (description
2162 "PyLD is an implementation of the JSON-LD specification.")
3f641af0 2163 (license license:bsd-3)))
d5f89b22
DT
2164
2165(define-public python2-pyld
2166 (package-with-python2 python-pyld))
3a1f9a68
DT
2167
2168(define-public python-certifi
2169 (package
2170 (name "python-certifi")
9a41f443 2171 (version "2015.11.20.1")
3a1f9a68
DT
2172 (source (origin
2173 (method url-fetch)
9a41f443 2174 (uri (pypi-uri "certifi" version))
3a1f9a68
DT
2175 (sha256
2176 (base32
9a41f443 2177 "05lgwf9rz1kn465azy2bpb3zmpnsn9gkypbhnjlclchv98ssgc1h"))))
3a1f9a68
DT
2178 (build-system python-build-system)
2179 (inputs
2180 `(("python-setuptools" ,python-setuptools)))
2181 (arguments `(#:tests? #f)) ; no tests
2182 (home-page "http://python-requests.org/")
2183 (synopsis "Python CA certificate bundle")
2184 (description
2185 "Certifi is a Python library that contains a CA certificate bundle, which
2186is used by the Requests library to verify HTTPS requests.")
3f641af0 2187 (license license:asl2.0)))
3a1f9a68
DT
2188
2189(define-public python2-certifi
2190 (package-with-python2 python-certifi))
e6cfbd36 2191
12c270dd
RW
2192(define-public python-click
2193 (package
2194 (name "python-click")
43accb58 2195 (version "6.6")
12c270dd
RW
2196 (source
2197 (origin
2198 (method url-fetch)
43accb58
LF
2199 (uri (string-append
2200 "https://pypi.python.org/packages/"
2201 "7a/00/c14926d8232b36b08218067bcd5853caefb4737cda3f0a47437151344792/"
2202 "click-" version ".tar.gz"))
12c270dd 2203 (sha256
43accb58
LF
2204 (base32
2205 "1sggipyz52crrybwbr9xvwxd4aqigvplf53k9w3ygxmzivd1jsnc"))))
12c270dd
RW
2206 (build-system python-build-system)
2207 (native-inputs
2208 `(("python-setuptools" ,python-setuptools)))
2209 (home-page "http://click.pocoo.org")
2210 (synopsis "Command line library for Python")
2211 (description
2212 "Click is a Python package for creating command line interfaces in a
2213composable way with as little code as necessary. Its name stands for
2214\"Command Line Interface Creation Kit\". It's highly configurable but comes
2215with sensible defaults out of the box.")
3f641af0 2216 (license license:bsd-3)))
12c270dd
RW
2217
2218(define-public python2-click
2219 (package-with-python2 python-click))
2220
addc808d
EF
2221(define-public python-wheel
2222 (package
2223 (name "python-wheel")
40981b5c 2224 (version "0.29.0")
e1ba0749
EF
2225 (source
2226 (origin
2227 (method url-fetch)
2228 (uri (pypi-uri "wheel" version))
2229 (sha256
2230 (base32
40981b5c 2231 "0j0n38hg1jvrmyy68f9ikvzq1gs9g0sx4ws7maf8wi3bwbbqmfqy"))))
e1ba0749
EF
2232 (build-system python-build-system)
2233 (native-inputs
2234 `(("python-setuptools" ,python-setuptools)
2235 ("python-jsonschema" ,python-jsonschema)
2236 ("python-pytest-cov" ,python-pytest-cov)))
2237 (home-page "https://bitbucket.org/pypa/wheel/")
2238 (synopsis "Format for built Python packages")
2239 (description
2240 "A wheel is a ZIP-format archive with a specially formatted filename and
2241the @code{.whl} extension. It is designed to contain all the files for a PEP
2242376 compatible install in a way that is very close to the on-disk format. Many
2243packages will be properly installed with only the @code{Unpack} step and the
2244unpacked archive preserves enough information to @code{Spread} (copy data and
2245scripts to their final locations) at any later time. Wheel files can be
2246installed with a newer @code{pip} or with wheel's own command line utility.")
8ad4ae20
LF
2247 (license license:expat)
2248 (properties `((python2-variant . ,(delay python2-wheel))))))
addc808d
EF
2249
2250(define-public python2-wheel
8ad4ae20
LF
2251 (let ((wheel (package-with-python2
2252 (strip-python2-variant python-wheel))))
264ae686 2253 (package (inherit wheel)
8ad4ae20
LF
2254 (native-inputs `(("python2-functools32" ,python2-functools32)
2255 ,@(package-native-inputs wheel))))))
2256
addc808d 2257
ae641128 2258(define-public python-requests
e6cfbd36 2259 (package
ae641128 2260 (name "python-requests")
74a066f9 2261 (version "2.9.1")
e6cfbd36
DT
2262 (source (origin
2263 (method url-fetch)
5d691657 2264 (uri (pypi-uri "requests" version))
e6cfbd36
DT
2265 (sha256
2266 (base32
74a066f9 2267 "0zsqrzlybf25xscgi7ja4s48y2abf9wvjkn47wh984qgs1fq2xy5"))))
e6cfbd36 2268 (build-system python-build-system)
5d691657 2269 (native-inputs
6a308947
EF
2270 `(("python-setuptools" ,python-setuptools)
2271 ("python-py" ,python-py)
5d691657
EF
2272 ("python-pytest" ,python-pytest)
2273 ("python-pytest-cov" ,python-pytest-cov)
2274 ("python-wheel" ,python-wheel)))
e6cfbd36
DT
2275 (home-page "http://python-requests.org/")
2276 (synopsis "Python HTTP library")
2277 (description
2278 "Requests is a Python HTTP client library. It aims to be easier to use
2279than Python’s urllib2 library.")
3f641af0 2280 (license license:asl2.0)))
864b5211 2281
e9005180
DT
2282;; Some software requires an older version of Requests, notably Docker
2283;; Compose.
2284(define-public python-requests-2.7
2285 (package (inherit python-requests)
2286 (version "2.7.0")
2287 (source (origin
2288 (method url-fetch)
2289 (uri (pypi-uri "requests" version))
2290 (sha256
2291 (base32
2292 "0gdr9dxm24amxpbyqpbh3lbwxc2i42hnqv50sigx568qssv3v2ir"))))))
2293
ae641128 2294(define-public python2-requests
8ad4ae20 2295 (package-with-python2 python-requests))
ae641128 2296
ea521b42
DT
2297(define-public python-vcversioner
2298 (package
2299 (name "python-vcversioner")
2300 (version "2.14.0.0")
2301 (source
2302 (origin
2303 (method url-fetch)
2304 (uri (pypi-uri "vcversioner" version))
2305 (sha256
2306 (base32
2307 "11ivq1bm7v0yb4nsfbv9m7g7lyjn112gbvpjnjz8nv1fx633dm5c"))))
2308 (build-system python-build-system)
2309 (inputs
2310 `(("python-setuptools" ,python-setuptools)))
2311 (synopsis "Python library for version number discovery")
2312 (description "Vcversioner is a Python library that inspects tagging
2313information in a variety of version control systems in order to discover
2314version numbers.")
2315 (home-page "https://github.com/habnabit/vcversioner")
3f641af0 2316 (license license:isc)))
ea521b42
DT
2317
2318(define-public python2-vcversioner
2319 (package-with-python2 python-vcversioner))
ae641128 2320
864b5211
DT
2321(define-public python-jsonschema
2322 (package
2323 (name "python-jsonschema")
b3667afb 2324 (version "2.5.1")
864b5211
DT
2325 (source (origin
2326 (method url-fetch)
2327 (uri
2328 (string-append
2329 "https://pypi.python.org/packages/source/j/jsonschema/jsonschema-"
2330 version ".tar.gz"))
2331 (sha256
2332 (base32
b3667afb 2333 "0hddbqjm4jq63y8jf44nswina1crjs16l9snb6m3vvgyg31klrrn"))))
864b5211
DT
2334 (build-system python-build-system)
2335 (inputs
b3667afb
DT
2336 `(("python-setuptools" ,python-setuptools)
2337 ("python-vcversioner" ,python-vcversioner)))
864b5211
DT
2338 (home-page "http://github.com/Julian/jsonschema")
2339 (synopsis "Implementation of JSON Schema for Python")
2340 (description
2341 "Jsonschema is an implementation of JSON Schema for Python.")
a14600ec
LF
2342 (license license:expat)
2343 (properties `((python2-variant . ,(delay python2-jsonschema))))))
864b5211
DT
2344
2345(define-public python2-jsonschema
a14600ec
LF
2346 (let ((jsonschema (package-with-python2
2347 (strip-python2-variant python-jsonschema))))
264ae686
EF
2348 (package (inherit jsonschema)
2349 (inputs
2350 `(("python2-functools32" ,python2-functools32)
2351 ,@(package-inputs jsonschema))))))
850189b8
DT
2352
2353(define-public python-unidecode
2354 (package
2355 (name "python-unidecode")
8925d4f3 2356 (version "0.04.18")
850189b8
DT
2357 (source (origin
2358 (method url-fetch)
8925d4f3 2359 (uri (pypi-uri "Unidecode" version))
850189b8
DT
2360 (sha256
2361 (base32
8925d4f3 2362 "12hhblqy1ajvidm38im4171x4arg83pfmziyn53nizp29p3m14gi"))))
850189b8
DT
2363 (build-system python-build-system)
2364 (inputs
2365 `(("python-setuptools" ,python-setuptools)))
2366 (home-page "https://pypi.python.org/pypi/Unidecode")
2367 (synopsis "ASCII transliterations of Unicode text")
2368 (description
2369 "Unidecode provides ASCII transliterations of Unicode text. Unidecode is
2370useful when integrating with legacy code that doesn't support Unicode, or for
2371ease of entry of non-Roman names on a US keyboard, or when constructing ASCII
2372machine identifiers from human-readable Unicode strings that should still be
2373somewhat intelligeble.")
3f641af0 2374 (license license:gpl2+)))
850189b8
DT
2375
2376(define-public python2-unidecode
2377 (package-with-python2 python-unidecode))
6d45fef4
DT
2378
2379(define-public python-pyjwt
2380 (package
2381 (name "python-pyjwt")
eb31d4b4 2382 (version "1.4.0")
6d45fef4
DT
2383 (source
2384 (origin
2385 (method url-fetch)
eb31d4b4 2386 (uri (pypi-uri "PyJWT" version))
6d45fef4
DT
2387 (sha256
2388 (base32
eb31d4b4 2389 "1556v2jppd8mjkkj66pxb5rcazm35jq81r233mdl8hfmz9n3icp1"))))
6d45fef4 2390 (build-system python-build-system)
eb31d4b4
EF
2391 (native-inputs
2392 `(("python-setuptools" ,python-setuptools)
2393 ("python-pytest-runner" ,python-pytest-runner)))
6d45fef4
DT
2394 (arguments
2395 '(#:tests? #f)) ; test suite doesn't work
2396 (home-page "http://github.com/progrium/pyjwt")
2397 (synopsis "JSON Web Token implementation in Python")
2398 (description
2399 "PyJWT is a JSON Web Token implementation written in Python.")
bd3fa666 2400 (license license:expat)))
6d45fef4
DT
2401
2402(define-public python2-pyjwt
2403 (package-with-python2 python-pyjwt))
2404
2cec1f6f
DT
2405(define-public python-oauthlib
2406 (package
2407 (name "python-oauthlib")
bde2171d 2408 (version "1.0.3")
2cec1f6f
DT
2409 (source (origin
2410 (method url-fetch)
bde2171d 2411 (uri (pypi-uri "oauthlib" version))
2cec1f6f
DT
2412 (sha256
2413 (base32
bde2171d 2414 "1bfrj70vdjxjw74khbyh6f0dksv7p5rh2346jnlrffyacd3gwjzg"))))
2cec1f6f 2415 (build-system python-build-system)
bde2171d 2416 (native-inputs
59f151ec 2417 `(("python-coverage" ,python-coverage)
2cec1f6f
DT
2418 ("python-nose" ,python-nose)
2419 ("python-mock" ,python-mock)))
bde2171d
EF
2420 (inputs
2421 `(("python-blinker" ,python-blinker)
2422 ("python-cryptography" ,python-cryptography)
2423 ("python-pyjwt" ,python-pyjwt)))
2cec1f6f
DT
2424 (home-page "https://github.com/idan/oauthlib")
2425 (synopsis "OAuth implementation for Python")
2426 (description
2427 "Oauthlib is a generic, spec-compliant, thorough implementation of the
2428OAuth request-signing logic.")
3f641af0 2429 (license license:bsd-3)
59f151ec 2430 (properties `((python2-variant . ,(delay python2-oauthlib))))))
2cec1f6f
DT
2431
2432(define-public python2-oauthlib
59f151ec 2433 (let ((base (package-with-python2 (strip-python2-variant python-oauthlib))))
2cec1f6f
DT
2434 (package
2435 (inherit base)
59f151ec
EF
2436 (native-inputs `(("python2-setuptools" ,python2-setuptools)
2437 ("python2-unittest2" ,python2-unittest2)
2438 ,@(package-native-inputs base))))))
ec5dbb5c
DT
2439
2440(define-public python-itsdangerous
2441 (package
2442 (name "python-itsdangerous")
2443 (version "0.24")
2444 (source
2445 (origin
2446 (method url-fetch)
2447 (uri (string-append
2448 "https://pypi.python.org/packages/source/i/itsdangerous/itsdangerous-"
2449 version ".tar.gz"))
2450 (sha256
2451 (base32
2452 "06856q6x675ly542ig0plbqcyab6ksfzijlyf1hzhgg3sgwgrcyb"))))
2453 (build-system python-build-system)
ec5dbb5c
DT
2454 (home-page "http://github.com/mitsuhiko/itsdangerous")
2455 (synopsis "Python library for passing data to/from untrusted environments")
2456 (description
2457 "Itsdangerous provides various helpers to pass trusted data to untrusted
2458environments and back.")
3f641af0 2459 (license license:bsd-3)
194d0d98 2460 (properties `((python2-variant . ,(delay python2-itsdangerous))))))
ec5dbb5c
DT
2461
2462(define-public python2-itsdangerous
194d0d98
EF
2463 (let ((base (package-with-python2
2464 (strip-python2-variant python-itsdangerous))))
2465 (package
2466 (inherit base)
2467 (native-inputs `(("python2-setuptools" ,python2-setuptools)
2468 ,@(package-native-inputs base))))))
5731cae3 2469
8d12be1e
RW
2470(define-public python-pyyaml
2471 (package
2472 (name "python-pyyaml")
2473 (version "3.11")
2474 (source
2475 (origin
2476 (method url-fetch)
2477 (uri (string-append
2478 "https://pypi.python.org/packages/source/P/PyYAML/PyYAML-"
2479 version ".tar.gz"))
2480 (sha256
2481 (base32
2482 "1s26125vfnskng58ym37xhwv8v0mm95b2cwbjfag8prfhy596v63"))))
2483 (build-system python-build-system)
2484 (inputs
2485 `(("libyaml" ,libyaml)))
2486 (native-inputs
2487 `(("python-setuptools" ,python-setuptools)))
2488 (home-page "http://pyyaml.org/wiki/PyYAML")
2489 (synopsis "YAML parser and emitter for Python")
2490 (description
2491 "PyYAML is a YAML parser and emitter for Python. PyYAML features a
2492complete YAML 1.1 parser, Unicode support, pickle support, capable extension
2493API, and sensible error messages. PyYAML supports standard YAML tags and
2494provides Python-specific tags that allow to represent an arbitrary Python
2495object.")
2496 (license license:expat)))
2497
2498(define-public python2-pyyaml
2499 (package-with-python2 python-pyyaml))
2500
5731cae3
DT
2501(define-public python-virtualenv
2502 (package
2503 (name "python-virtualenv")
17804240 2504 (version "13.1.2")
5731cae3
DT
2505 (source
2506 (origin
2507 (method url-fetch)
17804240 2508 (uri (pypi-uri "virtualenv" version))
5731cae3
DT
2509 (sha256
2510 (base32
17804240 2511 "1p732accxwqfjbdna39k8w8lp9gyw91vr4kzkhm8mgfxikqqxg5a"))))
5731cae3 2512 (build-system python-build-system)
17804240
EF
2513 (arguments
2514 `(#:phases
2515 (modify-phases %standard-phases
2516 (replace 'check
2517 (lambda _ (zero? (system* "py.test")))))))
5731cae3
DT
2518 (inputs
2519 `(("python-setuptools" ,python-setuptools)
2520 ("python-mock" ,python-mock)
17804240 2521 ("python-pytest" ,python-pytest)))
5731cae3
DT
2522 (home-page "https://virtualenv.pypa.io/")
2523 (synopsis "Virtual Python environment builder")
2524 (description
2525 "Virtualenv is a tool to create isolated Python environments.")
bd3fa666 2526 (license license:expat)))
5731cae3
DT
2527
2528(define-public python2-virtualenv
2529 (package-with-python2 python-virtualenv))
8176d4d5
DT
2530
2531(define-public python-markupsafe
2532 (package
2533 (name "python-markupsafe")
2534 (version "0.23")
2535 (source
2536 (origin
2537 (method url-fetch)
2538 (uri (string-append
2539 "https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-"
2540 version ".tar.gz"))
2541 (sha256
2542 (base32
2543 "1hvip33wva3fnmvfp9x5klqri7hpl1hkgqmjbss18nmrb7zimv54"))))
2544 (build-system python-build-system)
2545 (inputs
2546 `(("python-setuptools" ,python-setuptools)))
2547 (home-page "http://github.com/mitsuhiko/markupsafe")
2548 (synopsis "XML/HTML/XHTML markup safe string implementation for Python")
2549 (description
2550 "Markupsafe provides an XML/HTML/XHTML markup safe string implementation
2551for Python.")
3f641af0 2552 (license license:bsd-3)))
8176d4d5
DT
2553
2554(define-public python2-markupsafe
2555 (package-with-python2 python-markupsafe))
fe34f0d1
DT
2556
2557(define-public python-jinja2
2558 (package
2559 (name "python-jinja2")
e98149b3 2560 (version "2.8")
fe34f0d1
DT
2561 (source
2562 (origin
2563 (method url-fetch)
e98149b3 2564 (uri (pypi-uri "Jinja2" version))
fe34f0d1
DT
2565 (sha256
2566 (base32
e98149b3 2567 "1x0v41lp5m1pjix3l46zx02b7lqp2hflgpnxwkywxynvi3zz47xw"))))
fe34f0d1
DT
2568 (build-system python-build-system)
2569 (inputs
2570 `(("python-setuptools" ,python-setuptools)
2571 ("python-markupsafe" ,python-markupsafe)))
2572 (home-page "http://jinja.pocoo.org/")
2573 (synopsis "Python template engine")
2574 (description
2575 "Jinja2 is a small but fast and easy to use stand-alone template engine
2576written in pure Python.")
3f641af0 2577 (license license:bsd-3)))
fe34f0d1
DT
2578
2579(define-public python2-jinja2
2580 (package-with-python2 python-jinja2))
3580ab8b 2581
f7d17ac7
EE
2582(define-public python-pystache
2583 (package
2584 (name "python-pystache")
2585 (version "0.5.4")
2586 (source (origin
2587 (method url-fetch)
2588 (uri (pypi-uri "pystache" version))
2589 (sha256
2590 (base32
2591 "0nmqsfmiw4arjxqkmf9z66ml950pcdjk6aq4gin4sywmzdjw5fzp"))))
2592 (build-system python-build-system)
2593 (native-inputs
2594 `(("python-setuptools" ,python-setuptools)))
2595 (home-page "http://defunkt.io/pystache/")
2596 (synopsis "Python logic-less template engine")
2597 (description
2598 "Pystache is a Python implementation of the framework agnostic,
2599logic-free templating system Mustache.")
2600 (license license:expat)))
2601
2602(define-public python2-pystache
2603 (package-with-python2 python-pystache))
2604
1285119b
RW
2605(define-public python-joblib
2606 (package
2607 (name "python-joblib")
2608 (version "0.9.0b4")
2609 (source (origin
2610 (method url-fetch)
2611 (uri (string-append "https://pypi.python.org/packages/source/"
2612 "j/joblib/joblib-" version ".tar.gz"))
2613 (sha256
2614 (base32
2615 "1dvw3f8jgj6h0fxkghbgyclvdzc7l0ig7n0vis70awb5kczb9bs3"))))
2616 (build-system python-build-system)
2617 (native-inputs
2618 `(("python-setuptools" ,python-setuptools)
2619 ("python-nose" ,python-nose)))
2620 (home-page "http://pythonhosted.org/joblib/")
2621 (synopsis "Using Python functions as pipeline jobs")
2622 (description
2623 "Joblib is a set of tools to provide lightweight pipelining in Python.
2624In particular, joblib offers: transparent disk-caching of the output values
2625and lazy re-evaluation (memoize pattern), easy simple parallel computing
2626logging and tracing of the execution.")
3f641af0 2627 (license license:bsd-3)))
1285119b
RW
2628
2629(define-public python2-joblib
2630 (package-with-python2 python-joblib))
2631
3580ab8b
DT
2632(define-public python-docutils
2633 (package
2634 (name "python-docutils")
2635 (version "0.12")
2636 (source
2637 (origin
2638 (method url-fetch)
2639 (uri (string-append
2640 "https://pypi.python.org/packages/source/d/docutils/docutils-"
2641 version ".tar.gz"))
2642 (sha256
2643 (base32
2644 "1ylnjnw1x4b2y7blr6x35ncdzn69k253kw4cdkv6asdb21w73ny7"))))
2645 (build-system python-build-system)
2646 (inputs
2647 `(("python-setuptools" ,python-setuptools)))
2648 (arguments
2649 '(#:tests? #f)) ; no setup.py test command
2650 (home-page "http://docutils.sourceforge.net/")
2651 (synopsis "Python Documentation Utilities")
2652 (description
2653 "Docutils is a modular system for processing documentation into useful
2654formats, such as HTML, XML, and LaTeX. For input Docutils supports
2655reStructuredText.")
2656 ;; Most of the source code is public domain, but some source files are
2657 ;; licensed under the PFSL, BSD 2-clause, and GPLv3+ licenses.
3f641af0 2658 (license (list license:public-domain license:psfl license:bsd-2 license:gpl3+))))
3580ab8b
DT
2659
2660(define-public python2-docutils
2661 (package-with-python2 python-docutils))
fb35b7c0
DT
2662
2663(define-public python-pygments
2664 (package
2665 (name "python-pygments")
9f442285 2666 (version "2.0.2")
fb35b7c0
DT
2667 (source
2668 (origin
2669 (method url-fetch)
9f442285 2670 (uri (pypi-uri "Pygments" version))
fb35b7c0
DT
2671 (sha256
2672 (base32
9f442285 2673 "0lagrwifsgn0s8bzqahpr87p7gd38xja8f06akscinp6hj89283k"))))
fb35b7c0
DT
2674 (build-system python-build-system)
2675 (inputs
2676 `(("python-setuptools" ,python-setuptools)))
2677 (home-page "http://pygments.org/")
2678 (synopsis "Syntax highlighting")
2679 (description
2680 "Pygments is a syntax highlighting package written in Python.")
3f641af0 2681 (license license:bsd-2)))
fb35b7c0
DT
2682
2683(define-public python2-pygments
2684 (package-with-python2 python-pygments))
9dd6078d
DT
2685
2686(define-public python-sphinx
2687 (package
2688 (name "python-sphinx")
2689 (version "1.2.3")
2690 (source
2691 (origin
2692 (method url-fetch)
2693 (uri (string-append
2694 "https://pypi.python.org/packages/source/S/Sphinx/Sphinx-"
2695 version ".tar.gz"))
2696 (sha256
2697 (base32
2698 "011xizm3jnmf4cvs5i6kgf6c5nn046h79i8j0vd0f27yw9j3p4wl"))))
2699 (build-system python-build-system)
2700 (inputs
2701 `(("python-setuptools" ,python-setuptools)
2702 ("python-jinja2" ,python-jinja2)
2703 ("python-docutils" ,python-docutils)
2704 ("python-pygments" ,python-pygments)))
2705 (home-page "http://sphinx-doc.org/")
2706 (synopsis "Python documentation generator")
2707 (description "Sphinx is a tool that makes it easy to create documentation
2708for Python projects or other documents consisting of multiple reStructuredText
2709sources.")
3f641af0 2710 (license license:bsd-3)))
9dd6078d
DT
2711
2712(define-public python2-sphinx
2713 (package-with-python2 python-sphinx))
6888830b 2714
ad320b20
RW
2715(define-public python-sphinx-rtd-theme
2716 (package
2717 (name "python-sphinx-rtd-theme")
2718 (version "0.1.6")
2719 (source
2720 (origin
2721 (method url-fetch)
2722 (uri (string-append "https://pypi.python.org/packages/source/s/"
2723 "sphinx_rtd_theme/sphinx_rtd_theme-"
2724 version ".tar.gz"))
2725 (sha256
2726 (base32
2727 "19nw3rn7awplcdrz63kg1njqwkbymfg9lwn7l2grhdyhyr2gaa8g"))))
2728 (build-system python-build-system)
2729 (arguments
2730 `(;; With standard flags, the install phase attempts to create a zip'd
2731 ;; egg file, and fails with an error: 'ZIP does not support timestamps
2732 ;; before 1980'
2733 #:configure-flags '("--single-version-externally-managed"
2734 "--record=sphinx-rtd-theme.txt")))
2735 (native-inputs
2736 `(("python-setuptools" ,python-setuptools)))
2737 (inputs
2738 `(("python-docutils" ,python-docutils)
2739 ("python-sphinx" ,python-sphinx)))
2740 (home-page "https://github.com/snide/sphinx_rtd_theme/")
2741 (synopsis "ReadTheDocs.org theme for Sphinx")
2742 (description "A theme for Sphinx used by ReadTheDocs.org.")
bd3fa666 2743 (license license:expat)))
ad320b20
RW
2744
2745(define-public python2-sphinx-rtd-theme
2746 (package-with-python2 python-sphinx-rtd-theme))
2747
f4de5b3b
CAW
2748(define-public python-feedgenerator
2749 (package
2750 (name "python-feedgenerator")
f0412aa2 2751 (version "1.8")
f4de5b3b 2752 (source
f4de5b3b 2753 (origin
f0412aa2
EF
2754 (method url-fetch)
2755 (uri (pypi-uri "feedgenerator" version))
f4de5b3b
CAW
2756 (sha256
2757 (base32
f0412aa2 2758 "0mkimp1fpdan4p3882vzcws4l594k71ich4g0wq97jbra7p602n0"))))
f4de5b3b 2759 (build-system python-build-system)
f0412aa2 2760 (native-inputs
f4de5b3b
CAW
2761 `(("python-setuptools" ,python-setuptools)
2762 ("python-pytz" ,python-pytz)
2763 ("python-six" ,python-six)))
f0412aa2 2764 (home-page "https://github.com/getpelican/feedgenerator")
f4de5b3b
CAW
2765 (synopsis
2766 "Standalone version of Django's Atom/RSS feed generator")
2767 (description
2768 "Feedgenerator-py3k is a standalone version of Django's feedgenerator,
2769which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
3f641af0 2770 (license license:bsd-3)))
f4de5b3b
CAW
2771
2772(define-public python2-feedgenerator
2773 (package-with-python2 python-feedgenerator))
2774
59ad30e3
CAW
2775(define-public python-blinker
2776 (package
2777 (name "python-blinker")
7fb9ff4d 2778 (version "1.4")
59ad30e3
CAW
2779 (source
2780 (origin
2781 (method url-fetch)
7fb9ff4d 2782 (uri (pypi-uri "blinker" version))
59ad30e3
CAW
2783 (sha256
2784 (base32
7fb9ff4d 2785 "1dpq0vb01p36jjwbhhd08ylvrnyvcc82yxx3mwjx6awrycjyw6j7"))))
59ad30e3
CAW
2786 (build-system python-build-system)
2787 (native-inputs
2788 `(("python-setuptools" ,python-setuptools)))
2789 ;; No "test" command supplied to setuptools, so unless there's another way
2790 ;; to run tests, we're skipping them!
2791 (arguments '(#:tests? #f))
2792 (home-page "http://pythonhosted.org/blinker/")
2793 (synopsis "Fast, simple object-to-object and broadcast signaling")
2794 (description
2795 "Blinker provides a fast dispatching system that allows any number of
2796interested parties to subscribe to events, or \"signals\".")
2797 (license license:expat)))
2798
2799(define-public python2-blinker
2800 (package-with-python2 python-blinker))
2801
b8050e71
CAW
2802(define-public pelican
2803 (package
2804 (name "pelican")
11f97c27 2805 (version "3.6.3")
b8050e71
CAW
2806 (source
2807 (origin
2808 (method url-fetch)
11f97c27 2809 (uri (pypi-uri "pelican" version))
b8050e71
CAW
2810 (sha256
2811 (base32
11f97c27 2812 "1hn94rb4q3zmcq16in055xikal4dba5hfx3zznq7warllcgc9f8k"))))
b8050e71 2813 (build-system python-build-system)
d9f2dece 2814 (inputs
b8050e71
CAW
2815 `(("python-feedgenerator" ,python-feedgenerator)
2816 ("python-jinja2" ,python-jinja2)
2817 ("python-pygments" ,python-pygments)
2818 ("python-docutils" ,python-docutils)
2819 ("python-pytz" ,python-pytz)
2820 ("python-blinker" ,python-blinker)
2821 ("python-unidecode" ,python-unidecode)
2822 ("python-six" ,python-six)
2823 ("python-dateutil-2" ,python-dateutil-2)))
2824 (home-page "http://getpelican.com/")
2825 (arguments
2826 `(;; XXX Requires a lot more packages to do unit tests :P
2827 #:tests? #f
2828 #:phases (modify-phases %standard-phases
2829 (add-before
2830 'install 'adjust-requires
2831 ;; Since feedgenerator is installed from git, it doesn't
2832 ;; conform to the version requirements.
2833 ;;
2834 ;; We *do have* "feedgenerator >= 1.6", but strip off the
2835 ;; version requirement so setuptools doesn't get confused.
2836 (lambda _
2837 (substitute* "setup.py"
2838 (("['\"]feedgenerator.*?['\"]")
2839 "'feedgenerator'")))))))
2840 (synopsis "Python-based static site publishing system")
2841 (description
2842 "Pelican is a tool to generate a static blog from reStructuredText,
2843Markdown input files, and more. Pelican uses Jinja2 for templating
2844and is very extensible.")
3f641af0 2845 (license license:agpl3+)))
b8050e71 2846
240ca4aa
RW
2847(define-public python-scikit-learn
2848 (package
2849 (name "python-scikit-learn")
be0a4c26 2850 (version "0.16.1")
240ca4aa
RW
2851 (source
2852 (origin
2853 (method url-fetch)
2854 (uri (string-append
2855 "https://github.com/scikit-learn/scikit-learn/archive/"
2856 version ".tar.gz"))
7e21b9fb 2857 (file-name (string-append name "-" version ".tar.gz"))
240ca4aa
RW
2858 (sha256
2859 (base32
be0a4c26 2860 "140skabifgc7lvvj873pnzlwx0ni6q8qkrsyad2ccjb3h8rxzkih"))))
240ca4aa
RW
2861 (build-system python-build-system)
2862 (arguments
2863 `(#:phases
2864 (alist-cons-before
2f6b3d2e
RW
2865 'check 'set-HOME
2866 ;; some tests require access to "$HOME"
2867 (lambda _ (setenv "HOME" "/tmp"))
2868 ;; Tests can only be run after the library has been installed and not
2869 ;; within the source directory.
2870 (alist-cons-after
2871 'install 'check
2872 (lambda _
2873 (with-directory-excursion "/tmp"
2874 ;; With Python 3 one test of 3334 fails
2875 ;; (sklearn.tests.test_common.test_transformers); see
2876 ;; https://github.com/scikit-learn/scikit-learn/issues/3693
2877 (system* "nosetests" "-v" "sklearn")))
2878 (alist-delete 'check %standard-phases)))))
240ca4aa 2879 (inputs
2f6b3d2e 2880 `(("openblas" ,openblas)
240ca4aa
RW
2881 ("python-nose" ,python-nose)))
2882 (propagated-inputs
2883 `(("python-numpy" ,python-numpy)
2884 ("python-scipy" ,python-scipy)))
2885 (home-page "http://scikit-learn.org/")
2886 (synopsis "Machine Learning in Python")
2887 (description
2888 "Scikit-learn provides simple and efficient tools for data
2889mining and data analysis.")
25a2f81f
EF
2890 (license license:bsd-3)
2891 (properties `((python2-variant . ,(delay python2-scikit-learn))))))
240ca4aa
RW
2892
2893(define-public python2-scikit-learn
25a2f81f 2894 (package-with-python2 (strip-python2-variant python-scikit-learn)))
240ca4aa 2895
12f8f9bb
RW
2896(define-public python-scikit-image
2897 (package
2898 (name "python-scikit-image")
2899 (version "0.11.3")
2900 (source
2901 (origin
2902 (method url-fetch)
2903 (uri (string-append
2904 "https://pypi.python.org/packages/source/s/scikit-image/scikit-image-"
2905 version ".tar.gz"))
2906 (sha256
2907 (base32 "0jz416fqvpahqyffw8plmszzfj669w8wvf3y9clnr5lr6a7md3kn"))))
2908 (build-system python-build-system)
2909 (propagated-inputs
2910 `(("python-matplotlib" ,python-matplotlib)
2911 ("python-networkx" ,python-networkx)
2912 ("python-numpy" ,python-numpy)
2913 ("python-scipy" ,python-scipy)
2914 ("python-six" ,python-six)
2915 ("python-pillow" ,python-pillow)))
2916 (native-inputs
2917 `(("python-cython" ,python-cython)
2918 ("python-setuptools" ,python-setuptools)))
2919 (home-page "http://scikit-image.org/")
2920 (synopsis "Image processing in Python")
2921 (description
e881752c 2922 "Scikit-image is a collection of algorithms for image processing.")
2b031d3f
EF
2923 (license license:bsd-3)
2924 (properties `((python2-variant . ,(delay python2-scikit-image))))))
12f8f9bb
RW
2925
2926(define-public python2-scikit-image
2b031d3f
EF
2927 (let ((scikit-image (package-with-python2
2928 (strip-python2-variant python-scikit-image))))
12f8f9bb
RW
2929 (package (inherit scikit-image)
2930 (native-inputs
2931 `(("python2-mock" ,python2-mock)
2932 ,@(package-native-inputs scikit-image)))
2933 (propagated-inputs
2934 `(("python2-pytz" ,python2-pytz)
2b031d3f 2935 ,@(package-propagated-inputs scikit-image))))))
12f8f9bb 2936
5394a6a6
RW
2937(define-public python-redis
2938 (package
2939 (name "python-redis")
2940 (version "2.10.3")
2941 (source
2942 (origin
2943 (method url-fetch)
2944 (uri (string-append
2945 "https://pypi.python.org/packages/source/r/redis/redis-"
2946 version ".tar.gz"))
2947 (sha256
2948 (base32 "1701qjwn4n05q90fdg4bsg96s27xf5s4hsb4gxhv3xk052q3gyx4"))))
2949 (build-system python-build-system)
2950 ;; Tests require a running Redis server
2951 (arguments '(#:tests? #f))
2952 (native-inputs
2953 `(("python-setuptools" ,python-setuptools)
2954 ("python-pytest" ,python-pytest)))
2955 (home-page "https://github.com/andymccurdy/redis-py")
2956 (synopsis "Redis Python client")
2957 (description
2958 "This package provides a Python interface to the Redis key-value store.")
2959 (license license:expat)))
2960
2961(define-public python2-redis
2962 (package-with-python2 python-redis))
2963
748cef5b
RW
2964(define-public python-rq
2965 (package
2966 (name "python-rq")
2967 (version "0.5.2")
2968 (source
2969 (origin
2970 (method url-fetch)
2971 (uri (string-append
2972 "https://pypi.python.org/packages/source/r/rq/rq-"
2973 version ".tar.gz"))
2974 (sha256
2975 (base32 "0b0z5hn8wkfg300hx7816csgv3bcfamlr29fi3yzgqmpqxwj3fix"))))
2976 (build-system python-build-system)
2977 (propagated-inputs
2978 `(("python-click" ,python-click)
2979 ("python-redis" ,python-redis)))
2980 (native-inputs
2981 `(("python-setuptools" ,python-setuptools)))
2982 (home-page "http://python-rq.org/")
2983 (synopsis "Simple job queues for Python")
2984 (description
2985 "RQ (Redis Queue) is a simple Python library for queueing jobs and
2986processing them in the background with workers. It is backed by Redis and it
2987is designed to have a low barrier to entry.")
3f641af0 2988 (license license:bsd-2)))
748cef5b
RW
2989
2990(define-public python2-rq
2991 (package-with-python2 python-rq))
2992
6888830b
FB
2993(define-public python-cython
2994 (package
2995 (name "python-cython")
dd22efef 2996 (version "0.24.1")
6888830b
FB
2997 (source
2998 (origin
2999 (method url-fetch)
56918e26 3000 (uri (pypi-uri "Cython" version))
6888830b
FB
3001 (sha256
3002 (base32
dd22efef 3003 "1fg7fmpvfcq9md4ncyqnnylyjy4z3ksdrshzis95g1sh03d8z044"))))
6888830b
FB
3004 (build-system python-build-system)
3005 ;; we need the full python package and not just the python-wrapper
3006 ;; because we need libpython3.3m.so
3007 (inputs
3008 `(("python" ,python)))
3009 (arguments
3010 `(#:phases
b92f651b
EF
3011 (modify-phases %standard-phases
3012 (add-before 'check 'set-HOME
3013 ;; some tests require access to "$HOME/.cython"
3014 (lambda _ (setenv "HOME" "/tmp")))
3015 (replace 'check
3016 (lambda _ (zero? (system* "python" "runtests.py" "-vv")))))))
6888830b
FB
3017 (home-page "http://cython.org/")
3018 (synopsis "C extensions for Python")
3019 (description "Cython is an optimising static compiler for both the Python
3020programming language and the extended Cython programming language. It makes
3021writing C extensions for Python as easy as Python itself.")
3f641af0 3022 (license license:asl2.0)
48b311b1 3023 (properties `((python2-variant . ,(delay python2-cython))))))
6888830b
FB
3024
3025(define-public python2-cython
48b311b1
LC
3026 (package (inherit (package-with-python2
3027 (strip-python2-variant python-cython)))
6888830b
FB
3028 (name "python2-cython")
3029 (inputs
3030 `(("python-2" ,python-2))))) ; this is not automatically changed
0da98533
FB
3031
3032;; This version of numpy is missing the documentation and is only used to
3033;; build matplotlib which is required to build numpy's documentation.
3034(define python-numpy-bootstrap
3035 (package
3036 (name "python-numpy-bootstrap")
ef9b4c04 3037 (version "1.10.4")
0da98533
FB
3038 (source
3039 (origin
3040 (method url-fetch)
de67e922 3041 (uri (string-append "mirror://sourceforge/numpy/NumPy/" version
0da98533
FB
3042 "/numpy-" version ".tar.gz"))
3043 (sha256
3044 (base32
ef9b4c04 3045 "1bjjhvncraka5s6i4lg644jrxij6bvycxy7an20gcz3a0m11iygp"))))
0da98533
FB
3046 (build-system python-build-system)
3047 (inputs
3048 `(("python-nose" ,python-nose)
cba256f8
RW
3049 ("openblas" ,openblas)
3050 ("lapack" ,lapack)))
0da98533 3051 (native-inputs
19afbea1 3052 `(("gfortran" ,gfortran)))
0da98533
FB
3053 (arguments
3054 `(#:phases
3055 (alist-cons-before
3056 'build 'set-environment-variables
3057 (lambda* (#:key inputs #:allow-other-keys)
dbdfe515
RW
3058 (call-with-output-file "site.cfg"
3059 (lambda (port)
cba256f8
RW
3060 (format port
3061 "[openblas]
dbdfe515
RW
3062libraries = openblas
3063library_dirs = ~a/lib
3064include_dirs = ~a/include
cba256f8
RW
3065
3066[lapack]
3067lapack_libs = lapack
3068library_dirs = ~a/lib
3069include_dirs = ~a/include
3070"
3071 (assoc-ref inputs "openblas")
3072 (assoc-ref inputs "openblas")
3073 (assoc-ref inputs "lapack")
3074 (assoc-ref inputs "lapack"))))
dbdfe515
RW
3075 ;; Use "gcc" executable, not "cc".
3076 (substitute* "numpy/distutils/system_info.py"
3077 (("c = distutils\\.ccompiler\\.new_compiler\\(\\)")
3078 "c = distutils.ccompiler.new_compiler(); c.set_executables(compiler='gcc',compiler_so='gcc',linker_exe='gcc',linker_so='gcc -shared')"))
3079 #t)
6a843168
FB
3080 ;; Tests can only be run after the library has been installed and not
3081 ;; within the source directory.
3082 (alist-cons-after
3083 'install 'check
89b5c60e 3084 (lambda _
6a843168 3085 (with-directory-excursion "/tmp"
89b5c60e 3086 (zero? (system* "python" "-c"
6a843168 3087 "import numpy; numpy.test(verbose=2)"))))
89b5c60e
AE
3088 (alist-delete
3089 'check
6a843168 3090 %standard-phases)))))
0da98533
FB
3091 (home-page "http://www.numpy.org/")
3092 (synopsis "Fundamental package for scientific computing with Python")
3093 (description "NumPy is the fundamental package for scientific computing
e881752c 3094with Python. It contains among other things: a powerful N-dimensional array
0da98533
FB
3095object, sophisticated (broadcasting) functions, tools for integrating C/C++
3096and Fortran code, useful linear algebra, Fourier transform, and random number
3097capabilities.")
3f641af0 3098 (license license:bsd-3)))
0da98533
FB
3099
3100(define python2-numpy-bootstrap
3101 (package-with-python2 python-numpy-bootstrap))
15bfe6d6 3102
3a1bfe18
RW
3103(define-public python2-fastlmm
3104 (package
3105 (name "python2-fastlmm")
b074e7d4 3106 (version "0.2.21")
3a1bfe18
RW
3107 (source
3108 (origin
3109 (method url-fetch)
b074e7d4 3110 (uri (pypi-uri "fastlmm" version ".zip"))
3a1bfe18
RW
3111 (sha256
3112 (base32
b074e7d4 3113 "1q8c34rpmwkfy3r4d5172pzdkpfryj561897z9r3x22gq7813x1m"))))
3a1bfe18
RW
3114 (build-system python-build-system)
3115 (arguments
3116 `(#:python ,python-2)) ; only Python 2.7 is supported
3117 (propagated-inputs
3118 `(("python2-numpy" ,python2-numpy)
3119 ("python2-scipy" ,python2-scipy)
3120 ("python2-matplotlib" ,python2-matplotlib)
3121 ("python2-pandas" ,python2-pandas)
3122 ("python2-scikit-learn" ,python2-scikit-learn)
3123 ("python2-cython" ,python2-cython)
3124 ("python2-pysnptools" ,python2-pysnptools)))
3125 (native-inputs
3126 `(("unzip" ,unzip)
3127 ("python2-mock" ,python2-mock)
3128 ("python2-setuptools" ,python2-setuptools)))
3129 (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/fastlmm/")
3130 (synopsis "Perform genome-wide association studies on large data sets")
3131 (description
3132 "FaST-LMM, which stands for Factored Spectrally Transformed Linear Mixed
3133Models, is a program for performing both single-SNP and SNP-set genome-wide
3134association studies (GWAS) on extremely large data sets.")
3f641af0 3135 (license license:asl2.0)))
3a1bfe18 3136
2ee8869a
FB
3137(define-public python-numpy
3138 (package (inherit python-numpy-bootstrap)
3139 (name "python-numpy")
3140 (outputs '("out" "doc"))
89b5c60e 3141 (inputs
2ee8869a
FB
3142 `(("which" ,which)
3143 ("python-setuptools" ,python-setuptools)
3144 ("python-matplotlib" ,python-matplotlib)
3145 ("python-sphinx" ,python-sphinx)
3146 ("python-pyparsing" ,python-pyparsing)
3147 ("python-numpydoc" ,python-numpydoc)
3148 ,@(package-inputs python-numpy-bootstrap)))
3149 (native-inputs
3150 `(("pkg-config" ,pkg-config)
3151 ("texlive" ,texlive)
3152 ("texinfo" ,texinfo)
3153 ("perl" ,perl)
3154 ,@(package-native-inputs python-numpy-bootstrap)))
3155 (arguments
89b5c60e 3156 `(,@(substitute-keyword-arguments
2ee8869a
FB
3157 (package-arguments python-numpy-bootstrap)
3158 ((#:phases phases)
3159 `(alist-cons-after
3160 'install 'install-doc
3161 (lambda* (#:key outputs #:allow-other-keys)
3162 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
89b5c60e
AE
3163 (doc (string-append
3164 data "/doc/" ,name "-"
2ee8869a
FB
3165 ,(package-version python-numpy-bootstrap)))
3166 (info (string-append data "/info"))
3167 (html (string-append doc "/html"))
3168 (pyver ,(string-append "PYVER=")))
3169 (with-directory-excursion "doc"
3170 (mkdir-p html)
3171 (system* "make" "html" pyver)
3172 (system* "make" "latex" "PAPER=a4" pyver)
89b5c60e 3173 (system* "make" "-C" "build/latex"
2ee8869a
FB
3174 "all-pdf" "PAPER=a4" pyver)
3175 ;; FIXME: Generation of the info file fails.
3176 ;; (system* "make" "info" pyver)
3177 ;; (mkdir-p info)
3178 ;; (copy-file "build/texinfo/numpy.info"
3179 ;; (string-append info "/numpy.info"))
3180 (for-each (lambda (file)
3181 (copy-file (string-append "build/latex" file)
3182 (string-append doc file)))
3183 '("/numpy-ref.pdf" "/numpy-user.pdf"))
3184 (with-directory-excursion "build/html"
3185 (for-each (lambda (file)
3186 (let* ((dir (dirname file))
3187 (tgt-dir (string-append html "/" dir)))
3188 (unless (equal? "." dir)
3189 (mkdir-p tgt-dir))
96c46210 3190 (install-file file html)))
2ee8869a
FB
3191 (find-files "." ".*"))))))
3192 ,phases)))))))
3193
764c077b 3194(define-public python2-numpy
57b7b8cd 3195 (package-with-python2 python-numpy))
2ee8869a 3196
15bfe6d6
FB
3197(define-public python-pyparsing
3198 (package
3199 (name "python-pyparsing")
e0669289 3200 (version "2.0.3")
15bfe6d6
FB
3201 (source
3202 (origin
3203 (method url-fetch)
de67e922
LF
3204 (uri (string-append "mirror://sourceforge/pyparsing/pyparsing"
3205 "/pyparsing-" version
15bfe6d6
FB
3206 "/pyparsing-" version ".tar.gz"))
3207 (sha256
3208 (base32
e0669289 3209 "0kw4py7gn45j93q8r7bzajfrjdc3xlsn2yzln41lf9zmrghjkrq6"))))
15bfe6d6
FB
3210 (build-system python-build-system)
3211 (outputs '("out" "doc"))
3212 (arguments
3213 `(#:tests? #f ; no test target
3214 #:modules ((guix build python-build-system)
3215 (guix build utils))
3216 #:phases
3217 (alist-cons-after
3218 'install 'install-doc
3219 (lambda* (#:key outputs #:allow-other-keys)
89b5c60e 3220 (let* ((doc (string-append (assoc-ref outputs "doc")
15bfe6d6
FB
3221 "/share/doc/" ,name "-" ,version))
3222 (html-doc (string-append doc "/html"))
3223 (examples (string-append doc "/examples")))
3224 (mkdir-p html-doc)
3225 (mkdir-p examples)
89b5c60e 3226 (for-each
15bfe6d6 3227 (lambda (dir tgt)
89b5c60e 3228 (map (lambda (file)
96c46210 3229 (install-file file tgt))
15bfe6d6
FB
3230 (find-files dir ".*")))
3231 (list "docs" "htmldoc" "examples")
3232 (list doc html-doc examples))))
3233 %standard-phases)))
3234 (home-page "http://pyparsing.wikispaces.com")
3235 (synopsis "Python parsing class library")
3236 (description
3237 "The pyparsing module is an alternative approach to creating and
3238executing simple grammars, vs. the traditional lex/yacc approach, or the use
3239of regular expressions. The pyparsing module provides a library of classes
3240that client code uses to construct the grammar directly in Python code.")
bd3fa666 3241 (license license:expat)))
15bfe6d6
FB
3242
3243(define-public python2-pyparsing
3244 (package-with-python2 python-pyparsing))
3245
ec00de35
FB
3246(define-public python-numpydoc
3247 (package
3248 (name "python-numpydoc")
3249 (version "0.5")
3250 (source
3251 (origin
3252 (method url-fetch)
89b5c60e 3253 (uri (string-append
ec00de35
FB
3254 "https://pypi.python.org/packages/source/n/numpydoc/numpydoc-"
3255 version ".tar.gz"))
3256 (sha256
3257 (base32
5e4d8f67
AE
3258 "0d4dnifaxkll50jx6czj05y8cb4ny60njd2wz299sj2jxfy51w4k"))
3259 (modules '((guix build utils)))
3260 (snippet
3261 '(begin
3262 ;; Drop a test requiring matplotlib, which we cannot add as an
3263 ;; input since it would create a circular dependency: Extend the
3264 ;; test for Python 3, where it is already dropped, to Python 2.
3265 (substitute* "numpydoc/tests/test_plot_directive.py"
3266 (("3") "2"))))))
ec00de35
FB
3267 (build-system python-build-system)
3268 (inputs
3269 `(("python-setuptools" ,python-setuptools)
3270 ("python-docutils" ,python-docutils)
3271 ("python-sphinx" ,python-sphinx)
3272 ("python-nose" ,python-nose)))
3273 (home-page "https://pypi.python.org/pypi/numpydoc")
3274 (synopsis
3275 "Numpy's Sphinx extensions")
3276 (description
3277 "Sphinx extension to support docstrings in Numpy format.")
3f641af0 3278 (license license:bsd-2)))
ec00de35
FB
3279
3280(define-public python2-numpydoc
5e4d8f67 3281 (package-with-python2 python-numpydoc))
1c65314c 3282
1e656049
RW
3283(define-public python-numexpr
3284 (package
3285 (name "python-numexpr")
26112c0a 3286 (version "2.6.0")
1e656049
RW
3287 (source
3288 (origin
3289 (method url-fetch)
26112c0a 3290 (uri (pypi-uri "numexpr" version))
1e656049
RW
3291 (sha256
3292 (base32
26112c0a 3293 "0i6iagl2hhbr8q4qzbbjd859v5806vqylq87fq7pi914ps6d6cag"))))
1e656049
RW
3294 (build-system python-build-system)
3295 (arguments `(#:tests? #f)) ; no tests included
3296 (propagated-inputs
3297 `(("python-numpy" ,python-numpy)))
3298 (home-page "https://github.com/pydata/numexpr")
3299 (synopsis "Fast numerical expression evaluator for NumPy")
3300 (description
3301 "Numexpr is a fast numerical expression evaluator for NumPy. With it,
3302expressions that operate on arrays are accelerated and use less memory than
3303doing the same calculation in Python. In addition, its multi-threaded
3304capabilities can make use of all your cores, which may accelerate
3305computations, most specially if they are not memory-bounded (e.g. those using
3306transcendental functions).")
fc1a170e
EF
3307 (license license:expat)
3308 (properties `((python2-variant . ,(delay python2-numexpr))))))
1e656049
RW
3309
3310(define-public python2-numexpr
fc1a170e 3311 (package-with-python2 (strip-python2-variant python-numexpr)))
1e656049 3312
1c65314c
FB
3313(define-public python-matplotlib
3314 (package
3315 (name "python-matplotlib")
1bbc659f 3316 (version "1.4.3")
1c65314c
FB
3317 (source
3318 (origin
3319 (method url-fetch)
de67e922
LF
3320 (uri (string-append "mirror://sourceforge/matplotlib/matplotlib"
3321 "/matplotlib-" version
1c65314c
FB
3322 "/matplotlib-" version ".tar.gz"))
3323 (sha256
3324 (base32
1bbc659f 3325 "1dn05cvd0g984lzhh72wa0z93psgwshbbg93fkab6slx5m3l95av"))
fc1adab1 3326 (patches (search-patches "matplotlib-setupext-tk.patch"))))
1c65314c
FB
3327 (build-system python-build-system)
3328 (outputs '("out" "doc"))
25f9a068
FB
3329 (propagated-inputs ; the following packages are all needed at run time
3330 `(("python-pyparsing" ,python-pyparsing)
3331 ("python-pygobject" ,python-pygobject)
3332 ("gobject-introspection" ,gobject-introspection)
1bbc659f 3333 ("python-tkinter" ,python "tk")
25f9a068
FB
3334 ;; The 'gtk+' package (and 'gdk-pixbuf', 'atk' and 'pango' propagated
3335 ;; from 'gtk+') provides the required 'typelib' files used by
3336 ;; 'gobject-introspection'. The location of these files is set with the
3337 ;; help of the environment variable GI_TYPELIB_PATH. At build time this
3338 ;; is done automatically by a 'native-search-path' procedure. However,
3339 ;; at run-time the user must set this variable as follows:
3340 ;;
3341 ;; export GI_TYPELIB_PATH=~/.guix-profile/lib/girepository-1.0
25f9a068
FB
3342 ("gtk+" ,gtk+)
3343 ;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of
3344 ;; 'pycairo'. However, 'pygobject' makes use of a 'pycairo' 'context'
3345 ;; object. For this reason we need to import both libraries.
3346 ;; https://pythonhosted.org/cairocffi/cffi_api.html#converting-pycairo
3347 ("python-pycairo" ,python-pycairo)
3348 ("python-cairocffi" ,python-cairocffi)))
1c65314c
FB
3349 (inputs
3350 `(("python-setuptools" ,python-setuptools)
3351 ("python-dateutil" ,python-dateutil-2)
1c65314c
FB
3352 ("python-six" ,python-six)
3353 ("python-pytz" ,python-pytz)
3354 ("python-numpy" ,python-numpy-bootstrap)
3355 ("python-sphinx" ,python-sphinx)
3356 ("python-numpydoc" ,python-numpydoc)
3357 ("python-nose" ,python-nose)
3358 ("python-mock" ,python-mock)
3359 ("libpng" ,libpng)
3360 ("imagemagick" ,imagemagick)
3361 ("freetype" ,freetype)
25f9a068
FB
3362 ("cairo" ,cairo)
3363 ("glib" ,glib)
4e7a137a 3364 ("python-pillow" ,python-pillow)
1c65314c 3365 ;; FIXME: Add backends when available.
1c65314c
FB
3366 ;("python-wxpython" ,python-wxpython)
3367 ;("python-pyqt" ,python-pyqt)
1bbc659f
FB
3368 ("tcl" ,tcl)
3369 ("tk" ,tk)))
1c65314c
FB
3370 (native-inputs
3371 `(("pkg-config" ,pkg-config)
3372 ("texlive" ,texlive)
3373 ("texinfo" ,texinfo)))
3374 (arguments
3375 `(#:phases
25f9a068
FB
3376 (alist-cons-before
3377 'build 'configure-environment
3378 (lambda* (#:key outputs inputs #:allow-other-keys)
3379 (let ((cairo (assoc-ref inputs "cairo"))
3380 (gtk+ (assoc-ref inputs "gtk+")))
3381 ;; Setting these directories in the 'basedirlist' of 'setup.cfg'
3382 ;; has not effect.
25f9a068
FB
3383 (setenv "LD_LIBRARY_PATH"
3384 (string-append cairo "/lib:" gtk+ "/lib"))
3385 (setenv "HOME" (getcwd))
3386 (call-with-output-file "setup.cfg"
3387 (lambda (port)
1bbc659f
FB
3388 (format port "[directories]~%
3389basedirlist = ~a,~a~%
57b7b8cd 3390 [rc_options]~%
1bbc659f
FB
3391backend = TkAgg~%"
3392 (assoc-ref inputs "tcl")
3393 (assoc-ref inputs "tk"))))))
25f9a068
FB
3394 (alist-cons-after
3395 'install 'install-doc
3396 (lambda* (#:key outputs #:allow-other-keys)
3397 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3398 (doc (string-append data "/doc/" ,name "-" ,version))
3399 (info (string-append data "/info"))
3400 (html (string-append doc "/html")))
3401 (with-directory-excursion "doc"
25f9a068
FB
3402 ;; Produce pdf in 'A4' format.
3403 (substitute* (find-files "." "conf\\.py")
3404 (("latex_paper_size = 'letter'")
3405 "latex_paper_size = 'a4'"))
3406 (mkdir-p html)
3407 (mkdir-p info)
3408 ;; The doc recommends to run the 'html' target twice.
3409 (system* "python" "make.py" "html")
3410 (system* "python" "make.py" "html")
18b31516 3411 (copy-recursively "build/html" html)
25f9a068
FB
3412 (system* "python" "make.py" "latex")
3413 (system* "python" "make.py" "texinfo")
18b31516
FB
3414 (symlink (string-append html "/_images")
3415 (string-append info "/matplotlib-figures"))
3416 (with-directory-excursion "build/texinfo"
3417 (substitute* "matplotlib.texi"
3418 (("@image\\{([^,]*)" all file)
3419 (string-append "@image{matplotlib-figures/" file)))
3420 (symlink (string-append html "/_images")
3421 "./matplotlib-figures")
3422 (system* "makeinfo" "--no-split"
3423 "-o" "matplotlib.info" "matplotlib.texi"))
25f9a068
FB
3424 (copy-file "build/texinfo/matplotlib.info"
3425 (string-append info "/matplotlib.info"))
3426 (copy-file "build/latex/Matplotlib.pdf"
18b31516 3427 (string-append doc "/Matplotlib.pdf")))))
25f9a068 3428 %standard-phases))))
1c65314c
FB
3429 (home-page "http://matplotlib.org")
3430 (synopsis "2D plotting library for Python")
3431 (description
3432 "Matplotlib is a Python 2D plotting library which produces publication
3433quality figures in a variety of hardcopy formats and interactive environments
3434across platforms. Matplotlib can be used in Python scripts, the python and
3435ipython shell, web application servers, and six graphical user interface
3436toolkits.")
3f641af0 3437 (license license:psfl)
57b7b8cd 3438 (properties `((python2-variant . ,(delay python2-matplotlib))))))
1c65314c 3439
764c077b 3440(define-public python2-matplotlib
57b7b8cd
LC
3441 (let ((matplotlib (package-with-python2
3442 (strip-python2-variant python-matplotlib))))
764c077b 3443 (package (inherit matplotlib)
88c26834
AE
3444 ;; Make sure to use special packages for Python 2 instead
3445 ;; of those automatically rewritten by package-with-python2.
89b5c60e 3446 (propagated-inputs
7ca0dbc3 3447 `(("python2-pycairo" ,python2-pycairo)
764c077b 3448 ("python2-pygobject-2" ,python2-pygobject-2)
1bbc659f
FB
3449 ("python2-tkinter" ,python-2 "tk")
3450 ,@(fold alist-delete (package-propagated-inputs matplotlib)
3451 '("python-pycairo" "python-pygobject" "python-tkinter")))))))
94914805 3452
0dde6232
RW
3453(define-public python2-pysnptools
3454 (package
3455 (name "python2-pysnptools")
a800018e 3456 (version "0.3.9")
0dde6232
RW
3457 (source
3458 (origin
3459 (method url-fetch)
3f2e9675 3460 (uri (pypi-uri "pysnptools" version ".zip"))
0dde6232
RW
3461 (sha256
3462 (base32
a800018e 3463 "1wybggjzz8zw7aav4pjsg2h22xp17a1lghrprza1pxwlm7wf96y2"))))
0dde6232
RW
3464 (build-system python-build-system)
3465 (arguments
3466 `(#:python ,python-2)) ; only Python 2.7 is supported
3467 (propagated-inputs
3468 `(("python2-numpy" ,python2-numpy)
3469 ("python2-scipy" ,python2-scipy)
a800018e 3470 ("python2-pytz" ,python2-pytz)
0dde6232 3471 ("python2-cython" ,python2-cython)))
a800018e
EF
3472 (inputs
3473 `(("python2-dateutil-2" ,python2-dateutil-2)
3474 ("python2-pandas" ,python2-pandas)
3475 ("python2-six" ,python2-six)))
0dde6232
RW
3476 (native-inputs
3477 `(("unzip" ,unzip)
3478 ("python2-setuptools" ,python2-setuptools)))
3479 (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/")
3480 (synopsis "Library for reading and manipulating genetic data")
3481 (description
3482 "PySnpTools is a library for reading and manipulating genetic data. It
3483can, for example, efficiently read whole PLINK *.bed/bim/fam files or parts of
3484those files. It can also efficiently manipulate ranges of integers using set
3485operators such as union, intersection, and difference.")
3f641af0 3486 (license license:asl2.0)))
0dde6232 3487
c9b1b4f9
RW
3488(define-public python-rpy2
3489 (package
3490 (name "python-rpy2")
ec3bcbc7 3491 (version "2.7.6")
c9b1b4f9
RW
3492 (source
3493 (origin
3494 (method url-fetch)
ec3bcbc7 3495 (uri (pypi-uri "rpy2" version))
c9b1b4f9
RW
3496 (sha256
3497 (base32
ec3bcbc7 3498 "0nhan2qvrw7b7gg5zddwa22kybdv3x1g26vkd7q8lvnkgzrs4dga"))))
c9b1b4f9
RW
3499 (build-system python-build-system)
3500 (inputs
3501 `(("python-six" ,python-six)
3502 ("readline" ,readline)
3503 ("icu4c" ,icu4c)
3504 ("pcre" ,pcre)
3505 ("r" ,r)))
3506 (native-inputs
5ff6575b
RW
3507 `(("python-setuptools" ,python-setuptools)
3508 ("zlib" ,zlib)))
c9b1b4f9
RW
3509 (home-page "http://rpy.sourceforge.net/")
3510 (synopsis "Python interface to the R language")
3511 (description "rpy2 is a redesign and rewrite of rpy. It is providing a
3512low-level interface to R from Python, a proposed high-level interface,
3513including wrappers to graphical libraries, as well as R-like structures and
3514functions.")
3f641af0 3515 (license license:gpl3+)))
c9b1b4f9
RW
3516
3517(define-public python2-rpy2
3518 (let ((rpy2 (package-with-python2 python-rpy2)))
3519 (package (inherit rpy2)
3520 (native-inputs
3521 `(("python2-singledispatch" ,python2-singledispatch)
3522 ,@(package-native-inputs rpy2))))))
3523
bb986599
FB
3524(define-public python-scipy
3525 (package
3526 (name "python-scipy")
ba8a0824 3527 (version "0.16.0")
bb986599
FB
3528 (source
3529 (origin
3530 (method url-fetch)
de67e922
LF
3531; http://downloads.sourceforge.net/project/scipy/scipy/0.16.1/scipy-0.16.1.tar.gz
3532 (uri (string-append "mirror://sourceforge/scipy/scipy/" version
da6ce3f1 3533 "/scipy-" version ".tar.xz"))
bb986599
FB
3534 (sha256
3535 (base32
ba8a0824 3536 "0wa0a4skpda3gx7lb12yn19nhbairlyxrvda2lz2bcawk3x5qzz2"))))
bb986599 3537 (build-system python-build-system)
dd86c0d1 3538 (propagated-inputs
bb986599
FB
3539 `(("python-numpy" ,python-numpy)
3540 ("python-matplotlib" ,python-matplotlib)
dd86c0d1
RW
3541 ("python-pyparsing" ,python-pyparsing)))
3542 (inputs
3543 `(("lapack" ,lapack)
719b01c1 3544 ("openblas" ,openblas)))
bb986599 3545 (native-inputs
dd86c0d1
RW
3546 `(("python-nose" ,python-nose)
3547 ("python-sphinx" ,python-sphinx)
5248d49e 3548 ("python-numpydoc" ,python-numpydoc)
dd86c0d1 3549 ("gfortran" ,gfortran)
bb986599
FB
3550 ("texlive" ,texlive)
3551 ("perl" ,perl)))
3552 (outputs '("out" "doc"))
3553 (arguments
3554 `(#:phases
3555 (alist-cons-before
719b01c1 3556 'build 'configure-openblas
bb986599 3557 (lambda* (#:key inputs #:allow-other-keys)
719b01c1
RW
3558 (call-with-output-file "site.cfg"
3559 (lambda (port)
3560 (format port
3561 "[blas]
3562libraries = openblas
3563library_dirs = ~a/lib
3564include_dirs = ~a/include
3565[atlas]
3566library_dirs = ~a/lib
3567atlas_libs = openblas
3568"
3569 (assoc-ref inputs "openblas")
3570 (assoc-ref inputs "openblas")
3571 (assoc-ref inputs "openblas"))))
3572 #t)
bb986599
FB
3573 (alist-cons-after
3574 'install 'install-doc
3575 (lambda* (#:key outputs #:allow-other-keys)
3576 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3577 (doc (string-append data "/doc/" ,name "-" ,version))
3578 (html (string-append doc "/html"))
3579 (pyver ,(string-append "PYVER=")))
3580 (with-directory-excursion "doc"
bb986599
FB
3581 ;; Fix generation of images for mathematical expressions.
3582 (substitute* (find-files "source" "conf\\.py")
3583 (("pngmath_use_preview = True")
3584 "pngmath_use_preview = False"))
3585 (mkdir-p html)
3586 (system* "make" "html" pyver)
3587 (system* "make" "latex" "PAPER=a4" pyver)
3588 (system* "make" "-C" "build/latex" "all-pdf" "PAPER=a4" pyver)
3589 (copy-file "build/latex/scipy-ref.pdf"
3590 (string-append doc "/scipy-ref.pdf"))
3591 (with-directory-excursion "build/html"
3592 (for-each (lambda (file)
3593 (let* ((dir (dirname file))
3594 (tgt-dir (string-append html "/" dir)))
96c46210 3595 (install-file file html)))
bb986599
FB
3596 (find-files "." ".*"))))))
3597 ;; Tests can only be run after the library has been installed and not
3598 ;; within the source directory.
3599 (alist-cons-after
3600 'install 'check
89b5c60e 3601 (lambda _
bb986599
FB
3602 (with-directory-excursion "/tmp"
3603 (zero? (system* "python" "-c" "import scipy; scipy.test()"))))
89b5c60e
AE
3604 (alist-delete
3605 'check
4f9ff21e
RW
3606 (alist-cons-after
3607 'unpack 'fix-tests
3608 (lambda _
3609 (substitute* "scipy/integrate/tests/test_quadpack.py"
3610 (("libm.so") "libm.so.6"))
3611 #t)
3612 %standard-phases)))))))
bb986599
FB
3613 (home-page "http://www.scipy.org/")
3614 (synopsis "The Scipy library provides efficient numerical routines")
3615 (description "The SciPy library is one of the core packages that make up
3616the SciPy stack. It provides many user-friendly and efficient numerical
3617routines such as routines for numerical integration and optimization.")
3f641af0 3618 (license license:bsd-3)))
bb986599 3619
764c077b 3620(define-public python2-scipy
57b7b8cd 3621 (package-with-python2 python-scipy))
bb986599 3622
94914805
EB
3623(define-public python-sqlalchemy
3624 (package
3625 (name "python-sqlalchemy")
a4ba286b 3626 (version "1.0.12")
94914805
EB
3627 (source
3628 (origin
3629 (method url-fetch)
3630 (uri (string-append "https://pypi.python.org/packages/source/S/"
3631 "SQLAlchemy/SQLAlchemy-" version ".tar.gz"))
3632 (sha256
3633 (base32
a4ba286b 3634 "1l8qclhd0s90w3pvwhi5mjxdwr5j7gw7cjka2fx6f2vqmq7f4yb6"))))
94914805
EB
3635 (build-system python-build-system)
3636 (native-inputs
3637 `(("python-cython" ,python-cython) ;for c extensions
3638 ("python-pytest" ,python-pytest)
3639 ("python-mock" ,python-mock))) ;for tests
3640 (arguments
3641 `(#:phases (alist-replace
3642 'check
3643 (lambda _ (zero? (system* "py.test")))
3644 %standard-phases)))
3645 (home-page "http://www.sqlalchemy.org")
3646 (synopsis "Database abstraction library")
3647 (description
3648 "SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that
3649gives application developers the full power and flexibility of SQL. It
3650provides a full suite of well known enterprise-level persistence patterns,
3651designed for efficient and high-performing database access, adapted into a
3652simple and Pythonic domain language.")
3f641af0 3653 (license license:x11)))
94914805
EB
3654
3655(define-public python2-sqlalchemy
3656 (package-with-python2 python-sqlalchemy))
c937562e 3657
af5a4602
CAW
3658(define-public python-alembic
3659 (package
3660 (name "python-alembic")
bb484529 3661 (version "0.8.7")
af5a4602
CAW
3662 (source
3663 (origin
3664 (method url-fetch)
3665 (uri (pypi-uri "alembic" version))
3666 (sha256
3667 (base32
bb484529 3668 "0ias6fdzwr2s220fnjspkdgm9510bd0cnap0hx5y4zy4srba9f3z"))))
af5a4602
CAW
3669 (build-system python-build-system)
3670 (native-inputs
3671 `(("python-mock" ,python-mock)
3672 ("python-pytest-cov" ,python-pytest-cov)))
3673 (propagated-inputs
3674 `(("python-sqlalchemy" ,python-sqlalchemy)
3675 ("python-mako" ,python-mako)
3676 ("python-editor" ,python-editor)))
3677 (home-page "http://bitbucket.org/zzzeek/alembic")
3678 (synopsis
3679 "Database migration tool for SQLAlchemy")
3680 (description
3681 "Alembic is a lightweight database migration tool for usage with the
3682SQLAlchemy Database Toolkit for Python.")
3683 (license license:expat)
3684 (properties `((python2-variant . ,(delay python2-alembic))))))
3685
3686(define-public python2-alembic
3687 (let ((alembic (package-with-python2
3688 (strip-python2-variant python-alembic))))
3689 (package
3690 (inherit alembic)
3691 (native-inputs `(("python2-setuptools" ,python2-setuptools)
3692 ,@(package-native-inputs alembic))))))
3693
1671c07c
EB
3694(define-public python-distutils-extra
3695 (package
3696 (name "python-distutils-extra")
3697 (version "2.38")
3698 (source
3699 (origin
3700 (method url-fetch)
3701 (uri (string-append "https://launchpad.net/python-distutils-extra/trunk/"
3702 version "/+download/python-distutils-extra-"
3703 version ".tar.gz"))
3704 (sha256
3705 (base32
3706 "0lx15kcbby9zisx33p2h5hgakgwh2bvh0ibag8z0px4j6ifhs41x"))))
3707 (build-system python-build-system)
3708 (native-inputs
3709 `(("python-setuptools" ,python-setuptools)))
3710 (home-page "https://launchpad.net/python-distutils-extra/")
3711 (synopsis "Enhancements to Python's distutils")
3712 (description
3713 "The python-distutils-extra module enables you to easily integrate
3714gettext support, themed icons, and scrollkeeper-based documentation into
3715Python's distutils.")
3f641af0 3716 (license license:gpl2)))
1671c07c
EB
3717
3718(define-public python2-distutils-extra
3719 (package-with-python2 python-distutils-extra))
ea5456c8
EB
3720
3721(define-public python2-elib.intl
3722 (package
3723 (name "python2-elib.intl")
3724 (version "0.0.3")
3725 (source
3726 (origin
3727 ;; This project doesn't tag releases or publish tarballs, so we take
3728 ;; source from a (semi-arbitrary, i.e. latest as of now) git commit.
3729 (method git-fetch)
3730 (uri (git-reference
3731 (url "https://github.com/dieterv/elib.intl.git")
3732 (commit "d09997cfef")))
3733 (sha256
3734 (base32
3735 "0y7vzff9xgbnaay7m0va1arl6g68ncwrvbgwl7jqlclsahzzb09d"))))
3736 (build-system python-build-system)
3737 (native-inputs
3738 `(("python2-setuptools" ,python2-setuptools)))
3739 (arguments
3740 ;; incompatible with Python 3 (exception syntax)
3741 `(#:python ,python-2
3742 #:tests? #f
3743 ;; With standard flags, the install phase attempts to create a zip'd
3744 ;; egg file, and fails with an error: 'ZIP does not support timestamps
3745 ;; before 1980'
3746 #:configure-flags '("--single-version-externally-managed"
3747 "--record=elib.txt")))
3748 (home-page "https://github.com/dieterv/elib.intl")
3749 (synopsis "Enhanced internationalization for Python")
3750 (description
3751 "The elib.intl module provides enhanced internationalization (I18N)
3752services for your Python modules and applications.")
3f641af0 3753 (license license:lgpl3+)))
ea5456c8 3754
c937562e
EB
3755(define-public python-pillow
3756 (package
3757 (name "python-pillow")
debf4179 3758 (version "3.3.1")
c937562e
EB
3759 (source
3760 (origin
3761 (method url-fetch)
f1d9231d 3762 (uri (pypi-uri "Pillow" version))
c937562e
EB
3763 (sha256
3764 (base32
debf4179 3765 "1w9x3dfrg8b5lqhpjl0fczfyf9842wbqwgxbjjq4vfpxv5jwm49l"))))
c937562e
EB
3766 (build-system python-build-system)
3767 (native-inputs
3768 `(("python-setuptools" ,python-setuptools)
3769 ("python-nose" ,python-nose)))
3770 (inputs
5ff408d9
SB
3771 `(("freetype" ,freetype)
3772 ("lcms" ,lcms)
c937562e
EB
3773 ("zlib" ,zlib)
3774 ("libjpeg" ,libjpeg)
3775 ("openjpeg" ,openjpeg)
5ff408d9
SB
3776 ("libtiff" ,libtiff)
3777 ("libwebp" ,libwebp)))
c937562e
EB
3778 (propagated-inputs
3779 `(;; Used at runtime for pkg_resources
3780 ("python-setuptools" ,python-setuptools)))
3781 (arguments
e5358a6b
LC
3782 `(#:phases (modify-phases %standard-phases
3783 (add-before
3784 'install 'disable-egg-compression
3785 (lambda _
3786 ;; Leave the .egg uncompressed since compressing it would
3787 ;; prevent the GC from identifying run-time dependencies.
3788 ;; See <http://bugs.gnu.org/20765>.
3789 (let ((port (open-file "setup.cfg" "a")))
3790 (display "\n[easy_install]\nzip_ok = 0\n"
3791 port)
3792 (close-port port)
3793 #t)))
3794 (add-after
3795 'install 'check-installed
3796 (lambda _
3797 (begin
3798 (setenv "HOME" (getcwd))
3799 (and (zero? (system* "python" "selftest.py"
3800 "--installed"))
3801 (zero? (system* "python" "test-installed.py"))))))
3802 (delete 'check))))
c937562e
EB
3803 (home-page "https://pypi.python.org/pypi/Pillow")
3804 (synopsis "Fork of the Python Imaging Library")
3805 (description
3806 "The Python Imaging Library adds image processing capabilities to your
3807Python interpreter. This library provides extensive file format support, an
3808efficient internal representation, and fairly powerful image processing
3809capabilities. The core image library is designed for fast access to data
3810stored in a few basic pixel formats. It should provide a solid foundation for
3811a general image processing tool.")
3f641af0 3812 (license (license:x11-style
c937562e
EB
3813 "http://www.pythonware.com/products/pil/license.htm"
3814 "The PIL Software License"))))
3815
3816(define-public python2-pillow
3817 (package-with-python2 python-pillow))
bb986599 3818
a415f036
FB
3819(define-public python-pycparser
3820 (package
3821 (name "python-pycparser")
38eb6919 3822 (version "2.14")
a415f036
FB
3823 (source
3824 (origin
3825 (method url-fetch)
38eb6919 3826 (uri (pypi-uri "pycparser" version))
a415f036
FB
3827 (sha256
3828 (base32
38eb6919 3829 "0wvzyb6rxsfj3xcnpa4ynbh9qc7rrbk2277d5wqpphmx9akv8nbr"))))
a415f036
FB
3830 (outputs '("out" "doc"))
3831 (build-system python-build-system)
3832 (native-inputs
3833 `(("pkg-config" ,pkg-config)
3834 ("python-setuptools" ,python-setuptools)))
3835 (arguments
89b5c60e 3836 `(#:phases
a415f036
FB
3837 (alist-replace
3838 'check
3839 (lambda _
3840 (with-directory-excursion "tests"
3841 (zero? (system* "python" "all_tests.py"))))
3842 (alist-cons-after
3843 'install 'install-doc
3844 (lambda* (#:key outputs #:allow-other-keys)
3845 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3846 (doc (string-append data "/doc/" ,name "-" ,version))
3847 (examples (string-append doc "/examples")))
3848 (mkdir-p examples)
3849 (for-each (lambda (file)
3850 (copy-file (string-append "." file)
3851 (string-append doc file)))
3852 '("/README.rst" "/CHANGES" "/LICENSE"))
3853 (copy-recursively "examples" examples)))
3854 %standard-phases))))
3855 (home-page "https://github.com/eliben/pycparser")
3856 (synopsis "C parser in Python")
3857 (description
3858 "Pycparser is a complete parser of the C language, written in pure Python
3859using the PLY parsing library. It parses C code into an AST and can serve as
3860a front-end for C compilers or analysis tools.")
3f641af0 3861 (license license:bsd-3)))
a415f036
FB
3862
3863(define-public python2-pycparser
3864 (package-with-python2 python-pycparser))
57c3f716
FB
3865
3866(define-public python-cffi
3867 (package
3868 (name "python-cffi")
2d3a437c 3869 (version "1.4.2")
57c3f716
FB
3870 (source
3871 (origin
3872 (method url-fetch)
2d3a437c 3873 (uri (pypi-uri "cffi" version))
89b5c60e 3874 (sha256
2d3a437c 3875 (base32 "161rj52rzi3880lij17d6i9kvgkiwjilrqjs8405k8sf6ryif7cg"))))
57c3f716
FB
3876 (build-system python-build-system)
3877 (outputs '("out" "doc"))
3878 (inputs
3879 `(("libffi" ,libffi)))
3880 (propagated-inputs ; required at run-time
3881 `(("python-pycparser" ,python-pycparser)))
3882 (native-inputs
3883 `(("pkg-config" ,pkg-config)
3884 ("python-sphinx" ,python-sphinx)
4179f952 3885 ("python-pytest" ,python-pytest)
57c3f716
FB
3886 ("python-setuptools" ,python-setuptools)))
3887 (arguments
4179f952 3888 `(#:phases
57c3f716
FB
3889 (alist-cons-after
3890 'install 'install-doc
3891 (lambda* (#:key outputs #:allow-other-keys)
3892 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3893 (doc (string-append data "/doc/" ,name "-" ,version))
3894 (html (string-append doc "/html")))
3895 (with-directory-excursion "doc"
3896 (system* "make" "html")
3897 (mkdir-p html)
3898 (copy-recursively "build/html" html))
3899 (copy-file "LICENSE" (string-append doc "/LICENSE"))))
3900 %standard-phases)))
3901 (home-page "http://cffi.readthedocs.org")
3902 (synopsis "Foreign function interface for Python")
3903 (description
3904 "Foreign Function Interface for Python calling C code.")
bd3fa666 3905 (license license:expat)))
57c3f716
FB
3906
3907(define-public python2-cffi
3908 (package-with-python2 python-cffi))
6fa14469
FB
3909
3910(define-public python-xcffib
3911 (package
3912 (name "python-xcffib")
3913 (version "0.1.9")
3914 (source
3915 (origin
3916 (method url-fetch)
3917 (uri (string-append "https://pypi.python.org/packages/source/x/"
3918 "xcffib/xcffib-" version ".tar.gz"))
3919 (sha256
3920 (base32
3921 "0655hzxv57h1a9ja9kwp0ichbkhf3djw32k33d66xp0q37dq2y81"))))
3922 (build-system python-build-system)
3923 (inputs
3924 `(("libxcb" ,libxcb)
3925 ("python-six" ,python-six)))
3926 (native-inputs
3927 `(("python-setuptools" ,python-setuptools)))
3928 (propagated-inputs
3929 `(("python-cffi" ,python-cffi))) ; used at run time
3930 (arguments
89b5c60e 3931 `(#:phases
6fa14469
FB
3932 (alist-cons-after
3933 'install 'install-doc
3934 (lambda* (#:key outputs #:allow-other-keys)
3935 (let ((doc (string-append (assoc-ref outputs "out") "/share"
3936 "/doc/" ,name "-" ,version)))
3937 (mkdir-p doc)
3938 (copy-file "README.md"
3939 (string-append doc "/README.md"))))
3940 %standard-phases)))
3941 (home-page "https://github.com/tych0/xcffib")
3942 (synopsis "XCB Python bindings")
3943 (description
3944 "Xcffib is a replacement for xpyb, an XCB Python bindings. It adds
3945support for Python 3 and PyPy. It is based on cffi.")
bd3fa666 3946 (license license:expat)))
6fa14469
FB
3947
3948(define-public python2-xcffib
3949 (package-with-python2 python-xcffib))
3950
9e099723
FB
3951(define-public python-cairocffi
3952 (package
3953 (name "python-cairocffi")
3954 (version "0.6")
3955 (source
3956 (origin
3957 (method url-fetch)
3958 ;; The archive on pypi is missing the 'utils' directory!
3959 (uri (string-append "https://github.com/SimonSapin/cairocffi/archive/v"
3960 version ".tar.gz"))
f586c877 3961 (file-name (string-append name "-" version ".tar.gz"))
9e099723
FB
3962 (sha256
3963 (base32
3964 "03w5p62sp3nqiccx864sbq0jvh7946277jqx3rcc3dch5xwfvv51"))))
3965 (build-system python-build-system)
3966 (outputs '("out" "doc"))
3967 (inputs
3968 `(("gdk-pixbuf" ,gdk-pixbuf)
3969 ("cairo" ,cairo)))
3970 (native-inputs
3971 `(("pkg-config" ,pkg-config)
3972 ("python-sphinx" ,python-sphinx)
3973 ("python-docutils" ,python-docutils)
3974 ("python-setuptools" ,python-setuptools)))
3975 (propagated-inputs
3976 `(("python-xcffib" ,python-xcffib))) ; used at run time
3977 (arguments
89b5c60e 3978 `(#:phases
9e099723
FB
3979 (alist-cons-after
3980 'install 'install-doc
3981 (lambda* (#:key inputs outputs #:allow-other-keys)
3982 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3983 (doc (string-append data "/doc/" ,name "-" ,version))
3984 (html (string-append doc "/html")))
89b5c60e 3985 (setenv "LD_LIBRARY_PATH"
9e099723
FB
3986 (string-append (assoc-ref inputs "cairo") "/lib" ":"
3987 (assoc-ref inputs "gdk-pixbuf") "/lib"))
3988 (setenv "LANG" "en_US.UTF-8")
3989 (mkdir-p html)
3990 (for-each (lambda (file)
3991 (copy-file (string-append "." file)
3992 (string-append doc file)))
3993 '("/README.rst" "/CHANGES" "/LICENSE"))
3994 (system* "python" "setup.py" "build_sphinx")
3995 (copy-recursively "docs/_build/html" html)))
3996 %standard-phases)))
3997 (home-page "https://github.com/SimonSapin/cairocffi")
3998 (synopsis "Python bindings and object-oriented API for Cairo")
3999 (description
4000 "Cairocffi is a CFFI-based drop-in replacement for Pycairo, a set of
4001Python bindings and object-oriented API for cairo. Cairo is a 2D vector
4002graphics library with support for multiple backends including image buffers,
4003PNG, PostScript, PDF, and SVG file output.")
3f641af0 4004 (license license:bsd-3)))
9e099723
FB
4005
4006(define-public python2-cairocffi
4007 (package-with-python2 python-cairocffi))
4008
3cff95cb
RW
4009(define-public python-decorator
4010 (package
4011 (name "python-decorator")
eb6e2e81 4012 (version "4.0.9")
3cff95cb
RW
4013 (source
4014 (origin
4015 (method url-fetch)
e21338be 4016 (uri (pypi-uri "decorator" version))
3cff95cb 4017 (sha256
eb6e2e81 4018 (base32 "1a5vwhflfd9sh3rfb40xlyipldgdzfff6brman57hqv3661jw0lh"))))
3cff95cb
RW
4019 (build-system python-build-system)
4020 (arguments '(#:tests? #f)) ; no test target
4021 (native-inputs
4022 `(("python-setuptools" ,python-setuptools)))
eb6e2e81 4023 (home-page "https://pypi.python.org/pypi/decorator/")
3cff95cb
RW
4024 (synopsis "Python module to simplify usage of decorators")
4025 (description
4026 "The aim of the decorator module is to simplify the usage of decorators
4027for the average programmer, and to popularize decorators usage giving examples
4028of useful decorators, such as memoize, tracing, redirecting_stdout, locked,
4029etc. The core of this module is a decorator factory.")
4030 (license license:expat)))
4031
4032(define-public python2-decorator
4033 (package-with-python2 python-decorator))
4034
2c0499ad
RW
4035(define-public python-drmaa
4036 (package
4037 (name "python-drmaa")
4038 (version "0.7.6")
4039 (source
4040 (origin
4041 (method url-fetch)
4042 (uri (string-append
4043 "https://pypi.python.org/packages/source/d/drmaa/drmaa-"
4044 version ".tar.gz"))
4045 (sha256
4046 (base32 "0bzl9f9g34dlhwf09i3fdv7dqqzf2iq0w7d6c2bafx1nlap8qfbh"))))
4047 (build-system python-build-system)
4048 ;; The test suite requires libdrmaa which is provided by the cluster
4049 ;; environment. At runtime the environment variable DRMAA_LIBRARY_PATH
4050 ;; should be set to the path of the libdrmaa library.
4051 (arguments '(#:tests? #f))
4052 (native-inputs
4053 `(("python-nose" ,python-nose)
4054 ("python-setuptools" ,python-setuptools)))
4055 (home-page "https://pypi.python.org/pypi/drmaa")
4056 (synopsis "Python bindings for the DRMAA library")
4057 (description
4058 "A Python package for Distributed Resource Management (DRM) job
4059submission and control. This package is an implementation of the DRMAA 1.0
4060Python language binding specification.")
3f641af0 4061 (license license:bsd-3)))
2c0499ad
RW
4062
4063(define-public python2-drmaa
4064 (package-with-python2 python-drmaa))
4065
d05c6da0
RW
4066(define-public python-gridmap
4067 (package
4068 (name "python-gridmap")
4069 (version "0.13.0")
4070 (source
4071 (origin
4072 (method url-fetch)
4073 (uri (string-append
4074 "https://github.com/pygridtools/gridmap/archive/v"
4075 version ".tar.gz"))
4076 (file-name (string-append name "-" version ".tar.gz"))
4077 (sha256
4078 (base32 "1gzjg2k6f14i1msm2b0ax8d9ds1hvk6qd5nlaivg8m4cxqp4cp1x"))))
4079 (build-system python-build-system)
4080 (inputs
4081 `(("python-psutil" ,python-psutil)
4082 ("python-drmaa" ,python-drmaa)
4083 ("python-pyzmq" ,python-pyzmq)))
4084 (native-inputs
4085 `(("python-setuptools" ,python-setuptools)))
4086 (home-page "https://github.com/pygridtools/gridmap")
4087 (synopsis "Create jobs on a cluster directly from Python")
4088 (description
4089 "Gridmap is a Python package to allow you to easily create jobs on the
4090cluster directly from Python. You can directly map Python functions onto the
4091cluster without needing to write any wrapper code yourself.")
3f641af0 4092 (license license:gpl3+)))
d05c6da0
RW
4093
4094(define-public python2-gridmap
4095 (package-with-python2 python-gridmap))
4096
cb6d5c54
RW
4097(define-public python-pexpect
4098 (package
4099 (name "python-pexpect")
4100 (version "3.3")
4101 (source
4102 (origin
4103 (method url-fetch)
4104 (uri (string-append "https://pypi.python.org/packages/source/p/"
4105 "pexpect/pexpect-" version ".tar.gz"))
4106 (sha256
4107 (base32 "1fp5gm976z7ghm8jw57463rj19cv06c8zw842prgyg788f6n3snz"))))
4108 (build-system python-build-system)
4109 (arguments
4110 `(#:phases
4111 (modify-phases %standard-phases
4112 (replace 'check (lambda _ (zero? (system* "nosetests")))))))
4113 (native-inputs
4114 `(("python-nose" ,python-nose)))
4115 (home-page "http://pexpect.readthedocs.org/")
4116 (synopsis "Controlling interactive console applications")
4117 (description
4118 "Pexpect is a pure Python module for spawning child applications;
4119controlling them; and responding to expected patterns in their output.
4120Pexpect works like Don Libes’ Expect. Pexpect allows your script to spawn a
4121child application and control it as if a human were typing commands.")
3f641af0 4122 (license license:isc)))
cb6d5c54
RW
4123
4124(define-public python2-pexpect
4125 (package-with-python2 python-pexpect))
4126
229ad120
RW
4127(define-public python-setuptools-scm
4128 (package
4129 (name "python-setuptools-scm")
42d6d0d0 4130 (version "1.11.1")
229ad120
RW
4131 (source (origin
4132 (method url-fetch)
383af6b0 4133 (uri (pypi-uri "setuptools_scm" version))
229ad120
RW
4134 (sha256
4135 (base32
42d6d0d0 4136 "1gqr73i150yzj3mz32854vj93x07yr52kn8fdckwa41ll8wgficc"))))
229ad120 4137 (build-system python-build-system)
383af6b0 4138 (native-inputs `(("python-setuptools" ,python-setuptools)))
229ad120
RW
4139 (home-page "https://github.com/pypa/setuptools_scm/")
4140 (synopsis "Manage Python package versions in SCM metadata")
4141 (description
383af6b0 4142 "Setuptools_scm handles managing your Python package versions in
229ad120
RW
4143@dfn{software configuration management} (SCM) metadata instead of declaring
4144them as the version argument or in a SCM managed file.")
4145 (license license:expat)))
4146
4147(define-public python2-setuptools-scm
4148 (package-with-python2 python-setuptools-scm))
4149
b74270ee
RW
4150(define-public python-pathpy
4151 (package
4152 (name "python-pathpy")
4153 (version "8.1.1")
4154 (source
4155 (origin
4156 (method url-fetch)
4157 (uri (string-append "https://pypi.python.org/packages/source/p/"
4158 "path.py/path.py-" version ".tar.gz"))
4159 (sha256
4160 (base32 "1p8s1l2vfkqhqxdhqlj0g1jjw4f1as2frr35sjcpjjpd5a89y41f"))))
4161 (build-system python-build-system)
4162 (propagated-inputs
4163 `(("python-appdirs" ,python-appdirs)))
4164 (native-inputs
553b709b
EF
4165 `(("python-setuptools" ,python-setuptools)
4166 ("python-setuptools-scm" ,python-setuptools-scm)
b74270ee
RW
4167 ("python-pytest" ,python-pytest)
4168 ("python-pytest-runner" ,python-pytest-runner)))
4169 (home-page "http://github.com/jaraco/path.py")
4170 (synopsis "Python module wrapper for built-in os.path")
4171 (description
4172 "@code{path.py} implements path objects as first-class entities, allowing
4173common operations on files to be invoked on those path objects directly.")
4174 (license license:expat)))
4175
4176(define-public python2-pathpy
4177 (package-with-python2 python-pathpy))
4178
0d34e01b
RW
4179(define-public python-pickleshare
4180 (package
4181 (name "python-pickleshare")
4182 (version "0.5")
4183 (source
4184 (origin
4185 (method url-fetch)
4186 (uri (string-append "https://pypi.python.org/packages/source/p/"
4187 "pickleshare/pickleshare-" version ".tar.gz"))
4188 (sha256
4189 (base32 "11ljr90j3p6qswdrbl7p4cjb2i93f6vn0vx9anzpshsx0d2mggn0"))))
4190 (build-system python-build-system)
4191 (propagated-inputs
4192 `(("python-pathpy" ,python-pathpy)))
b72a4410
EF
4193 (native-inputs
4194 `(("python-setuptools" ,python-setuptools)))
0d34e01b
RW
4195 (home-page "https://github.com/vivainio/pickleshare")
4196 (synopsis "Tiny key value database with concurrency support")
4197 (description
4198 "PickleShare is a small ‘shelve’-like datastore with concurrency support.
4199Like shelve, a PickleShareDB object acts like a normal dictionary. Unlike
4200shelve, many processes can access the database simultaneously. Changing a
4201value in database is immediately visible to other processes accessing the same
4202database. Concurrency is possible because the values are stored in separate
4203files. Hence the “database” is a directory where all files are governed by
4204PickleShare.")
4205 (license license:expat)))
4206
4207(define-public python2-pickleshare
4208 (package-with-python2 python-pickleshare))
4209
cd6e5189
RW
4210(define-public python-simplegeneric
4211 (package
4212 (name "python-simplegeneric")
4213 (version "0.8.1")
4214 (source
4215 (origin
4216 (method url-fetch)
4217 (uri (string-append "https://pypi.python.org/packages/source/s/"
4218 "simplegeneric/simplegeneric-" version ".zip"))
4219 (sha256
4220 (base32 "0wwi1c6md4vkbcsfsf8dklf3vr4mcdj4mpxkanwgb6jb1432x5yw"))))
4221 (build-system python-build-system)
4222 (native-inputs
69b96e5e
RW
4223 `(("python-setuptools" ,python-setuptools)
4224 ("unzip" ,unzip)))
cd6e5189
RW
4225 (home-page "http://cheeseshop.python.org/pypi/simplegeneric")
4226 (synopsis "Python module for simple generic functions")
4227 (description
4228 "The simplegeneric module lets you define simple single-dispatch generic
4229functions, akin to Python’s built-in generic functions like @code{len()},
4230@code{iter()} and so on. However, instead of using specially-named methods,
4231these generic functions use simple lookup tables, akin to those used by
4232e.g. @code{pickle.dump()} and other generic functions found in the Python
4233standard library.")
3f641af0 4234 (license license:zpl2.1)))
cd6e5189
RW
4235
4236(define-public python2-simplegeneric
4237 (package-with-python2 python-simplegeneric))
4238
ddc7d8ed
RW
4239(define-public python-ipython-genutils
4240 (package
4241 (name "python-ipython-genutils")
4242 (version "0.1.0")
4243 (source
4244 (origin
4245 (method url-fetch)
4246 (uri (string-append "https://pypi.python.org/packages/source/i/"
4247 "ipython_genutils/ipython_genutils-"
4248 version ".tar.gz"))
4249 (sha256
4250 (base32 "19l2pp1c64ansr89l3cqh19jdi2ixhssdzx0vz4n6r52a6i281is"))))
4251 (build-system python-build-system)
4252 (arguments `(#:tests? #f)) ; no tests
4253 (home-page "http://ipython.org")
4254 (synopsis "Vestigial utilities from IPython")
4255 (description
4256 "This package provides retired utilities from IPython.")
3f641af0 4257 (license license:bsd-3)))
ddc7d8ed
RW
4258
4259(define-public python2-ipython-genutils
4260 (package-with-python2 python-ipython-genutils))
4261
2b10eb48
RW
4262(define-public python-traitlets
4263 (package
4264 (name "python-traitlets")
cc0c4fde 4265 (version "4.1.0")
2b10eb48
RW
4266 (source
4267 (origin
4268 (method url-fetch)
cc0c4fde 4269 (uri (pypi-uri "traitlets" version))
2b10eb48
RW
4270 (sha256
4271 (base32
cc0c4fde 4272 "0nxgj8jxlm1kqf8cx2x7vjid05zdgbxpqhjbdl46r8njlpgkh3j4"))))
2b10eb48
RW
4273 (build-system python-build-system)
4274 (arguments
4275 `(#:phases
4276 (modify-phases %standard-phases
4277 (replace 'check (lambda _ (zero? (system* "nosetests")))))))
4278 (propagated-inputs
4279 `(("python-ipython-genutils" ,python-ipython-genutils)
4280 ("python-decorator" ,python-decorator)))
4281 (native-inputs
cc0c4fde
EF
4282 `(("python-mock" ,python-mock)
4283 ("python-nose" ,python-nose)))
2b10eb48
RW
4284 (home-page "http://ipython.org")
4285 (synopsis "Configuration system for Python applications")
4286 (description
4287 "Traitlets is a framework that lets Python classes have attributes with
4288type checking, dynamically calculated default values, and ‘on change’
4289callbacks. The package also includes a mechanism to use traitlets for
4290configuration, loading values from files or from command line arguments. This
4291is a distinct layer on top of traitlets, so you can use traitlets in your code
4292without using the configuration machinery.")
3f641af0 4293 (license license:bsd-3)))
2b10eb48
RW
4294
4295(define-public python2-traitlets
4296 (package-with-python2 python-traitlets))
4297
ae1ab9fe
FB
4298(define-public python-ipython
4299 (package
4300 (name "python-ipython")
3a0b1b9a 4301 (version "3.2.1")
ae1ab9fe
FB
4302 (source
4303 (origin
fceac880 4304 (method url-fetch)
fc1adab1 4305 (patches (search-patches "python-ipython-inputhook-ctype.patch"))
fceac880
FB
4306 (uri (string-append "https://pypi.python.org/packages/source/i/"
4307 "ipython/ipython-" version ".tar.gz"))
4308 (sha256
4309 (base32 "0xwin0sa9n0cabx4cq1ibf5ldsiw5dyimibla82kicz5gbpas4y9"))))
ae1ab9fe
FB
4310 (build-system python-build-system)
4311 (outputs '("out" "doc"))
3a0b1b9a
FB
4312 (propagated-inputs
4313 `(("python-pyzmq" ,python-pyzmq)
4314 ("python-terminado" ,python-terminado)))
ae1ab9fe
FB
4315 (inputs
4316 `(("readline" ,readline)
3a0b1b9a 4317 ("which" ,which)
ae1ab9fe 4318 ("python-matplotlib" ,python-matplotlib)
5d26e542 4319 ("python-numpy" ,python-numpy)
ae1ab9fe 4320 ("python-numpydoc" ,python-numpydoc)
3a0b1b9a
FB
4321 ("python-jinja2" ,python-jinja2)
4322 ("python-mistune" ,python-mistune)
4323 ("python-jsonschema" ,python-jsonschema)
4324 ("python-pygments" ,python-pygments)
4325 ("python-requests" ,python-requests) ;; for tests
ae1ab9fe
FB
4326 ("python-nose" ,python-nose)))
4327 (native-inputs
4328 `(("pkg-config" ,pkg-config)
4329 ("python-sphinx" ,python-sphinx)
4330 ("texlive" ,texlive)
4331 ("texinfo" ,texinfo)
4332 ("python-setuptools" ,python-setuptools)))
4333 (arguments
89b5c60e 4334 `(#:phases
3a0b1b9a
FB
4335 (modify-phases %standard-phases
4336 (add-after
4337 'install 'install-doc
4338 (lambda* (#:key inputs outputs #:allow-other-keys)
4339 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
4340 (doc (string-append data "/doc/" ,name "-" ,version))
4341 (html (string-append doc "/html"))
4342 (man1 (string-append data "/man/man1"))
4343 (info (string-append data "/info"))
4344 (examples (string-append doc "/examples")))
afd3d931 4345 (setenv "LANG" "en_US.utf8")
3a0b1b9a
FB
4346 (with-directory-excursion "docs"
4347 ;; FIXME: html and pdf fail to build
4348 ;; (system* "make" "html")
4349 ;; (system* "make" "pdf" "PAPER=a4")
4350 (system* "make" "info"))
4351 (copy-recursively "docs/man" man1)
4352 (copy-recursively "examples" examples)
4353 ;; (copy-recursively "docs/build/html" html)
4354 ;; (copy-file "docs/build/latex/ipython.pdf"
4355 ;; (string-append doc "/ipython.pdf"))
4356 (mkdir-p info)
4357 (copy-file "docs/build/texinfo/ipython.info"
4358 (string-append info "/ipython.info"))
4359 (copy-file "COPYING.rst" (string-append doc "/COPYING.rst")))))
4360 ;; Tests can only be run after the library has been installed and not
4361 ;; within the source directory.
4362 (delete 'check)
4363 (add-after
4364 'install 'check
4365 (lambda* (#:key outputs tests? #:allow-other-keys)
4366 (if tests?
4367 (with-directory-excursion "/tmp"
4368 (setenv "HOME" "/tmp/") ;; required by a test
4369 (zero? (system* (string-append (assoc-ref outputs "out")
4370 "/bin/iptest"))))
4371 #t)))
4372 (add-before
4373 'install 'fix-tests
4374 (lambda* (#:key inputs #:allow-other-keys)
4375 (substitute* "./IPython/utils/_process_posix.py"
4376 (("/usr/bin/env', 'which") (which "which")))
4377 (substitute* "./IPython/core/tests/test_inputtransformer.py"
4378 (("#!/usr/bin/env python")
4379 (string-append "#!" (which "python"))))
4380 ;; Disable 1 failing test
4381 (substitute* "./IPython/core/tests/test_magic.py"
4382 (("def test_dirops\\(\\):" all)
4383 (string-append "@dec.skipif(True)\n" all))))))))
ae1ab9fe
FB
4384 (home-page "http://ipython.org")
4385 (synopsis "IPython is a tool for interactive computing in Python")
4386 (description
4387 "IPython provides a rich architecture for interactive computing with:
4388Powerful interactive shells, a browser-based notebook, support for interactive
4389data visualization, embeddable interpreters and tools for parallel
4390computing.")
135ba811
EF
4391 (license license:bsd-3)
4392 (properties `((python2-variant . ,(delay python2-ipython))))))
ae1ab9fe
FB
4393
4394(define-public python2-ipython
135ba811 4395 (let ((ipython (package-with-python2 (strip-python2-variant python-ipython))))
3a0b1b9a
FB
4396 (package
4397 (inherit ipython)
4398 ;; FIXME: some tests are failing
4399 (arguments
4400 `(#:tests? #f ,@(package-arguments ipython)))
3a0b1b9a 4401 ;; FIXME: add pyreadline once available.
89b5c60e 4402 (inputs
135ba811
EF
4403 `(("python2-mock" ,python2-mock)
4404 ,@(package-inputs ipython))))))
03411993
AE
4405
4406(define-public python-isodate
4407 (package
4408 (name "python-isodate")
b6785c2e 4409 (version "0.5.4")
03411993
AE
4410 (source
4411 (origin
4412 (method url-fetch)
b6785c2e 4413 (uri (pypi-uri "isodate" version))
03411993
AE
4414 (sha256
4415 (base32
b6785c2e 4416 "0cafaiwixgpxwh9dsd28qb0dbzsj6xpxjdkyk30ns91ps10mq422"))))
03411993
AE
4417 (build-system python-build-system)
4418 (inputs
4419 `(("python-setuptools" ,python-setuptools)))
4420 (home-page
4421 "http://cheeseshop.python.org/pypi/isodate")
4422 (synopsis
4423 "Python date parser and formatter")
4424 (description
4425 "Python-isodate is a python module for parsing and formatting
4426ISO 8601 dates, time and duration.")
3f641af0 4427 (license license:bsd-3)))
03411993
AE
4428
4429(define-public python2-isodate
4430 (package-with-python2 python-isodate))
673ab897
AE
4431
4432(define-public python-html5lib
4433 (package
4434 (name "python-html5lib")
fee04c19 4435 (version "1.0b8")
673ab897
AE
4436 (source
4437 (origin
4438 (method url-fetch)
fee04c19 4439 (uri (pypi-uri "html5lib" version))
673ab897
AE
4440 (sha256
4441 (base32
fee04c19 4442 "1lknq5j3nh11xrl268ks76zaj0gyzh34v94n5vbf6dk8llzxdx0q"))))
673ab897 4443 (build-system python-build-system)
3dd75476
AE
4444 (propagated-inputs
4445 `(("python-six" ,python-six))) ; required to "import html5lib"
673ab897
AE
4446 (inputs
4447 `(("python-setuptools" ,python-setuptools)))
4448 (arguments
4449 `(#:test-target "check"))
4450 (home-page
4451 "https://github.com/html5lib/html5lib-python")
4452 (synopsis
4453 "Python HTML parser based on the WHATWG HTML specifcation")
4454 (description
4455 "Html5lib is an HTML parser based on the WHATWG HTML specifcation
4456and written in Python.")
bd3fa666 4457 (license license:expat)))
673ab897
AE
4458
4459(define-public python2-html5lib
4460 (package-with-python2 python-html5lib))
e99f4211
MW
4461
4462(define-public python-urwid
4463 (package
4464 (name "python-urwid")
51ff41f6 4465 (version "1.3.1")
e99f4211
MW
4466 (source
4467 (origin
4468 (method url-fetch)
b97c1bfd 4469 (uri (pypi-uri "urwid" version))
e99f4211
MW
4470 (sha256
4471 (base32
51ff41f6 4472 "18cnd1wdjcas08x5qwa5ayw6jsfcn33w4d9f7q3s29fy6qzc1kng"))))
e99f4211 4473 (build-system python-build-system)
b97c1bfd
LF
4474 (arguments
4475 `(#:phases
4476 (modify-phases %standard-phases
4477 ;; Disable failing test. Bug filed upstream:
4478 ;; https://github.com/wardi/urwid/issues/164
51ff41f6 4479 ;; TODO: check again for python-urwid > 1.3.1 or python > 3.4.3.
b97c1bfd
LF
4480 (add-after 'unpack 'disable-failing-test
4481 (lambda _
4482 (substitute* "urwid/tests/test_event_loops.py"
4483 (("test_remove_watch_file")
4484 "disable_remove_watch_file")))))))
e99f4211
MW
4485 (native-inputs `(("python-setuptools" ,python-setuptools)))
4486 (home-page "http://urwid.org")
4487 (synopsis "Console user interface library for Python")
4488 (description
4489 "Urwid is a curses-based UI/widget library for Python. It includes many
4490features useful for text console applications.")
3f641af0 4491 (license license:lgpl2.1+)))
e99f4211
MW
4492
4493(define-public python2-urwid
4494 (package-with-python2 python-urwid))
d95a56c6 4495
47d0b292
TS
4496(define-public python-urwidtrees
4497 (package
4498 (name "python-urwidtrees")
37ec4623 4499 (version "1.0.2")
47d0b292
TS
4500 (source
4501 (origin
4502 (method url-fetch)
37ec4623
TS
4503 ;; package author intends on distributing via github rather than pypi:
4504 ;; https://github.com/pazz/alot/issues/877#issuecomment-230173331
4505 (uri (string-append "https://github.com/pazz/urwidtrees/archive/"
4506 version ".tar.gz"))
4507 (file-name (string-append name "-" version ".tar.gz"))
47d0b292
TS
4508 (sha256
4509 (base32
37ec4623 4510 "0d30lyd3s2a97rhqfax5w9ssqds2z6aydqx3c6j2c2lk3cb4ngvh"))))
47d0b292
TS
4511 (build-system python-build-system)
4512 (arguments
4513 '(#:tests? #f)) ; no tests
4514 (inputs `(("python-urwid" ,python-urwid)))
4515 (home-page "https://github.com/pazz/urwidtrees")
4516 (synopsis "Tree widgets for urwid")
4517 (description "Urwidtrees is a Widget Container API for the @code{urwid}
4518toolkit. Use it to build trees of widgets.")
3f641af0 4519 (license license:gpl3+)))
47d0b292
TS
4520
4521(define-public python2-urwidtrees
4522 (package-with-python2 python-urwidtrees))
4523
d95a56c6
PAR
4524(define-public python-dbus
4525 (package
4526 (name "python-dbus")
4527 (version "1.2.0")
4528 (source
4529 (origin
4530 (method url-fetch)
4531 (uri (string-append
5cc3096c 4532 "https://dbus.freedesktop.org/releases/dbus-python/dbus-python-"
d95a56c6
PAR
4533 version ".tar.gz"))
4534 (sha256
4535 (base32 "1py62qir966lvdkngg0v8k1khsqxwk5m4s8nflpk1agk5f5nqb71"))))
4536 (build-system gnu-build-system)
6717c879
SB
4537 (arguments
4538 '(#:phases
4539 (modify-phases %standard-phases
4540 (add-before
4541 'check 'pre-check
4542 (lambda _
4543 ;; XXX: For the missing '/etc/machine-id'.
4544 (substitute* "test/run-test.sh"
4545 (("DBUS_FATAL_WARNINGS=1")
4546 "DBUS_FATAL_WARNINGS=0"))
4547 #t)))))
d95a56c6
PAR
4548 (native-inputs
4549 `(("pkg-config" ,pkg-config)))
4550 (inputs
4551 `(("python" ,python)
2e88d113 4552 ("dbus-glib" ,dbus-glib)))
d95a56c6
PAR
4553 (synopsis "Python bindings for D-bus")
4554 (description "python-dbus provides bindings for libdbus, the reference
4555implementation of D-Bus.")
4556 (home-page "http://www.freedesktop.org/wiki/Software/DBusBindings/")
bd3fa666 4557 (license license:expat)))
b52af02b
MW
4558
4559(define-public python2-dbus
4560 (package (inherit python-dbus)
4561 (name "python2-dbus")
4562 (inputs `(("python" ,python-2)
4563 ,@(alist-delete "python"
4564 (package-inputs python-dbus)
4565 equal?)))
4566 ;; FIXME: on Python 2, the test_utf8 fails with:
4567 ;; "ValueError: unichr() arg not in range(0x10000) (narrow Python build)"
4568 (arguments `(#:tests? #f))))
a6ac8332
AE
4569
4570(define-public python-apsw
4571 (package
4572 (name "python-apsw")
917708c2 4573 (version "3.9.2-r1")
a6ac8332
AE
4574 (source
4575 (origin
4576 (method url-fetch)
917708c2 4577 (uri (pypi-uri "apsw" version))
a6ac8332
AE
4578 (sha256
4579 (base32
917708c2 4580 "0w4jb0wpx785qw42r3h4fh7gl5w2968q48i7gygybsfxck8nzffs"))))
a6ac8332
AE
4581 (build-system python-build-system)
4582 (inputs
4583 `(("python-setuptools" ,python-setuptools)
4584 ("sqlite" ,sqlite)))
4585 (arguments
4586 `(#:phases
4587 ;; swap check and install phases
4588 (alist-cons-after
4589 'install 'check
4590 (assoc-ref %standard-phases 'check)
4591 (alist-delete
4592 'check
4593 %standard-phases))))
4594 (home-page "https://github.com/rogerbinns/apsw/")
4595 (synopsis "Another Python SQLite Wrapper")
4596 (description "APSW is a Python wrapper for the SQLite
4597embedded relational database engine. In contrast to other wrappers such as
4598pysqlite it focuses on being a minimal layer over SQLite attempting just to
4599translate the complete SQLite API into Python.")
abde5f37 4600 (license license:zlib)))
a6ac8332
AE
4601
4602(define-public python2-apsw
4603 (package-with-python2 python-apsw))
26b307e2
AE
4604
4605(define-public python-lxml
4606 (package
4607 (name "python-lxml")
d58a3203 4608 (version "3.6.0")
26b307e2
AE
4609 (source
4610 (origin
4611 (method url-fetch)
97bbc480 4612 (uri (pypi-uri "lxml" version))
26b307e2 4613 (sha256
d58a3203
EF
4614 (base32
4615 "1pvbmiy2m7jwv493kilbghhj2pkh8wy1na3ji350vhzhlwlclx4w"))))
26b307e2
AE
4616 (build-system python-build-system)
4617 (inputs
4618 `(("libxml2" ,libxml2)
4619 ("libxslt" ,libxslt)
4620 ("python-setuptools" ,python-setuptools)))
4621 (home-page "http://lxml.de/")
4622 (synopsis
4623 "Python XML processing library")
4624 (description
4625 "The lxml XML toolkit is a Pythonic binding for the C libraries
4626libxml2 and libxslt.")
3f641af0 4627 (license license:bsd-3))) ; and a few more, see LICENSES.txt
26b307e2
AE
4628
4629(define-public python2-lxml
4630 (package-with-python2 python-lxml))
4ed20663 4631
b32a1e47
CAW
4632;; beautifulsoup4 has a totally different namespace than 3.x,
4633;; and pypi seems to put it under its own name, so I guess we should too
4634(define-public python-beautifulsoup4
4635 (package
4636 (name "python-beautifulsoup4")
cfbb3b0d 4637 (version "4.5.0")
b32a1e47
CAW
4638 (source
4639 (origin
4640 (method url-fetch)
4641 (uri (pypi-uri "beautifulsoup4" version))
4642 (sha256
4643 (base32
cfbb3b0d 4644 "1rf94360s8pmn37vxqjl0g74krq2p6nj3wbn6pj94ik6ny44q24f"))))
b32a1e47
CAW
4645 (build-system python-build-system)
4646 (home-page
4647 "http://www.crummy.com/software/BeautifulSoup/bs4/")
4648 (synopsis
4649 "Python screen-scraping library")
4650 (description
4651 "Beautiful Soup is a Python library designed for rapidly setting up
4652screen-scraping projects. It offers Pythonic idioms for navigating,
4653searching, and modifying a parse tree, providing a toolkit for
4654dissecting a document and extracting what you need. It automatically
4655converts incoming documents to Unicode and outgoing documents to UTF-8.")
4656 (license license:expat)
4657 (properties `((python2-variant . ,(delay python2-beautifulsoup4))))))
4658
4659(define-public python2-beautifulsoup4
4660 (package
4661 (inherit (package-with-python2
4662 (strip-python2-variant python-beautifulsoup4)))
4663 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
4664
092e86f5
AE
4665(define-public python2-cssutils
4666 (package
4667 (name "python2-cssutils")
58d1d816 4668 (version "1.0.1")
092e86f5
AE
4669 (source
4670 (origin
4671 (method url-fetch)
58d1d816 4672 (uri (pypi-uri "cssutils" version))
092e86f5 4673 (sha256
58d1d816
EF
4674 (base32
4675 "0qwha9x1wml2qmipbcz03gndnlwhzrjdvw9i09si247a90l8p8fq"))))
092e86f5
AE
4676 (build-system python-build-system)
4677 (native-inputs
4678 `(("python2-mock" ,python2-mock) ; for the tests
4679 ("unzip" ,unzip))) ; for unpacking the source
4680 (inputs
4681 `(("python2-setuptools" ,python2-setuptools)))
4682 (arguments
4683 `(#:python ,python-2 ; Otherwise tests fail with a syntax error.
4684 #:tests? #f ; The tests apparently download an external URL.
da6dd842 4685 ))
092e86f5
AE
4686 (home-page "http://cthedot.de/cssutils/")
4687 (synopsis
4688 "CSS Cascading Style Sheets library for Python")
4689 (description
4690 "Cssutils is a Python package for parsing and building CSS
4691Cascading Style Sheets. Currently it provides a DOM only and no rendering
4692options.")
3f641af0 4693 (license license:lgpl3+)))
880ff77c
AE
4694
4695(define-public python-cssselect
4696 (package
4697 (name "python-cssselect")
d5ccd9ab 4698 (version "0.9.2")
880ff77c
AE
4699 (source
4700 (origin
4701 (method url-fetch)
d5ccd9ab 4702 (uri (pypi-uri "cssselect" version))
880ff77c 4703 (sha256
d5ccd9ab
EF
4704 (base32
4705 "1xg6gbva1yswghiycmgincv6ab4bn7hpm720ndbj40h8xycmnfvi"))))
880ff77c
AE
4706 (build-system python-build-system)
4707 (inputs
4708 `(("python-setuptools" ,python-setuptools)))
4709 (arguments
4710 ;; tests fail with message
4711 ;; AttributeError: 'module' object has no attribute 'tests'
4712 `(#:tests? #f))
4713 (home-page
4714 "https://pythonhosted.org/cssselect/")
4715 (synopsis
4716 "CSS3 selector parser and translator to XPath 1.0")
4717 (description
4718 "Cssselect ia a Python module that parses CSS3 Selectors and translates
4719them to XPath 1.0 expressions. Such expressions can be used in lxml or
4720another XPath engine to find the matching elements in an XML or HTML document.")
3f641af0 4721 (license license:bsd-3)))
880ff77c
AE
4722
4723(define-public python2-cssselect
4724 (package-with-python2 python-cssselect))
60357f99
AE
4725
4726(define-public python-netifaces
4727 (package
4728 (name "python-netifaces")
4729 (version "0.10.4")
4730 (source
4731 (origin
4732 (method url-fetch)
4733 (uri (string-append
4734 "https://pypi.python.org/packages/source/n/netifaces/netifaces-"
4735 version
4736 ".tar.gz"))
4737 (sha256
4738 (base32
4739 "1plw237a4zib4z8s62g0mrs8gm3kjfrp5sxh6bbk9nl3rdls2mln"))))
4740 (build-system python-build-system)
4741 (inputs
4742 `(("python-setuptools" ,python-setuptools)))
4743 (home-page
4744 "https://bitbucket.org/al45tair/netifaces")
4745 (synopsis
4746 "Python module for portable network interface information")
4747 (description
4748 "Netifaces is a Python module providing information on network
4749interfaces in an easy and portable manner.")
4750 (license license:expat)))
4751
4752(define-public python2-netifaces
4753 (package-with-python2 python-netifaces))
92cb152b 4754
32f77c04
RW
4755(define-public python-networkx
4756 (package
4757 (name "python-networkx")
a4d9609c 4758 (version "1.11")
32f77c04
RW
4759 (source
4760 (origin
4761 (method url-fetch)
a4d9609c 4762 (uri (pypi-uri "networkx" version))
32f77c04 4763 (sha256
a4d9609c 4764 (base32 "1f74s56xb4ggixiq0vxyfxsfk8p20c7a099lpcf60izv1php03hd"))))
32f77c04
RW
4765 (build-system python-build-system)
4766 ;; python-decorator is needed at runtime
4767 (propagated-inputs
4768 `(("python-decorator" ,python-decorator)))
4769 (native-inputs
4770 `(("python-setuptools" ,python-setuptools)
4771 ("python-nose" ,python-nose)))
4772 (home-page "http://networkx.github.io/")
4773 (synopsis "Python module for creating and manipulating graphs and networks")
4774 (description
4775 "NetworkX is a Python package for the creation, manipulation, and study
4776of the structure, dynamics, and functions of complex networks.")
3f641af0 4777 (license license:bsd-3)))
32f77c04
RW
4778
4779(define-public python2-networkx
4780 (package-with-python2 python-networkx))
4781
92cb152b
RW
4782(define-public snakemake
4783 (package
4784 (name "snakemake")
4785 (version "3.2.1")
4786 (source
4787 (origin
4788 (method url-fetch)
4789 (uri (string-append
4790 "https://pypi.python.org/packages/source/s/snakemake/snakemake-"
4791 version ".tar.gz"))
4792 (sha256
4793 (base32 "0fi4b63sj60hvi7rfydvmz2icl4wj74djw5sn2gl8hxd02qw4b91"))))
4794 (build-system python-build-system)
4795 (inputs `(("python-setuptools" ,python-setuptools)))
4796 (home-page "https://bitbucket.org/johanneskoester/snakemake")
4797 (synopsis "Python-based execution environment for make-like workflows")
4798 (description
4799 "Snakemake aims to reduce the complexity of creating workflows by
4800providing a clean and modern domain specific specification language (DSL) in
4801Python style, together with a fast and comfortable execution environment.")
4802 (license license:expat)))
a1920bc9 4803
35de1fbd
RW
4804(define-public python-seaborn
4805 (package
4806 (name "python-seaborn")
fc899d4f 4807 (version "0.7.0")
35de1fbd
RW
4808 (source
4809 (origin
4810 (method url-fetch)
fc899d4f 4811 (uri (pypi-uri "seaborn" version))
35de1fbd 4812 (sha256
fc899d4f 4813 (base32 "0ibi3xsfm2kysph61mnfy0pf8d5rkgxgrdb0z9nbizgcgdsb5a0m"))))
35de1fbd
RW
4814 (build-system python-build-system)
4815 (propagated-inputs
4816 `(("python-pandas" ,python-pandas)
4817 ("python-matplotlib" ,python-matplotlib)
4818 ("python-scipy" ,python-scipy)))
35de1fbd
RW
4819 (home-page "http://stanford.edu/~mwaskom/software/seaborn/")
4820 (synopsis "Statistical data visualization")
4821 (description
4822 "Seaborn is a library for making attractive and informative statistical
4823graphics in Python. It is built on top of matplotlib and tightly integrated
4824with the PyData stack, including support for numpy and pandas data structures
4825and statistical routines from scipy and statsmodels.")
3f641af0 4826 (license license:bsd-3)
fc899d4f 4827 (properties `((python2-variant . ,(delay python2-seaborn))))))
35de1fbd
RW
4828
4829(define-public python2-seaborn
fc899d4f
EF
4830 (let ((base (package-with-python2 (strip-python2-variant python-seaborn))))
4831 (package
4832 (inherit base)
4833 (propagated-inputs `(("python2-pytz" ,python2-pytz)
4834 ,@(package-propagated-inputs base)))
4835 (native-inputs `(("python2-setuptools" ,python2-setuptools)
4836 ,@(package-native-inputs base))))))
35de1fbd 4837
90fc547f
RW
4838(define-public python-sympy
4839 (package
4840 (name "python-sympy")
4841 (version "0.7.6")
4842 (source
4843 (origin
4844 (method url-fetch)
4845 (uri (string-append
4846 "https://github.com/sympy/sympy/releases/download/sympy-"
4847 version "/sympy-" version ".tar.gz"))
4848 (sha256
4849 (base32 "19yp0gy4i7p4g6l3b8vaqkj9qj7yqb5kqy0qgbdagpzgkdz958yz"))))
4850 (build-system python-build-system)
4851 (native-inputs
4852 `(("python-setuptools" ,python-setuptools)))
4853 (home-page "http://www.sympy.org/")
4854 (synopsis "Python library for symbolic mathematics")
4855 (description
4856 "SymPy is a Python library for symbolic mathematics. It aims to become a
4857full-featured computer algebra system (CAS) while keeping the code as simple
4858as possible in order to be comprehensible and easily extensible.")
3f641af0 4859 (license license:bsd-3)))
90fc547f
RW
4860
4861(define-public python2-sympy
4862 (package-with-python2 python-sympy))
4863
a1920bc9
FB
4864(define-public python-testlib
4865 (package
4866 (name "python-testlib")
4867 (version "0.6.5")
4868 (source
4869 (origin
4870 (method url-fetch)
4871 (uri (string-append
4872 "https://pypi.python.org/packages/source/t/testlib/testlib-"
4873 version ".zip"))
4874 (sha256
4875 (base32 "1mz26cxn4x8bbgv0rn0mvj2z05y31rkc8009nvdlb3lam5b4mj3y"))))
4876 (build-system python-build-system)
4877 (inputs
4878 `(("python-setuptools" ,python-setuptools)))
4879 (native-inputs
4880 `(("unzip" ,unzip)))
4881 (arguments
4882 `(#:phases
4883 (alist-replace
4884 'unpack
4885 (lambda* (#:key inputs outputs #:allow-other-keys)
4886 (let ((unzip (string-append (assoc-ref inputs "unzip")
4887 "/bin/unzip"))
4888 (source (assoc-ref inputs "source")))
4889 (and (zero? (system* unzip source))
4890 (chdir (string-append "testlib-" ,version)))))
4891 %standard-phases)))
4892 (synopsis "Python micro test suite harness")
4893 (description "A micro unittest suite harness for Python.")
4894 (home-page "https://github.com/trentm/testlib")
1cb9c006 4895 (license license:expat)))
a1920bc9
FB
4896
4897(define-public python2-testlib
4898 (package-with-python2 python-testlib))
db62afa5
LC
4899
4900(define-public python2-xlib
4901 (package
4902 (name "python2-xlib")
4903 (version "0.14")
4904 (source (origin
4905 (method url-fetch)
de67e922
LF
4906 (uri (string-append "mirror://sourceforge/python-xlib/python-xlib"
4907 "/" version "/"
db62afa5
LC
4908 "python-xlib-" version ".tar.gz"))
4909 (sha256
4910 (base32
4911 "1sv0447j0rx8cgs3jhjl695p5pv13ihglcjlrrz1kq05lsvb0wa7"))))
4912 (build-system python-build-system)
4913 (arguments
4914 `(#:python ,python-2 ;Python 2 only
4915 #:tests? #f)) ;no tests
4916 (inputs
4917 `(("python-setuptools" ,python-setuptools)))
4918 (home-page "http://python-xlib.sourceforge.net/")
4919 (synopsis "Python X11 client library")
4920 (description
4921 "The Python X Library is intended to be a fully functional X client
4922library for Python programs. It is useful to implement low-level X clients.
4923It is written entirely in Python.")
3f641af0 4924 (license license:gpl2+)))
0234ca06
DT
4925
4926(define-public python-singledispatch
4927 (package
4928 (name "python-singledispatch")
4929 (version "3.4.0.3")
4930 (source
4931 (origin
4932 (method url-fetch)
bdb67d84 4933 (uri (pypi-uri "singledispatch" version))
0234ca06
DT
4934 (sha256
4935 (base32
4936 "171b7ip0hsq5qm83np40h3phlr36ym18w0lay0a8v08kvy3sy1jv"))))
4937 (build-system python-build-system)
4938 (native-inputs
4939 `(("python-setuptools" ,python-setuptools)))
bdb67d84 4940 (inputs
0234ca06
DT
4941 `(("python-six" ,python-six)))
4942 (home-page
4943 "http://docs.python.org/3/library/functools.html#functools.singledispatch")
4944 (synopsis "Backport of singledispatch feature from Python 3.4")
4945 (description
4946 "This library brings functools.singledispatch from Python 3.4 to Python
49472.6-3.3.")
4948 (license license:expat)))
4949
4950(define-public python2-singledispatch
4951 (package-with-python2 python-singledispatch))
feaae484 4952
310d218f
RW
4953(define-public python-tornado
4954 (package
4955 (name "python-tornado")
a724924b 4956 (version "4.3")
310d218f
RW
4957 (source
4958 (origin
4959 (method url-fetch)
a724924b 4960 (uri (pypi-uri "tornado" version))
310d218f 4961 (sha256
a724924b 4962 (base32 "1gzgwayl6hmc9jfcl88bni4jcsk2jcca9dn1rvrfsvnijcjx7hn9"))))
310d218f 4963 (build-system python-build-system)
310d218f 4964 (native-inputs
b455439b
EF
4965 `(("python-certifi" ,python-certifi)))
4966 (inputs
4967 `(("python-backports-abc" ,python-backports-abc)))
f4a4a718 4968 (home-page "http://www.tornadoweb.org/")
310d218f
RW
4969 (synopsis "Python web framework and asynchronous networking library")
4970 (description
4971 "Tornado is a Python web framework and asynchronous networking library,
4972originally developed at FriendFeed. By using non-blocking network I/O,
4973Tornado can scale to tens of thousands of open connections, making it ideal
4974for long polling, WebSockets, and other applications that require a long-lived
4975connection to each user.")
3f641af0 4976 (license license:asl2.0)
b455439b 4977 (properties `((python2-variant . ,(delay python2-tornado))))))
310d218f
RW
4978
4979(define-public python2-tornado
b455439b 4980 (let ((tornado (package-with-python2 (strip-python2-variant python-tornado))))
310d218f
RW
4981 (package (inherit tornado)
4982 (inputs
4983 `(("python2-backport-ssl-match-hostname"
4984 ,python2-backport-ssl-match-hostname)
b455439b
EF
4985 ("python2-singledispatch" ,python2-singledispatch)
4986 ,@(package-inputs tornado)))
4987 (native-inputs
4988 `(("python2-setuptools" ,python2-setuptools)
4989 ,@(package-native-inputs tornado))))))
310d218f 4990
6b59fc10
EF
4991;; the python- version can be removed with python-3.5
4992(define-public python-backports-abc
4993 (package
4994 (name "python-backports-abc")
4995 (version "0.4")
4996 (source
4997 (origin
4998 (method url-fetch)
4999 (uri (pypi-uri "backports_abc" version))
5000 (sha256
5001 (base32
5002 "19fh75lni9pb673n2fn505m1rckm0af0szcv5xx1qm1xpa940glb"))))
5003 (build-system python-build-system)
5004 (inputs
5005 `(("python-setuptools" ,python-setuptools)))
5006 (home-page "https://github.com/cython/backports_abc")
66e07664 5007 (synopsis "Backport of additions to the 'collections.abc' module")
6b59fc10
EF
5008 (description
5009 "Python-backports-abc provides a backport of additions to the
5010'collections.abc' module in Python-3.5.")
3f641af0 5011 (license license:psfl)))
6b59fc10
EF
5012
5013(define-public python2-backports-abc
5014 (package-with-python2 python-backports-abc))
5015
feaae484
SB
5016(define-public python-waf
5017 (package
5018 (name "python-waf")
f0e8d85e 5019 (version "1.9.1")
feaae484
SB
5020 (source (origin
5021 (method url-fetch)
5022 (uri (string-append "https://waf.io/"
5023 "waf-" version ".tar.bz2"))
5024 (sha256
5025 (base32
f0e8d85e 5026 "1nc4qaqx2vsanlpp9mcwvf91xjqpkvcc6fcxd5sb4fwvaxamw5v6"))))
feaae484
SB
5027 (build-system python-build-system)
5028 (arguments
5029 '(#:phases
5030 (modify-phases %standard-phases
5031 (replace 'build
5032 (lambda _
5033 (zero? (begin
5034 (system* "python" "waf-light" "configure")
5035 (system* "python" "waf-light" "build")))))
5036 (replace 'check
5037 (lambda _
5038 (zero? (system* "python" "waf" "--version"))))
5039 (replace 'install
5040 (lambda _
5041 (copy-file "waf" %output))))))
5042 (home-page "https://waf.io/")
5043 (synopsis "Python-based build system")
5044 (description
5045 "Waf is a Python-based framework for configuring, compiling and installing
5046applications.")
3f641af0 5047 (license license:bsd-3)))
feaae484
SB
5048
5049(define-public python2-waf
5050 (package-with-python2 python-waf))
45203542
RW
5051
5052(define-public python-pyzmq
5053 (package
5054 (name "python-pyzmq")
3655ee76 5055 (version "15.1.0")
45203542
RW
5056 (source
5057 (origin
5058 (method url-fetch)
3655ee76 5059 (uri (pypi-uri "pyzmq" version))
45203542 5060 (sha256
3655ee76 5061 (base32 "13fhwnlvsvxv72kfhqbpn6qi7msh8mc8377mpabv32skk2cjfnxx"))))
45203542
RW
5062 (build-system python-build-system)
5063 (arguments
5064 `(#:configure-flags
5065 (list (string-append "--zmq=" (assoc-ref %build-inputs "zeromq")))
5066 ;; FIXME: You must build pyzmq with 'python setup.py build_ext
5067 ;; --inplace' for 'python setup.py test' to work.
5068 #:tests? #f))
5069 (inputs
5070 `(("zeromq" ,zeromq)))
5071 (native-inputs
5072 `(("pkg-config" ,pkg-config)
5073 ("python-nose" ,python-nose)
5074 ("python-setuptools" ,python-setuptools)))
5075 (home-page "http://github.com/zeromq/pyzmq")
5076 (synopsis "Python bindings for 0MQ")
5077 (description
5078 "PyZMQ is the official Python binding for the ZeroMQ messaging library.")
3f641af0 5079 (license license:bsd-4)))
45203542
RW
5080
5081(define-public python2-pyzmq
5082 (package-with-python2 python-pyzmq))
d889e6c4
CR
5083
5084(define-public python-pep8
5085 (package
5086 (name "python-pep8")
db251311 5087 (version "1.7.0")
d889e6c4
CR
5088 (source
5089 (origin
5090 (method url-fetch)
db251311 5091 (uri (pypi-uri "pep8" version))
d889e6c4
CR
5092 (sha256
5093 (base32
db251311 5094 "002rkl4lsn6x2mxmf8ar00l0m8i3mzrc6pnzz77blyksmpsxa4x1"))))
d889e6c4
CR
5095 (build-system python-build-system)
5096 (inputs
5097 `(("python-setuptools" ,python-setuptools)))
5098 (home-page "http://pep8.readthedocs.org/")
5099 (synopsis "Python style guide checker")
5100 (description
5101 "This tools checks Python code against some of the style conventions in
5102PEP 8.")
5103 (license license:expat)))
5104
5105(define-public python2-pep8
5106 (package-with-python2 python-pep8))
e31d7f44
CR
5107
5108(define-public python-pyflakes
5109 (package
5110 (name "python-pyflakes")
2abc3972 5111 (version "1.0.0")
e31d7f44
CR
5112 (source
5113 (origin
5114 (method url-fetch)
2abc3972 5115 (uri (pypi-uri "pyflakes" version))
e31d7f44
CR
5116 (sha256
5117 (base32
2abc3972 5118 "0qs2sgqszq7wcplis8509wk2ygqcrwzbs1ghfj3svvivq2j377pk"))))
e31d7f44
CR
5119 (build-system python-build-system)
5120 (inputs
5121 `(("python-setuptools" ,python-setuptools)))
5122 (home-page
5123 "https://github.com/pyflakes/pyflakes")
5124 (synopsis "Passive checker of Python programs")
5125 (description
5126 "Pyflakes statically checks Python source code for common errors.")
5127 (license license:expat)))
a59e017c 5128
7261d9eb
CR
5129(define-public python2-pyflakes
5130 (package-with-python2 python-pyflakes))
5131
a59e017c
CR
5132(define-public python-mccabe
5133 (package
5134 (name "python-mccabe")
c6ebd40d 5135 (version "0.4.0")
a59e017c
CR
5136 (source
5137 (origin
5138 (method url-fetch)
c6ebd40d 5139 (uri (pypi-uri "mccabe" version))
a59e017c
CR
5140 (sha256
5141 (base32
c6ebd40d 5142 "0yr08a36h8lqlif10l4xcikbbig7q8f41gqywir7rrvnv3mi4aws"))))
a59e017c
CR
5143 (build-system python-build-system)
5144 (inputs
c6ebd40d
EF
5145 `(("python-pytest" ,python-pytest)
5146 ("python-pytest-runner" ,python-pytest-runner)
5147 ("python-setuptools" ,python-setuptools)))
a59e017c
CR
5148 (home-page "https://github.com/flintwork/mccabe")
5149 (synopsis "McCabe checker, plugin for flake8")
5150 (description
5151 "This package provides a Flake8 plug-in to compute the McCabe cyclomatic
5152complexity of Python source code.")
7362371d 5153 (license license:expat)))
a59e017c
CR
5154
5155(define-public python2-mccabe
5156 (package-with-python2 python-mccabe))
e8df8f47 5157
7477fbb1
CR
5158(define-public python-mccabe-0.2.1
5159 (package (inherit python-mccabe)
5160 (version "0.2.1")
5161 (source
5162 (origin
5163 (method url-fetch)
5164 (uri (pypi-uri "mccabe" version))
5165 (sha256
5166 (base32
c6ebd40d 5167 "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs"))))
b3546174 5168 (inputs `(("python-setuptools" ,python-setuptools)))))
7477fbb1
CR
5169
5170(define-public python2-mccabe-0.2.1
5171 (package-with-python2 python-mccabe-0.2.1))
5172
e8df8f47
CR
5173;; Flake8 2.4.1 requires an older version of pep8.
5174;; This should be removed ASAP.
5175(define-public python-pep8-1.5.7
5176 (package (inherit python-pep8)
5177 (version "1.5.7")
5178 (source
5179 (origin
5180 (method url-fetch)
5181 (uri (string-append
5182 "https://pypi.python.org/packages/source/p/pep8/pep8-"
5183 version
5184 ".tar.gz"))
5185 (sha256
5186 (base32
5187 "12b9bbdbwnspxgak14xg58c130x2n0blxzlms5jn2dszn8qj3d0m"))))))
5188
5189(define-public python2-pep8-1.5.7
5190 (package-with-python2 python-pep8-1.5.7))
5191
5192;; Flake8 2.4.1 requires an older version of pyflakes.
5193;; This should be removed ASAP.
5194(define-public python-pyflakes-0.8.1
5195 (package (inherit python-pyflakes)
5196 (version "0.8.1")
5197 (source
5198 (origin
5199 (method url-fetch)
5200 (uri (string-append
5201 "https://pypi.python.org/packages/source/p/pyflakes/pyflakes-"
5202 version
5203 ".tar.gz"))
5204 (sha256
5205 (base32
5206 "0sbpq6pqm1i9wqi41mlfrsc5rk92jv4mskvlyxmnhlbdnc80ma1z"))))))
5207
5208(define-public python2-pyflakes-0.8.1
7261d9eb 5209 (package-with-python2 python-pyflakes-0.8.1))
e8df8f47
CR
5210
5211(define-public python-flake8
5212 (package
5213 (name "python-flake8")
43789136 5214 (version "2.5.4")
e8df8f47
CR
5215 (source
5216 (origin
5217 (method url-fetch)
1b995533 5218 (uri (pypi-uri "flake8" version))
e8df8f47
CR
5219 (sha256
5220 (base32
43789136 5221 "0bs9cz4fr99r2rwig1b8jwaadl1nan7kgpdzqwj0bwbckwbmh7nc"))))
e8df8f47
CR
5222 (build-system python-build-system)
5223 (inputs
5224 `(("python-setuptools" ,python-setuptools)
43789136
EF
5225 ("python-pep8" ,python-pep8)
5226 ("python-pyflakes" ,python-pyflakes)
e8df8f47
CR
5227 ("python-mccabe" ,python-mccabe)
5228 ("python-mock" ,python-mock)
5229 ("python-nose" ,python-nose)))
5230 (home-page "https://gitlab.com/pycqa/flake8")
5231 (synopsis
5232 "The modular source code checker: pep8, pyflakes and co")
5233 (description
5234 "Flake8 is a wrapper around PyFlakes, pep8 and python-mccabe.")
5235 (license license:expat)))
5236
5237(define-public python2-flake8
5238 (package-with-python2 python-flake8))
61b9ac53 5239
abf21efc
CR
5240;; This will only be needed by the python-hacking package and will not be
5241;; necessary once python-hacking > 0.10.2 is released.
5242(define-public python-flake8-2.2.4
5243 (package (inherit python-flake8)
5244 (inputs
5245 `(("python-setuptools" ,python-setuptools)
5246 ("python-pep8" ,python-pep8-1.5.7)
5247 ("python-pyflakes" ,python-pyflakes-0.8.1)
5248 ("python-mccabe" ,python-mccabe-0.2.1)
5249 ("python-mock" ,python-mock)
5250 ("python-nose" ,python-nose)))
5251 (version "2.2.4")
5252 (source
5253 (origin
5254 (method url-fetch)
5255 (uri (pypi-uri "flake8" version))
5256 (sha256
5257 (base32
5258 "1r9wsry4va45h1rck5hxd3vzsg2q3y6lnl6pym1bxvz8ry19jwx8"))))))
5259
5260(define-public python2-flake8-2.2.4
5261 (package-with-python2 python-flake8-2.2.4))
5262
61b9ac53
FB
5263(define-public python-mistune
5264 (package
5265 (name "python-mistune")
5266 (version "0.7")
5267 (source
5268 (origin
5269 (method url-fetch)
5270 (uri (string-append
5271 "https://pypi.python.org/packages/source/m/mistune/mistune-"
5272 version
5273 ".tar.gz"))
5274 (sha256
5275 (base32
5276 "17zqjp9m4d1w3jf2rbbq5xshcw24q1vlcv24gkgfqqyyymajxahx"))))
5277 (build-system python-build-system)
5278 (inputs
5279 `(("python-setuptools" ,python-setuptools)
5280 ("python-nose" ,python-nose)
5281 ("python-cython" ,python-cython)))
5282 (home-page "https://github.com/lepture/mistune")
5283 (synopsis "Markdown parser in pure Python")
5284 (description "This package provides a fast markdown parser in pure
5285Python.")
3f641af0 5286 (license license:bsd-3)))
61b9ac53
FB
5287
5288(define-public python2-mistune
5289 (package-with-python2 python-mistune))
6d992d07 5290
b9893908
EE
5291(define-public python-markdown
5292 (package
5293 (name "python-markdown")
5294 (version "2.6.5")
5295 (source
5296 (origin
5297 (method url-fetch)
5298 (uri (pypi-uri "Markdown" version))
5299 (sha256
5300 (base32
5301 "0q758a3fiiawr20b3hhjfs677cwj6xi284yb7xspcvv0fdicz54d"))))
5302 (build-system python-build-system)
5303 (arguments
5304 `(#:phases
5305 (modify-phases %standard-phases
5306 (replace 'check
5307 (lambda _
5308 (zero? (system* "python" "run-tests.py")))))))
5309 (native-inputs
5310 `(("python-nose" ,python-nose)
5311 ("python-pyyaml" ,python-pyyaml)))
5312 (home-page "https://pythonhosted.org/Markdown/")
5313 (synopsis "Python implementation of Markdown")
5314 (description
5315 "This package provides a Python implementation of John Gruber's
5316Markdown. The library features international input, various Markdown
5317extensions, and several HTML output formats. A command line wrapper
5318markdown_py is also provided to convert Markdown files to HTML.")
3f641af0 5319 (license license:bsd-3)))
b9893908
EE
5320
5321(define-public python2-markdown
5322 (package-with-python2 python-markdown))
5323
6d992d07
FB
5324(define-public python-ptyprocess
5325 (package
5326 (name "python-ptyprocess")
5327 (version "0.5")
5328 (source
5329 (origin
5330 (method url-fetch)
5331 (uri (string-append
5332 "https://pypi.python.org/packages/source/p/ptyprocess/ptyprocess-"
5333 version ".tar.gz"))
5334 (sha256
5335 (base32
5336 "0nggns5kikn32yyda2zrj1xdmh49pi3v0drggcdwljbv36r8zdyw"))))
5337 (build-system python-build-system)
5338 (inputs
5339 `(("python-setuptools" ,python-setuptools)
5340 ("python-nose" ,python-nose)))
5341 (arguments
5342 `(#:phases
5343 (modify-phases %standard-phases
5344 (replace 'check
5345 (lambda _
5346 (zero? (system* "nosetests")))))))
5347 (home-page "https://github.com/pexpect/ptyprocess")
5348 (synopsis "Run a subprocess in a pseudo terminal")
5349 (description
5350 "This package provides a Python library used to launch a subprocess in a
5351pseudo terminal (pty), and interact with both the process and its pty.")
3f641af0 5352 (license license:isc)))
6d992d07
FB
5353
5354(define-public python2-ptyprocess
5355 (package-with-python2 python-ptyprocess))
4aadb1df
FB
5356
5357(define-public python-terminado
5358 (package
5359 (name "python-terminado")
783fb0a3 5360 (version "0.6")
4aadb1df
FB
5361 (source
5362 (origin
5363 (method url-fetch)
783fb0a3 5364 (uri (pypi-uri "terminado" version))
4aadb1df
FB
5365 (sha256
5366 (base32
783fb0a3 5367 "09h1kwi86g5mrk14s4pgbhshd602zry29lnpxamcqz864kva22rc"))))
4aadb1df
FB
5368 (build-system python-build-system)
5369 (propagated-inputs
5370 `(("python-tornado" ,python-tornado)
5371 ("python-ptyprocess" ,python-ptyprocess)))
783fb0a3
EF
5372 (native-inputs
5373 `(("python-nose" ,python-nose)))
4aadb1df
FB
5374 (arguments
5375 `(#:phases
5376 (modify-phases %standard-phases
5377 (replace 'check
5378 (lambda _
5379 (zero? (system* "nosetests")))))))
5380 (home-page "https://github.com/takluyver/terminado")
5381 (synopsis "Terminals served to term.js using Tornado websockets")
5382 (description "This package provides a Tornado websocket backend for the
5383term.js Javascript terminal emulator library.")
3f641af0 5384 (license license:bsd-2)
783fb0a3 5385 (properties `((python2-variant . ,(delay python2-terminado))))))
4aadb1df
FB
5386
5387(define-public python2-terminado
783fb0a3 5388 (let ((terminado (package-with-python2 (strip-python2-variant python-terminado))))
4aadb1df 5389 (package (inherit terminado)
783fb0a3
EF
5390 (propagated-inputs
5391 `(("python2-backport-ssl-match-hostname"
5392 ,python2-backport-ssl-match-hostname)
5393 ,@(package-propagated-inputs terminado)))
5394 (native-inputs
5395 `(("python2-setuptools" ,python2-setuptools)
5396 ,@(package-native-inputs terminado))))))
5faa5ce4 5397
d582eaac
SB
5398(define-public python-fonttools
5399 (package
5400 (name "python-fonttools")
5401 (version "2.5")
5402 (source (origin
5403 (method url-fetch)
5404 (uri (string-append
5405 "https://pypi.python.org/packages/source/F/FontTools/"
5406 "fonttools-" version ".tar.gz"))
5407 (sha256
5408 (base32
5409 "08ay3x4ijarwhl60gqx2i9jzq6pxs20p4snc2d1q5jagh4rn39lb"))))
5410 (build-system python-build-system)
5411 (arguments '(#:test-target "check"))
5412 (propagated-inputs
5413 ;; XXX: module not found if setuptools is not available.
5414 `(("python-setuptools" ,python-setuptools)))
5415 (home-page "http://github.com/behdad/fonttools")
5416 (synopsis "Tools to manipulate font files")
5417 (description
5418 "FontTools/TTX is a library to manipulate font files from Python. It
5419supports reading and writinfg of TrueType/OpenType fonts, reading and writing
5420of AFM files, reading (and partially writing) of PS Type 1 fonts. The package
5421also contains a tool called “TTX” which converts TrueType/OpenType fonts to and
5422from an XML-based format.")
3f641af0
DC
5423 (license (license:non-copyleft
5424 "file://LICENSE.txt"
5425 "See LICENSE.txt in the distribution."))))
d582eaac
SB
5426
5427(define-public python2-fonttools
5428 (package-with-python2 python-fonttools))
75710da6 5429
5faa5ce4
RW
5430(define-public python-ly
5431 (package
5432 (name "python-ly")
5135354f 5433 (version "0.9.4")
5faa5ce4
RW
5434 (source
5435 (origin
5436 (method url-fetch)
5135354f
RW
5437 (uri (string-append "https://pypi.python.org/packages/57/4f/"
5438 "889579244947368f28eda66b782331b1e75f83fd72e63f9ece93cd7a18f9"
5439 "/python-ly-" version ".tar.gz"))
5faa5ce4
RW
5440 (sha256
5441 (base32
5135354f 5442 "0g6n288l83sfwavxh1aryi0aqvsr3sp7v6f903mckwqa4scpky62"))))
5faa5ce4
RW
5443 (build-system python-build-system)
5444 (native-inputs
5445 `(("python-setuptools" ,python-setuptools)))
5446 (synopsis "Tool and library for manipulating LilyPond files")
5447 (description "This package provides a Python library to parse, manipulate
5448or create documents in LilyPond format. A command line program ly is also
5449provided that can be used to do various manipulations with LilyPond files.")
5450 (home-page "https://pypi.python.org/pypi/python-ly")
3f641af0 5451 (license license:gpl2+)))
7e7b27d9
CR
5452
5453(define-public python-appdirs
5454 (package
5455 (name "python-appdirs")
5456 (version "1.4.0")
5457 (source
5458 (origin
5459 (method url-fetch)
5460 (uri (string-append
5461 "https://pypi.python.org/packages/source/a/appdirs/appdirs-"
5462 version
5463 ".tar.gz"))
5464 (sha256
5465 (base32
5466 "1iddva7v3fq0aqzsahkazxr7vpw28mqcrsy818z4wyiqnkplbhlg"))))
5467 (build-system python-build-system)
5468 (inputs
5469 `(("python-setuptools" ,python-setuptools)))
5470 (home-page "http://github.com/ActiveState/appdirs")
5471 (synopsis
5472 "Determine platform-specific dirs, e.g. a \"user data dir\"")
5473 (description
5474 "This module provides a portable way of finding out where user data
5475should be stored on various operating systems.")
5476 (license license:expat)))
5477
5478(define-public python2-appdirs
5479 (package-with-python2 python-appdirs))
89b2e0b0
LF
5480
5481(define-public python-llfuse
5482 (package
5483 (name "python-llfuse")
e36ace36 5484 (version "1.1.1")
89b2e0b0
LF
5485 (source (origin
5486 (method url-fetch)
5487 (uri (string-append
5488 "https://bitbucket.org/nikratio/python-llfuse/downloads/"
5489 "llfuse-" version ".tar.bz2"))
5490 (sha256
5491 (base32
e36ace36 5492 "0v6vj9mb286njgd1szg9hz2qdh5f3vkhsvajripfcqg458av310v"))))
89b2e0b0
LF
5493 (build-system python-build-system)
5494 (inputs
5495 `(("fuse" ,fuse)
5496 ("attr" ,attr)))
5497 (native-inputs
5498 `(("pkg-config" ,pkg-config)
5499 ("python-setuptools" ,python-setuptools)))
5500 (synopsis "Python bindings for FUSE")
5501 (description
5502 "Python-LLFUSE is a set of Python bindings for the low level FUSE API.")
5503 (home-page "https://bitbucket.org/nikratio/python-llfuse/")
3f641af0 5504 (license license:lgpl2.0+)
cd0569c4 5505 (properties `((python2-variant . ,(delay python2-llfuse))))))
89b2e0b0
LF
5506
5507(define-public python2-llfuse
cd0569c4
LF
5508 (package (inherit (package-with-python2
5509 (strip-python2-variant python-llfuse)))
5510 (propagated-inputs `(("python2-contextlib2" ,python2-contextlib2)))))
5511
5512;; For attic-0.16
5513(define-public python-llfuse-0.41
5514 (package (inherit python-llfuse)
229b3661 5515 (version "0.41.1")
cd0569c4
LF
5516 (source (origin
5517 (method url-fetch)
5518 (uri (string-append
5519 "https://bitbucket.org/nikratio/python-llfuse/downloads/"
5520 "llfuse-" version ".tar.bz2"))
5521 (sha256
5522 (base32
229b3661 5523 "1imlqw9b73086y97izr036f58pgc5akv4ihc2rrf8j5h75jbrlaa"))))
cd0569c4
LF
5524 ;; Python-LLFUSE < 0.42 includes underscore.js, which is MIT (expat)
5525 ;; licensed. The rest of the package is licensed under LGPL2.0 or later.
3f641af0 5526 (license (list license:expat license:lgpl2.0+))))
641c9871
LF
5527
5528(define-public python-msgpack
5529 (package
5530 (name "python-msgpack")
aed625bd 5531 (version "0.4.8")
641c9871
LF
5532 (source (origin
5533 (method url-fetch)
ae831df4 5534 (uri (pypi-uri "msgpack-python" version))
641c9871
LF
5535 (sha256
5536 (base32
aed625bd 5537 "11pqk5braa6wndpnr1dhg64js82vjgxnm0lzy73rwl831zgijaqs"))))
641c9871 5538 (build-system python-build-system)
641c9871
LF
5539 (synopsis "MessagePack (de)serializer")
5540 (description "MessagePack is a fast, compact binary serialization format,
5541suitable for similar data to JSON. This package provides CPython bindings for
5542reading and writing MessagePack data.")
5543 (home-page "https://pypi.python.org/pypi/msgpack-python/")
3f641af0 5544 (license license:asl2.0)
bd74be7b
LF
5545 (properties `((python2-variant . ,(delay python2-msgpack))))))
5546
5547(define-public python2-msgpack
5548 (package (inherit (package-with-python2
5549 (strip-python2-variant python-msgpack)))
5550 (native-inputs
5551 `(("python2-setuptools" ,python2-setuptools)))))
641c9871
LF
5552
5553(define-public python2-msgpack
5554 (package-with-python2 python-msgpack))
6e5e39f4
CR
5555
5556(define-public python-netaddr
5557 (package
5558 (name "python-netaddr")
5559 (version "0.7.18")
5560 (source
5561 (origin
5562 (method url-fetch)
5563 (uri (string-append
5564 "https://pypi.python.org/packages/source/n/netaddr/netaddr-"
5565 version
5566 ".tar.gz"))
5567 (sha256
5568 (base32
5569 "06dxjlbcicq7q3vqy8agq11ra01kvvd47j4mk6dmghjsyzyckxd1"))))
5570 (build-system python-build-system)
5571 (arguments `(#:tests? #f)) ;; No tests.
5572 (inputs
5573 `(("python-setuptools" ,python-setuptools)))
5574 (home-page "https://github.com/drkjam/netaddr/")
5575 (synopsis "Pythonic manipulation of network addresses")
5576 (description
5577 "A Python library for representing and manipulating IPv4, IPv6, CIDR, EUI
5578and MAC network addresses.")
3f641af0 5579 (license license:bsd-3)))
6e5e39f4
CR
5580
5581(define-public python2-netaddr
5582 (package-with-python2 python-netaddr))
8c692a52
CR
5583
5584(define-public python-wrapt
5585 (package
5586 (name "python-wrapt")
5587 (version "1.10.5")
5588 (source
5589 (origin
5590 (method url-fetch)
5591 (uri (string-append
5592 "https://pypi.python.org/packages/source/w/wrapt/wrapt-"
5593 version
5594 ".tar.gz"))
5595 (sha256
5596 (base32
5597 "0cq8rlpzkxzk48b50yrfhzn1d1hrq4gjcdqlrgq4v5palgiv9jwr"))))
5598 (build-system python-build-system)
5599 (arguments
5600 ;; Tests are not included in the tarball, they are only available in the
5601 ;; git repository.
5602 `(#:tests? #f))
5603 (inputs
5604 `(("python-setuptools" ,python-setuptools)))
5605 (home-page "https://github.com/GrahamDumpleton/wrapt")
5606 (synopsis "Module for decorators, wrappers and monkey patching")
5607 (description
5608 "The aim of the wrapt module is to provide a transparent object proxy for
5609 Python, which can be used as the basis for the construction of function
5610 wrappers and decorator functions.")
3f641af0 5611 (license license:bsd-2)))
8c692a52
CR
5612
5613(define-public python2-wrapt
5614 (package-with-python2 python-wrapt))
b85c85be
CR
5615
5616(define-public python-iso8601
5617 (package
5618 (name "python-iso8601")
fe84bc9a 5619 (version "0.1.11")
b85c85be
CR
5620 (source
5621 (origin
5622 (method url-fetch)
fe84bc9a 5623 (uri (pypi-uri "iso8601" version))
b85c85be 5624 (sha256
fe84bc9a
EF
5625 (base32
5626 "0c7gh3lsdjds262h0v1sqc66l7hqgfwbakn96qrhdbl0i3vm5yz8"))))
b85c85be
CR
5627 (build-system python-build-system)
5628 (inputs
5629 `(("python-setuptools" ,python-setuptools)))
5630 (home-page "https://bitbucket.org/micktwomey/pyiso8601")
5631 (synopsis "Module to parse ISO 8601 dates")
5632 (description
5633 "This module parses the most common forms of ISO 8601 date strings (e.g.
5634@code{2007-01-14T20:34:22+00:00}) into @code{datetime} objects.")
5635 (license license:expat)))
5636
5637(define-public python2-iso8601
5638 (package-with-python2 python-iso8601))
5e412b63
CR
5639
5640(define-public python-monotonic
5641 (package
5642 (name "python-monotonic")
5643 (version "0.3")
5644 (source
5645 (origin
5646 (method url-fetch)
5647 (uri (string-append
5648 "https://pypi.python.org/packages/source/m/monotonic/monotonic-"
5649 version
5650 ".tar.gz"))
5651 (sha256
5652 (base32
5653 "0yz0bcbwx8r2c01czzfpbrxddynxyk9k95jj8h6sgcb7xmfvl998"))))
5654 (build-system python-build-system)
5655 (inputs
5656 `(("python-setuptools" ,python-setuptools)))
5657 (home-page "https://github.com/atdt/monotonic")
5658 (synopsis "Implementation of time.monotonic() for Python 2 & < 3.3")
5659 (description
5660 "This module provides a monotonic() function which returns the value (in
5661fractional seconds) of a clock which never goes backwards.")
3f641af0 5662 (license license:asl2.0)))
5e412b63
CR
5663
5664(define-public python2-monotonic
5665 (package-with-python2 python-monotonic))
de34afac
CR
5666
5667(define-public python-webob
5668 (package
5669 (name "python-webob")
b8834c21 5670 (version "1.5.1")
de34afac
CR
5671 (source
5672 (origin
5673 (method url-fetch)
b8834c21 5674 (uri (pypi-uri "WebOb" version))
de34afac
CR
5675 (sha256
5676 (base32
b8834c21 5677 "02bhhzijfhv8hmi1i54d4b0v43liwhnywhflvxsv4x3zax9s3afq"))))
de34afac
CR
5678 (build-system python-build-system)
5679 (inputs
5680 `(("python-nose" ,python-nose)
5681 ("python-setuptools" ,python-setuptools)))
5682 (home-page "http://webob.org/")
5683 (synopsis "WSGI request and response object")
5684 (description
5685 "WebOb provides wrappers around the WSGI request environment, and an
5686object to help create WSGI responses.")
5687 (license license:expat)))
5688
5689(define-public python2-webob
5690 (package-with-python2 python-webob))
350ba0a3 5691
02a8a187
BW
5692(define-public python-xlrd
5693 (package
5694 (name "python-xlrd")
5695 (version "0.9.4")
5696 (source (origin
5697 (method url-fetch)
5698 (uri (string-append "https://pypi.python.org/packages/source/x/"
5699 "xlrd/xlrd-" version ".tar.gz"))
5700 (sha256
5701 (base32
5702 "0wpa55nvidmm5m2qr622dsh3cj46akdk0h3zjgzschcmydck73cf"))))
5703 (build-system python-build-system)
5704 (arguments
5705 `(#:phases
5706 (modify-phases %standard-phases
5707 ;; Current test in setup.py does not work as of 0.9.4, so use nose to
5708 ;; run tests instead for now.
5709 (replace 'check (lambda _ (zero? (system* "nosetests")))))))
5710 (native-inputs `(("python-nose" ,python-nose)
5711 ("python-setuptools" ,python-setuptools)))
5712 (home-page "http://www.python-excel.org/")
5713 (synopsis "Library for extracting data from Excel files")
5714 (description "This packages provides a library to extract data from
c598e35c 5715spreadsheets using Microsoft Excel proprietary file formats @samp{.xls} and
02a8a187
BW
5716@samp{.xlsx} (versions 2.0 onwards). It has support for Excel dates and is
5717Unicode-aware. It is not intended as an end-user tool.")
3f641af0 5718 (license license:bsd-3)))
02a8a187
BW
5719
5720(define-public python2-xlrd
5721 (package-with-python2 python-xlrd))
5722
350ba0a3
CR
5723(define-public python-prettytable
5724 (package
5725 (name "python-prettytable")
5726 (version "0.7.2")
5727 (source
5728 (origin
5729 (method url-fetch)
5730 (uri (string-append
5731 "https://pypi.python.org/packages/source/P/PrettyTable/"
5732 "prettytable-" version ".tar.bz2"))
5733 (sha256
5734 (base32
5735 "0diwsicwmiq2cpzpxri7cyl5fmsvicafw6nfqf6p6p322dji2g45"))))
5736 (build-system python-build-system)
5737 (inputs
5738 `(("python-setuptools" ,python-setuptools)))
5739 (home-page "http://code.google.com/p/prettytable/")
5740 (synopsis "Display tabular data in an ASCII table format")
5741 (description
5742 "A library designed to represent tabular data in visually appealing ASCII
5743tables. PrettyTable allows for selection of which columns are to be printed,
5744independent alignment of columns (left or right justified or centred) and
5745printing of sub-tables by specifying a row range.")
3f641af0 5746 (license license:bsd-3)))
350ba0a3
CR
5747
5748(define-public python2-prettytable
5749 (package-with-python2 python-prettytable))
7a8ac75a 5750
9f8ee3fe
RW
5751(define-public python-tables
5752 (package
5753 (name "python-tables")
5754 (version "3.2.2")
5755 (source
5756 (origin
5757 (method url-fetch)
5758 (uri (pypi-uri "tables" version))
5759 (sha256
5760 (base32
5761 "117s6w7s3yxafpmf3zz3svana7xfrsviw01va1xp7h8ylx8v6r1m"))))
5762 (build-system python-build-system)
5763 (arguments
5764 `(;; FIXME: python-build-system does not pass configure-flags to "build"
5765 ;; or "check", so we must override the build and check phases.
5766 #:phases
5767 (modify-phases %standard-phases
5768 (add-after 'unpack 'use-gcc
5769 (lambda _
5770 (substitute* "setup.py"
5771 (("compiler = new_compiler\\(\\)" line)
5772 (string-append line
5773 "\ncompiler.set_executables(compiler='gcc',"
5774 "compiler_so='gcc',"
5775 "linker_exe='gcc',"
5776 "linker_so='gcc -shared')")))
5777 #t))
5778 (replace 'build
5779 (lambda* (#:key inputs #:allow-other-keys)
5780 (zero? (system* "python" "setup.py" "build"
5781 (string-append "--hdf5="
5782 (assoc-ref inputs "hdf5"))))))
5783 (replace 'check
5784 (lambda* (#:key inputs #:allow-other-keys)
5785 (zero? (system* "python" "setup.py" "check"
5786 (string-append "--hdf5="
5787 (assoc-ref inputs "hdf5")))))))))
5788 (propagated-inputs
5789 `(("python-numexpr" ,python-numexpr)
5790 ("python-numpy" ,python-numpy)))
5791 (native-inputs
5792 `(("python-setuptools" ,python-setuptools)
5793 ("python-cython" ,python-cython)
5794 ("pkg-config" ,pkg-config)))
5795 (inputs
5796 `(("hdf5" ,hdf5)
5797 ("bzip2" ,bzip2)
5798 ("zlib" ,zlib)))
5799 (home-page "http://www.pytables.org/")
5800 (synopsis "Hierarchical datasets for Python")
5801 (description "PyTables is a package for managing hierarchical datasets and
5802designed to efficently cope with extremely large amounts of data.")
3f641af0 5803 (license license:bsd-3)))
9f8ee3fe
RW
5804
5805(define-public python2-tables
5806 (package-with-python2 python-tables))
5807
7a8ac75a
RW
5808(define-public python-pyasn1
5809 (package
5810 (name "python-pyasn1")
5811 (version "0.1.8")
5812 (source
5813 (origin
5814 (method url-fetch)
5815 (uri (string-append "https://pypi.python.org/packages/source/p/"
5816 "pyasn1/pyasn1-" version ".tar.gz"))
5817 (sha256
5818 (base32
5819 "0iw31d9l0zwx35szkzq72hiw002wnqrlrsi9dpbrfngcl1ybwcsx"))))
5820 (build-system python-build-system)
5821 (home-page "http://pyasn1.sourceforge.net/")
5822 (synopsis "ASN.1 types and codecs")
5823 (description
5824 "This is an implementation of ASN.1 types and codecs in Python. It is
5825suitable for a wide range of protocols based on the ASN.1 specification.")
3f641af0 5826 (license license:bsd-2)))
7a8ac75a
RW
5827
5828(define-public python2-pyasn1
5829 (package-with-python2 python-pyasn1))
9a49a535 5830
5988c299
EF
5831(define-public python-pyasn1-modules
5832 (package
5833 (name "python-pyasn1-modules")
5834 (version "0.0.8")
5835 (source
5836 (origin
5837 (method url-fetch)
5838 (uri (pypi-uri "pyasn1-modules" version))
5839 (sha256
5840 (base32
5841 "0drqgw81xd3fxdlg89kgd79zzrabvfncvkbybi2wr6w2y4s1jmhh"))))
5842 (build-system python-build-system)
5843 (native-inputs
5844 `(("python-setuptools" ,python-setuptools)))
5845 (propagated-inputs
5846 `(("python-pyasn1" ,python-pyasn1)))
5847 (home-page "http://sourceforge.net/projects/pyasn1/")
5848 (synopsis "ASN.1 codec implementations")
5849 (description
5850 "Pyasn1-modules is a collection of Python modules providing ASN.1 types and
5851implementations of ASN.1-based codecs and protocols.")
3f641af0 5852 (license license:bsd-3)))
5988c299
EF
5853
5854(define-public python2-pyasn1-modules
5855 (package-with-python2 python-pyasn1-modules))
5856
520af157 5857(define-public python-ipaddress
9a49a535 5858 (package
520af157
DC
5859 (name "python-ipaddress")
5860 (version "1.0.16")
5861 (source (origin
5862 (method url-fetch)
5863 (uri (pypi-uri "ipaddress" version))
5864 (sha256
5865 (base32
5866 "1c3imabdrw8nfksgjjflzg7h4ynjckqacb188rf541m74arq4cas"))))
9a49a535 5867 (build-system python-build-system)
9a49a535
RW
5868 (home-page "https://github.com/phihag/ipaddress")
5869 (synopsis "IP address manipulation library")
5870 (description
520af157
DC
5871 "This package provides a fast, lightweight IPv4/IPv6 manipulation library
5872 in Python. This library is used to create, poke at, and manipulate IPv4 and
5873 IPv6 addresses and networks. This is a port of the Python 3.3 ipaddress
5874 module to older versions of Python.")
5875 (license license:psfl)
5876 (properties `((python2-variant . ,(delay python2-ipaddress))))))
5877
5878(define-public python2-ipaddress
5879 (let ((base (package-with-python2 (strip-python2-variant python-ipaddress))))
5880 (package (inherit base)
5881 (native-inputs
5882 `(("python2-setuptools" ,python2-setuptools)
5883 ,@(package-native-inputs base))))))
3f00e078 5884
4a238186
HG
5885(define-public python2-ipaddr
5886 (package
5887 (name "python2-ipaddr")
5888 (version "2.1.11")
5889 (source
5890 (origin
5891 (method url-fetch)
5892 (uri (pypi-uri "ipaddr" version))
5893 (sha256
5894 (base32 "1dwq3ngsapjc93fw61rp17fvzggmab5x1drjzvd4y4q0i255nm8v"))))
5895 (build-system python-build-system)
5896 (arguments
5897 `(#:python ,python-2 ;version 2 only
5898 #:phases
5899 (modify-phases %standard-phases
5900 (replace 'check
5901 (lambda* _
5902 (zero? (system* "python" "ipaddr_test.py")))))))
5903 (home-page "https://github.com/google/ipaddr-py")
5904 (synopsis "IP address manipulation library")
5905 (description
5906 "Ipaddr is a Python@tie{}2 library for creating and manupilating IPv4 and
5907IPv6 addresses and networks.
5908
5909For new implementations you may prefer to use the standard module
5910@code{ipaddress}, which was introduced in Python 3.3 and backported to older
5911versions of Python.")
3f641af0 5912 (license license:asl2.0)))
4a238186 5913
3f00e078
RW
5914(define-public python-idna
5915 (package
5916 (name "python-idna")
5917 (version "2.0")
5918 (source
5919 (origin
5920 (method url-fetch)
5921 (uri (string-append "https://pypi.python.org/packages/source/i/"
5922 "idna/idna-" version ".tar.gz"))
5923 (sha256
5924 (base32
5925 "0frxgmgi234lr9hylg62j69j4ik5zhg0wz05w5dhyacbjfnrl68n"))))
5926 (build-system python-build-system)
5927 (native-inputs
5928 `(("python-setuptools" ,python-setuptools)))
5929 (home-page "https://github.com/kjd/idna")
5930 (synopsis "Internationalized domain names in applications")
5931 (description
5932 "This is a library to support the Internationalised Domain Names in
5933Applications (IDNA) protocol as specified in RFC 5891. This version of the
5934protocol is often referred to as “IDNA2008” and can produce different results
5935from the earlier standard from 2003. The library is also intended to act as a
5936suitable drop-in replacement for the “encodings.idna” module that comes with
5937the Python standard library but currently only supports the older 2003
5938specification.")
3f641af0 5939 (license license:bsd-4)))
3f00e078
RW
5940
5941(define-public python2-idna
5942 (package-with-python2 python-idna))
36ebf972
RW
5943
5944(define-public python-pretend
5945 (package
5946 (name "python-pretend")
5947 (version "1.0.8")
5948 (source
5949 (origin
5950 (method url-fetch)
5951 (uri (string-append "https://pypi.python.org/packages/source/p/"
5952 "pretend/pretend-" version ".tar.gz"))
5953 (sha256
5954 (base32
5955 "0r5r7ygz9m6d2bklflbl84cqhjkc2q12xgis8268ygjh30g2q3wk"))))
5956 (build-system python-build-system)
5957 (native-inputs
5958 `(("python-setuptools" ,python-setuptools)))
5959 (home-page "https://github.com/alex/pretend")
5960 (synopsis "Library for stubbing in Python")
5961 (description
5962 "Pretend is a library to make stubbing with Python easier. Stubbing is a
5963technique for writing tests. You may hear the term mixed up with mocks,
5964fakes, or doubles. Basically, a stub is an object that returns pre-canned
5965responses, rather than doing any computation.")
3f641af0 5966 (license license:bsd-3)))
36ebf972
RW
5967
5968(define-public python2-pretend
5969 (package-with-python2 python-pretend))
aa759a51
RW
5970
5971(define-public python-cryptography-vectors
5972 (package
5973 (name "python-cryptography-vectors")
9c509ca9 5974 (version "1.3.4")
aa759a51
RW
5975 (source
5976 (origin
5977 (method url-fetch)
9c509ca9 5978 (uri (pypi-uri "cryptography_vectors" version))
aa759a51
RW
5979 (sha256
5980 (base32
9c509ca9 5981 "15h1iz2klnpb4f8djxy7cpbnyn3wbjp7bnj4pz6s7w6plghbq524"))))
aa759a51
RW
5982 (build-system python-build-system)
5983 (native-inputs
5984 `(("python-setuptools" ,python-setuptools)))
5985 (home-page "https://github.com/pyca/cryptography")
66e07664 5986 (synopsis "Test vectors for the cryptography package")
aa759a51
RW
5987 (description
5988 "This package contains test vectors for the cryptography package.")
5989 ;; Distributed under either BSD-3 or ASL2.0
3f641af0 5990 (license (list license:bsd-3 license:asl2.0))))
aa759a51
RW
5991
5992(define-public python2-cryptography-vectors
5993 (package-with-python2 python-cryptography-vectors))
88b47cb0
RW
5994
5995(define-public python-cryptography
5996 (package
5997 (name "python-cryptography")
9c509ca9 5998 (version "1.3.4")
88b47cb0
RW
5999 (source
6000 (origin
6001 (method url-fetch)
9c509ca9 6002 (uri (pypi-uri "cryptography" version))
88b47cb0
RW
6003 (sha256
6004 (base32
9c509ca9 6005 "1a85l548w5vvq3yhz0az7ajg2ijixzp6gagapw6wgrqvq28ghgs2"))))
88b47cb0
RW
6006 (build-system python-build-system)
6007 (inputs
6008 `(("openssl" ,openssl)))
6009 (propagated-inputs
6010 `(("python-cffi" ,python-cffi)
6011 ("python-six" ,python-six)
6012 ("python-pyasn1" ,python-pyasn1)
88b47cb0
RW
6013 ("python-idna" ,python-idna)
6014 ("python-iso8601" ,python-iso8601)))
6015 (native-inputs
6016 `(("python-cryptography-vectors" ,python-cryptography-vectors)
ce6c13ee 6017 ("python-hypothesis" ,python-hypothesis)
88b47cb0
RW
6018 ("python-setuptools" ,python-setuptools)
6019 ("python-pretend" ,python-pretend)
ce6c13ee
EF
6020 ("python-pyasn1" ,python-pyasn1)
6021 ("python-pyasn1-modules" ,python-pyasn1-modules)
88b47cb0
RW
6022 ("python-pytest" ,python-pytest)))
6023 (home-page "https://github.com/pyca/cryptography")
6024 (synopsis "Cryptographic recipes and primitives for Python")
6025 (description
6026 "cryptography is a package which provides cryptographic recipes and
6027primitives to Python developers. It aims to be the “cryptographic standard
6028library” for Python. The package includes both high level recipes, and low
6029level interfaces to common cryptographic algorithms such as symmetric ciphers,
6030message digests and key derivation functions.")
6031 ;; Distributed under either BSD-3 or ASL2.0
3f641af0 6032 (license (list license:bsd-3 license:asl2.0))
519e2f4f 6033 (properties `((python2-variant . ,(delay python2-cryptography))))))
88b47cb0
RW
6034
6035(define-public python2-cryptography
519e2f4f
LF
6036 (let ((crypto (package-with-python2
6037 (strip-python2-variant python-cryptography))))
88b47cb0
RW
6038 (package (inherit crypto)
6039 (propagated-inputs
6040 `(("python2-ipaddress" ,python2-ipaddress)
ce6c13ee
EF
6041 ("python2-backport-ssl-match-hostname"
6042 ,python2-backport-ssl-match-hostname)
68f1cdec 6043 ("python2-enum34" ,python2-enum34)
88b47cb0 6044 ,@(package-propagated-inputs crypto))))))
5af999b8
RW
6045
6046(define-public python-pyopenssl
6047 (package
6048 (name "python-pyopenssl")
2fc629dd 6049 (version "16.0.0")
5af999b8
RW
6050 (source
6051 (origin
6052 (method url-fetch)
6053 (uri (string-append "https://pypi.python.org/packages/source/p/"
6054 "pyOpenSSL/pyOpenSSL-" version ".tar.gz"))
6055 (sha256
6056 (base32
2fc629dd 6057 "0zfijaxlq4vgi6jz0d4i5xq9ygqnyps6br7lmigjhqnh8gp10g9n"))))
5af999b8 6058 (build-system python-build-system)
5af999b8
RW
6059 (propagated-inputs
6060 `(("python-cryptography" ,python-cryptography)
6061 ("python-six" ,python-six)))
6062 (inputs
6063 `(("openssl" ,openssl)))
6064 (native-inputs
6065 `(("python-setuptools" ,python-setuptools)))
6066 (home-page "https://github.com/pyca/pyopenssl")
6067 (synopsis "Python wrapper module around the OpenSSL library")
6068 (description
6069 "PyOpenSSL is a high-level wrapper around a subset of the OpenSSL
6070library.")
3f641af0 6071 (license license:asl2.0)))
5af999b8
RW
6072
6073(define-public python2-pyopenssl
519e2f4f 6074 (package-with-python2 python-pyopenssl))
643725a1
CR
6075
6076(define-public python-pip
6077 (package
6078 (name "python-pip")
6fb54e3b 6079 (version "8.0.2")
643725a1
CR
6080 (source
6081 (origin
6082 (method url-fetch)
6fb54e3b 6083 (uri (pypi-uri "pip" version))
643725a1
CR
6084 (sha256
6085 (base32
6fb54e3b 6086 "08cm8d4228fj0qnrysy3qv1a6022zr3dcs25amd14lgxil6vvx26"))))
643725a1
CR
6087 (build-system python-build-system)
6088 (inputs
6089 `(("python-setuptools" ,python-setuptools)
6090 ("python-virtualenv" ,python-virtualenv)
6091 ;; Tests
6092 ("python-mock" ,python-mock)
6093 ("python-pytest" ,python-pytest)
6094 ("python-scripttest" ,python-scripttest)))
6095 (home-page "https://pip.pypa.io/")
6096 (synopsis
6097 "Package manager for Python software")
6098 (description
6099 "Pip is a package manager for Python software, that finds packages on the
6100Python Package Index (PyPI).")
6101 (license license:expat)))
6102
6103(define-public python2-pip
6104 (package-with-python2 python-pip))
d8c4998f
LC
6105
6106(define-public python-tlsh
6107 (package
6108 (name "python-tlsh")
99b00dc7 6109 (version "3.4.4")
d8c4998f
LC
6110 (home-page "https://github.com/trendmicro/tlsh")
6111 (source (origin
99b00dc7
EF
6112 (method url-fetch)
6113 (uri (string-append "https://github.com/trendmicro/tlsh/archive/v"
6114 version ".tar.gz"))
d8c4998f
LC
6115 (sha256
6116 (base32
99b00dc7
EF
6117 "00bhzjqrlh7v538kbkbn8lgx976j1138al3sdhklaizqjvpwyk4r"))
6118 (file-name (string-append name "-" version ".tar.gz"))))
d8c4998f
LC
6119 (build-system cmake-build-system)
6120 (arguments
6121 '(#:out-of-source? #f
6122 #:phases (modify-phases %standard-phases
6123 (replace
6124 'install
6125 (lambda* (#:key outputs #:allow-other-keys)
6126 ;; Build and install the Python bindings. The underlying
6127 ;; C++ library is apparently not meant to be installed.
6128 (let ((out (assoc-ref outputs "out")))
6129 (with-directory-excursion "py_ext"
6130 (and (system* "python" "setup.py" "build")
6131 (system* "python" "setup.py" "install"
6132 (string-append "--prefix=" out))))))))))
6133 (inputs `(("python" ,python-wrapper))) ;for the bindings
6134 (synopsis "Fuzzy matching library for Python")
6135 (description
6136 "Trend Micro Locality Sensitive Hash (TLSH) is a fuzzy matching library.
6137Given a byte stream with a minimum length of 256 bytes, TLSH generates a hash
6138value which can be used for similarity comparisons. Similar objects have
6139similar hash values, which allows for the detection of similar objects by
6140comparing their hash values. The byte stream should have a sufficient amount
6141of complexity; for example, a byte stream of identical bytes will not generate
6142a hash value.")
3f641af0 6143 (license license:asl2.0)))
d8c4998f
LC
6144
6145(define-public python2-tlsh
6146 (package
6147 (inherit python-tlsh)
6148 (name "python2-tlsh")
6149 (inputs `(("python" ,python-2)))))
d96034ed
LC
6150
6151(define-public python-libarchive-c
6152 (package
6153 (name "python-libarchive-c")
03fd001c 6154 (version "2.2")
d96034ed
LC
6155 (source (origin
6156 (method url-fetch)
03fd001c 6157 (uri (pypi-uri "libarchive-c" version))
d96034ed
LC
6158 (sha256
6159 (base32
03fd001c 6160 "0z4r7v3dhd6b3120mav05ff08srih176r2rg5k8kn7mjd9pslm2x"))))
d96034ed
LC
6161 (build-system python-build-system)
6162 (arguments
6163 '(#:phases (modify-phases %standard-phases
6164 (add-before
6165 'build 'reference-libarchive
6166 (lambda* (#:key inputs #:allow-other-keys)
6167 ;; Retain the absolute file name of libarchive.so.
6168 (let ((libarchive (assoc-ref inputs "libarchive")))
6169 (substitute* "libarchive/ffi.py"
6170 (("find_library\\('archive'\\)")
6171 (string-append "'" libarchive
6172 "/lib/libarchive.so'"))))
6173
6174 ;; Do not make a compressed egg (see
6175 ;; <http://bugs.gnu.org/20765>).
6176 (let ((port (open-file "setup.cfg" "a")))
6177 (display "\n[easy_install]\nzip_ok = 0\n"
6178 port)
6179 (close-port port)
6180 #t))))))
6181 (inputs
6182 `(("python-setuptools" ,python-setuptools)
6183 ("libarchive" ,libarchive)))
6184 (home-page "https://github.com/Changaco/python-libarchive-c")
6185 (synopsis "Python interface to libarchive")
6186 (description
6187 "This package provides Python bindings to libarchive, a C library to
6188access possibly compressed archives in many different formats. It uses
6189Python's @code{ctypes} foreign function interface (FFI).")
3f641af0 6190 (license license:lgpl2.0+)))
d96034ed
LC
6191
6192(define-public python2-libarchive-c
6193 (package-with-python2 python-libarchive-c))
5e1c9367
LC
6194
6195(define-public python-file
6196 (package
6197 (inherit file)
6198 (name "python-file")
6199 (build-system python-build-system)
6200 (arguments
6201 '(#:tests? #f ;no tests
6202 #:phases (modify-phases %standard-phases
6203 (add-before 'build 'change-directory
6204 (lambda _
6205 (chdir "python")
6206 #t))
6207 (add-before 'build 'set-library-file-name
6208 (lambda* (#:key inputs #:allow-other-keys)
6209 (let ((file (assoc-ref inputs "file")))
6210 (substitute* "magic.py"
6211 (("find_library\\('magic'\\)")
6212 (string-append "'" file "/lib/libmagic.so'")))
6213 #t))))))
6214 (inputs `(("file" ,file)))
6215 (self-native-input? #f)
daeeea71
CM
6216 (synopsis "Python bindings to the libmagic file type guesser. Note that
6217this module and the python-magic module both provide a \"magic.py\" file;
6218these two modules, which are different and were developed separately, both
6219serve the same purpose: provide Python bindings for libmagic.")))
5e1c9367
LC
6220
6221(define-public python2-file
6222 (package-with-python2 python-file))
85d4aeac
LC
6223
6224(define-public python-debian
6225 (package
6226 (name "python-debian")
6227 (version "0.1.23")
6228 (source
6229 (origin
6230 (method url-fetch)
6231 (uri (string-append
6232 "https://pypi.python.org/packages/source/p/python-debian/python-debian-"
6233 version ".tar.gz"))
6234 (sha256
6235 (base32
6236 "193faznwnjc3n5991wyzim6h9gyq1zxifmfrnpm3avgkh7ahyynh"))))
6237 (build-system python-build-system)
6238 (inputs
6239 `(("python-six" ,python-six)))
6240 (native-inputs
6241 `(("python-setuptools" ,python-setuptools)))
6242 (home-page "http://packages.debian.org/sid/python-debian")
6243 (synopsis "Debian package related modules")
6244 (description
5c7bdc9a
LC
6245 ;; XXX: Use @enumerate instead of @itemize to work around
6246 ;; <http://bugs.gnu.org/21772>.
85d4aeac
LC
6247 "This package provides Python modules that abstract many formats of
6248Debian-related files, such as:
6249
5c7bdc9a 6250@enumerate
85d4aeac
LC
6251@item Debtags information;
6252@item @file{debian/changelog} files;
6253@item packages files, pdiffs;
6254@item control files of single or multiple RFC822-style paragraphs---e.g.
6255 @file{debian/control}, @file{.changes}, @file{.dsc};
6256@item Raw @file{.deb} and @file{.ar} files, with (read-only) access to
6257 contained files and meta-information.
5c7bdc9a 6258@end enumerate\n")
85d4aeac
LC
6259
6260 ;; Modules are either GPLv2+ or GPLv3+.
3f641af0 6261 (license license:gpl3+)))
85d4aeac
LC
6262
6263(define-public python2-debian
6264 (package-with-python2 python-debian))
816a6538
LC
6265
6266(define-public python-chardet
6267 (package
6268 (name "python-chardet")
6269 (version "2.3.0")
6270 (source
6271 (origin
6272 (method url-fetch)
6273 (uri (string-append
6274 "https://pypi.python.org/packages/source/c/chardet/chardet-"
6275 version
6276 ".tar.gz"))
6277 (sha256
6278 (base32
6279 "1ak87ikcw34fivcgiz2xvi938dmclh078az65l9x3rmgljrkhgp5"))))
6280 (build-system python-build-system)
6281 (native-inputs
6282 `(("python-setuptools" ,python-setuptools)))
6283 (home-page "https://github.com/chardet/chardet")
6284 (synopsis "Universal encoding detector for Python 2 and 3")
6285 (description
6286 "This package provides @code{chardet}, a Python module that can
6287automatically detect a wide range of file encodings.")
3f641af0 6288 (license license:lgpl2.1+)))
816a6538
LC
6289
6290(define-public python2-chardet
6291 (package-with-python2 python-chardet))
2fc5f186 6292
1872f1bb
KM
6293(define-public python-docopt
6294 (package
6295 (name "python-docopt")
6296 (version "0.6.2")
6297 (source
6298 (origin
6299 (method url-fetch)
6300 ;; The release on PyPI does not include tests.
6301 (uri (string-append
6302 "https://github.com/docopt/docopt/archive/"
6303 version ".tar.gz"))
6304 (file-name (string-append name "-" version ".tar.gz"))
6305 (sha256
6306 (base32
6307 "16bf890xbdz3m30rsv2qacklh2rdn1zrfspfnwzx9g7vwz8yw4r1"))))
6308 (build-system python-build-system)
6309 (native-inputs
6310 `(("python-pytest" ,python-pytest)
6311 ("python-setuptools" ,python-setuptools)))
6312 (arguments
6313 `(#:phases (alist-replace
6314 'check
6315 (lambda _ (zero? (system* "py.test")))
6316 %standard-phases)))
6317 (home-page "http://docopt.org")
6318 (synopsis "Command-line interface description language for Python")
6319 (description "This library allows the user to define a command-line
6320interface from a program's help message rather than specifying it
6321programatically with command-line parsers like @code{getopt} and
6322@code{argparse}.")
6323 (license license:expat)))
6324
6325(define-public python2-docopt
6326 (package-with-python2 python-docopt))
6327
2fc5f186
LF
6328(define-public python-zope-event
6329 (package
6330 (name "python-zope-event")
6331 (version "4.1.0")
6332 (source
6333 (origin
6334 (method url-fetch)
6335 (uri (string-append "https://pypi.python.org/packages/source/z"
6336 "/zope.event/zope.event-" version ".tar.gz"))
6337 (sha256
6338 (base32
6339 "11p75zpfz3ffhz21nzx9wb23xs993ck5s6hkjcvhswwizni5jynw"))))
6340 (build-system python-build-system)
6341 (inputs
6342 `(("python-setuptools" ,python-setuptools)))
6343 (home-page "http://pypi.python.org/pypi/zope.event")
6344 (synopsis "Event publishing system for Python")
6345 (description "Zope.event provides an event publishing API, intended for
6346use by applications which are unaware of any subscribers to their events. It
6347is a simple event-dispatching system on which more sophisticated event
6348dispatching systems can be built.")
3f641af0 6349 (license license:zpl2.1)))
2fc5f186
LF
6350
6351(define-public python2-zope-event
6352 (package-with-python2 python-zope-event))
97abe268
LF
6353
6354(define-public python-zope-interface
6355 (package
6356 (name "python-zope-interface")
6357 (version "4.1.3")
6358 (source
6359 (origin
6360 (method url-fetch)
6361 (uri (string-append "https://pypi.python.org/packages/source/z"
6362 "/zope.interface/zope.interface-" version ".tar.gz"))
6363 (sha256
6364 (base32
6365 "0ks8h73b2g4bkad821qbv0wzjppdrwys33i7ka45ik3wxjg1l8if"))))
6366 (build-system python-build-system)
6367 (propagated-inputs
6368 `(("python-zope-event" ,python-zope-event)))
6369 (home-page "https://github.com/zopefoundation/zope.interface")
6370 (synopsis "Python implementation of the \"design by contract\"
6371methodology")
6372 (description "Zope.interface provides an implementation of \"object
6373interfaces\" for Python. Interfaces are a mechanism for labeling objects as
6374conforming to a given API or contract.")
3f641af0 6375 (license license:zpl2.1)))
97abe268
LF
6376
6377(define-public python2-zope-interface
6378 (package-with-python2 python-zope-interface))
81f2373c
LF
6379
6380(define-public python-zope-exceptions
6381 (package
6382 (name "python-zope-exceptions")
6383 (version "4.0.8")
6384 (source
6385 (origin
6386 (method url-fetch)
6387 (uri (string-append "https://pypi.python.org/packages/source/z"
6388 "/zope.exceptions/zope.exceptions-"
6389 version ".tar.gz"))
6390 (sha256
6391 (base32
6392 "0zwxaaa66sqxg5k7zcrvs0fbg9ym1njnxnr28dfmchzhwjvwnfzl"))))
6393 (build-system python-build-system)
6394 (arguments
6395 '(#:tests? #f)) ; circular dependency with zope.testrunner
6396 (propagated-inputs
6397 `(("python-zope-interface" ,python-zope-interface)))
6398 (home-page "http://cheeseshop.python.org/pypi/zope.exceptions")
6399 (synopsis "Zope exceptions")
6400 (description "Zope.exceptions provides general-purpose exception types
6401that have uses outside of the Zope framework.")
3f641af0 6402 (license license:zpl2.1)))
81f2373c
LF
6403
6404(define-public python2-zope-exceptions
6405 (package-with-python2 python-zope-exceptions))
900e3c0e
LF
6406
6407(define-public python-zope-testing
6408 (package
6409 (name "python-zope-testing")
6410 (version "4.5.0")
6411 (source
6412 (origin
6413 (method url-fetch)
6414 (uri (string-append "https://pypi.python.org/packages/source/z"
6415 "/zope.testing/zope.testing-" version ".tar.gz"))
6416 (sha256
6417 (base32
6418 "1yvglxhzvhl45mndvn9gskx2ph30zz1bz7rrlyfs62fv2pvih90s"))))
6419 (build-system python-build-system)
6420 (native-inputs
6421 `(("python-zope-exceptions" ,python-zope-exceptions)))
6422 (propagated-inputs
6423 `(("python-zope-interface" ,python-zope-interface)))
6424 (home-page "http://pypi.python.org/pypi/zope.testing")
6425 (synopsis "Zope testing helpers")
6426 (description "Zope.testing provides a number of testing utilities for HTML
6427forms, HTTP servers, regular expressions, and more.")
3f641af0 6428 (license license:zpl2.1)))
900e3c0e
LF
6429
6430(define-public python2-zope-testing
6431 (package-with-python2 python-zope-testing))
01614c4f
LF
6432
6433(define-public python-zope-testrunner
6434 (package
6435 (name "python-zope-testrunner")
6436 (version "4.4.9")
6437 (source
6438 (origin
6439 (method url-fetch)
6440 (uri (string-append "https://pypi.python.org/packages/source/z"
6441 "/zope.testrunner/zope.testrunner-"
6442 version ".zip"))
6443 (sha256
6444 (base32
6445 "1r7iqknhh55y45f64mz5hghgvzx34h1i11k350s0avx6q8gznja1"))))
6446 (build-system python-build-system)
6447 (native-inputs
6448 `(("python-six" ,python-six)
6449 ("python-zope-exceptions" ,python-zope-exceptions)
6450 ("python-zope-testing" ,python-zope-testing)
6451 ("unzip" ,unzip)))
6452 (propagated-inputs
6453 `(("python-zope-interface" ,python-zope-interface)))
6454 (home-page "http://pypi.python.org/pypi/zope.testrunner")
6455 (synopsis "Zope testrunner script")
6456 (description "Zope.testrunner provides a script for running Python
6457tests.")
3f641af0 6458 (license license:zpl2.1)))
01614c4f
LF
6459
6460(define-public python2-zope-testrunner
6461 (let ((base (package-with-python2 python-zope-testrunner)))
6462 (package
6463 (inherit base)
6464 (native-inputs
6465 (append (package-native-inputs base)
6466 `(("python2-subunit" ,python2-subunit)
6467 ("python2-mimeparse" ,python2-mimeparse)))))))
6a5c710c
LF
6468
6469(define-public python-zope-i18nmessageid
6470 (package
6471 (name "python-zope-i18nmessageid")
6472 (version "4.0.3")
6473 (source
6474 (origin
6475 (method url-fetch)
6476 (uri (string-append
6477 "https://pypi.python.org/packages/source/z"
6478 "/zope.i18nmessageid/zope.i18nmessageid-"
6479 version ".tar.gz"))
6480 (sha256
6481 (base32
6482 "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml"))))
6483 (build-system python-build-system)
6484 (inputs
6485 `(("python-setuptools" ,python-setuptools)))
6486 (home-page "http://pypi.python.org/pypi/zope.i18nmessageid")
6487 (synopsis "Message identifiers for internationalization")
6488 (description "Zope.i18nmessageid provides facilities for declaring
6489internationalized messages within program source text.")
3f641af0 6490 (license license:zpl2.1)))
6a5c710c
LF
6491
6492(define-public python2-zope-i18nmessageid
6493 (package-with-python2 python-zope-i18nmessageid))
71fb09f3
LF
6494
6495(define-public python-zope-schema
6496 (package
6497 (name "python-zope-schema")
6498 (version "4.4.2")
6499 (source
6500 (origin
6501 (method url-fetch)
6502 (uri (string-append "https://pypi.python.org/packages/source/z"
6503 "/zope.schema/zope.schema-" version ".tar.gz"))
6504 (sha256
6505 (base32
6506 "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank"))))
6507 (build-system python-build-system)
6508 (propagated-inputs
6509 `(("python-zope-event" ,python-zope-event)
6510 ("python-zope-interface" ,python-zope-interface)))
6511 (native-inputs
6512 `(("python-zope-testing" ,python-zope-testing)))
6513 (home-page "http://pypi.python.org/pypi/zope.schema")
6514 (synopsis "Zope data schemas")
6515 (description "Zope.scheme provides extensions to zope.interface for
6516defining data schemas.")
3f641af0 6517 (license license:zpl2.1)))
71fb09f3
LF
6518
6519(define-public python2-zope-schema
6520 (package-with-python2 python-zope-schema))
fbac9b17
LF
6521
6522(define-public python-zope-configuration
6523 (package
6524 (name "python-zope-configuration")
6525 (version "4.0.3")
6526 (source (origin
6527 (method url-fetch)
6528 (uri (string-append "https://pypi.python.org/packages/source/z"
6529 "/zope.configuration/zope.configuration-"
6530 version ".tar.gz"))
6531 (sha256
6532 (base32
6533 "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n"))))
6534 (build-system python-build-system)
6535 (propagated-inputs
6536 `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
6537 ("python-zope-schema" ,python-zope-schema)))
6538 (home-page "http://pypi.python.org/pypi/zope.configuration")
6539 (synopsis "Zope Configuration Markup Language")
6540 (description "Zope.configuration implements ZCML, the Zope Configuration
6541Markup Language.")
3f641af0 6542 (license license:zpl2.1)))
fbac9b17
LF
6543
6544(define-public python2-zope-configuration
6545 (package-with-python2 python-zope-configuration))
2ad52086
LF
6546
6547(define-public python-zope-proxy
6548 (package
6549 (name "python-zope-proxy")
6550 (version "4.1.6")
6551 (source
6552 (origin
6553 (method url-fetch)
6554 (uri (string-append "https://pypi.python.org/packages/source/z"
6555 "/zope.proxy/zope.proxy-" version ".tar.gz"))
6556 (sha256
6557 (base32
6558 "0pqwwmvm1prhwv1ziv9lp8iirz7xkwb6n2kyj36p2h0ppyyhjnm4"))))
6559 (build-system python-build-system)
6560 (propagated-inputs
6561 `(("python-zope-interface" ,python-zope-interface)))
6562 (home-page "http://pypi.python.org/pypi/zope.proxy")
6563 (synopsis "Generic, transparent proxies")
6564 (description "Zope.proxy provides generic, transparent proxies for Python.
6565Proxies are special objects which serve as mostly-transparent wrappers around
6566another object, intervening in the apparent behavior of the wrapped object
6567only when necessary to apply the policy (e.g., access checking, location
6568brokering, etc.) for which the proxy is responsible.")
3f641af0 6569 (license license:zpl2.1)))
2ad52086
LF
6570
6571(define-public python2-zope-proxy
6572 (package-with-python2 python-zope-proxy))
f404b5ea
LF
6573
6574(define-public python-zope-location
6575 (package
6576 (name "python-zope-location")
6577 (version "4.0.3")
6578 (source
6579 (origin
6580 (method url-fetch)
6581 (uri (string-append "https://pypi.python.org/packages/source/z"
6582 "/zope.location/zope.location-" version ".tar.gz"))
6583 (sha256
6584 (base32
6585 "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74"))))
6586 (build-system python-build-system)
6587 (native-inputs
6588 `(("python-zope-proxy" ,python-zope-proxy)
6589 ("python-zope-schema" ,python-zope-schema)))
6590 (home-page "http://pypi.python.org/pypi/zope.location/")
6591 (synopsis "Zope location library")
6592 (description "Zope.location implements the concept of \"locations\" in
6593Zope3, which are are special objects that have a structural location.")
3f641af0 6594 (license license:zpl2.1)))
f404b5ea
LF
6595
6596(define-public python2-zope-location
6597 (package-with-python2 python-zope-location))
d4b77f36
LF
6598
6599(define-public python-zope-security
6600 (package
6601 (name "python-zope-security")
6602 (version "4.0.3")
6603 (source
6604 (origin
6605 (method url-fetch)
6606 (uri (string-append "https://pypi.python.org/packages/source/z"
6607 "/zope.security/zope.security-" version ".tar.gz"))
6608 (sha256
6609 (base32
6610 "14zmf684amc0x32kq05yxnhfqd1cmyhafkw05gn81rn90zjv6ssy"))))
6611 (build-system python-build-system)
6612 (propagated-inputs
6613 `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
6614 ("python-zope-component" ,python-zope-component)
6615 ("python-zope-location" ,python-zope-location)
6616 ("python-zope-proxy" ,python-zope-proxy)
6617 ("python-zope-schema" ,python-zope-schema)
6618 ("python-zope-testrunner" ,python-zope-testrunner)
6619 ("python-zope-testing" ,python-zope-testing)))
6620 (home-page "http://pypi.python.org/pypi/zope.security")
6621 (synopsis "Zope security framework")
6622 (description "Zope.security provides a generic mechanism to implement
6623security policies on Python objects.")
3f641af0 6624 (license license:zpl2.1)))
d4b77f36
LF
6625
6626(define-public python2-zope-security
04417662
EF
6627 (let ((zope-security (package-with-python2 python-zope-security)))
6628 (package (inherit zope-security)
6629 (propagated-inputs
6630 `(("python2-zope-testrunner" ,python2-zope-testrunner)
6631 ,@(alist-delete
6632 "python-zope-testrunner"
6633 (package-propagated-inputs zope-security)))))))
a6b61b27
LF
6634
6635(define-public python-zope-component
6636 (package
6637 (name "python-zope-component")
6638 (version "4.2.2")
6639 (source
6640 (origin
6641 (method url-fetch)
6642 (uri (string-append "https://pypi.python.org/packages/source/z"
6643 "/zope.component/zope.component-" version ".tar.gz"))
6644 (sha256
6645 (base32
6646 "06pqr8m5jv12xjyy5b59hh9anl61cxkzhw9mka33r3nxalmi2b18"))))
6647 (build-system python-build-system)
6648 (arguments
6649 ;; Skip tests due to circular dependency with python-zope-security.
6650 '(#:tests? #f))
6651 (native-inputs
6652 `(("python-zope-testing" ,python-zope-testing)))
6653 (propagated-inputs
6654 `(("python-zope-event" ,python-zope-event)
6655 ("python-zope-interface" ,python-zope-interface)
6656 ("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
6657 ("python-zope-configuration" ,python-zope-configuration)))
6658 (home-page "https://github.com/zopefoundation/zope.component")
6659 (synopsis "Zope Component Architecture")
6660 (description "Zope.component represents the core of the Zope Component
6661Architecture. Together with the zope.interface package, it provides
6662facilities for defining, registering and looking up components.")
3f641af0 6663 (license license:zpl2.1)))
a6b61b27
LF
6664
6665(define-public python2-zope-component
6666 (package-with-python2 python-zope-component))
3859ac12 6667
1ae44b80 6668(define-public python-pythondialog
b5f218be 6669 (package
1ae44b80 6670 (name "python-pythondialog")
42c4b246 6671 (version "3.4.0")
b5f218be
LF
6672 (source
6673 (origin
6674 (method url-fetch)
1ae44b80 6675 (uri (pypi-uri "pythondialog" version))
b5f218be
LF
6676 (sha256
6677 (base32
1ae44b80 6678 "1728ghsran47jczn9bhlnkvk5bvqmmbihabgif5h705b84r1272c"))))
b5f218be
LF
6679 (build-system python-build-system)
6680 (arguments
6681 `(#:phases
6682 (modify-phases %standard-phases
6683 (add-after 'unpack 'patch-path
6684 (lambda* (#:key inputs #:allow-other-keys)
6685 (let* ((dialog (assoc-ref inputs "dialog")))
6686 ;; Since this library really wants to grovel the search path, we
6687 ;; must hardcode dialog's store path into it.
6688 (substitute* "dialog.py"
6689 (("os.getenv\\(\"PATH\", \":/bin:/usr/bin\"\\)")
6690 (string-append "os.getenv(\"PATH\") + \":" dialog "/bin\"")))
6691 #t))))
b5f218be
LF
6692 #:tests? #f)) ; no test suite
6693 (propagated-inputs
6694 `(("dialog" ,dialog)))
6695 (home-page "http://pythondialog.sourceforge.net/")
6696 (synopsis "Python interface to the UNIX dialog utility")
6697 (description "A Python wrapper for the dialog utility. Its purpose is to
6698provide an easy to use, pythonic and comprehensive Python interface to dialog.
6699This allows one to make simple text-mode user interfaces on Unix-like systems")
3f641af0 6700 (license license:lgpl2.1)
1ae44b80
LF
6701 (properties `((python2-variant . ,(delay python2-pythondialog))))))
6702
6703(define-public python2-pythondialog
6704 (let ((base (package-with-python2 (strip-python2-variant python-pythondialog))))
6705 (package
6706 (inherit base)
6707 (version (package-version python-pythondialog))
6708 (source (origin
6709 (method url-fetch)
6710 (uri (pypi-uri "python2-pythondialog" version))
6711 (sha256
6712 (base32
6713 "0d8k7lxk50imdyx85lv8j98i4c93a71iwpapnl1506rpkbm9qvd9")))))))
b5f218be 6714
3859ac12
LF
6715(define-public python-pyrfc3339
6716 (package
6717 (name "python-pyrfc3339")
d9aa097b 6718 (version "1.0")
3859ac12
LF
6719 (source
6720 (origin
6721 (method url-fetch)
d9aa097b 6722 (uri (pypi-uri "pyRFC3339" version))
3859ac12
LF
6723 (sha256
6724 (base32
d9aa097b 6725 "0dgm4l9y8jiax5cp6yxjd2i27cq8h33sh81n1wfbmnmqb32cdywd"))))
3859ac12
LF
6726 (build-system python-build-system)
6727 (propagated-inputs
6728 `(("python-pytz" ,python-pytz)))
6729 (native-inputs
6730 `(("python-nose" ,python-nose)
6731 ("python-setuptools" ,python-setuptools)))
6732 (home-page "https://github.com/kurtraschke/pyRFC3339")
6733 (synopsis "Python timestamp library")
6734 (description "Python library for generating and parsing RFC 3339-compliant
6735timestamps.")
6736 (license license:expat)))
6737
6738(define-public python2-pyrfc3339
6739 (package-with-python2 python-pyrfc3339))
5eea2005
LF
6740
6741(define-public python-werkzeug
6742 (package
6743 (name "python-werkzeug")
4b47cbfa 6744 (version "0.11.5")
5eea2005
LF
6745 (source
6746 (origin
6747 (method url-fetch)
4b47cbfa 6748 (uri (pypi-uri "Werkzeug" version))
5eea2005
LF
6749 (sha256
6750 (base32
4b47cbfa 6751 "0r41xqp4cypzcgsf6zbspbqd272wnzf20igb4w4b5wzfhgqh9nxg"))))
5eea2005
LF
6752 (build-system python-build-system)
6753 (native-inputs
6754 `(("python-pytest" ,python-pytest)))
6755 (home-page "http://werkzeug.pocoo.org/")
6756 (synopsis "Utilities for WSGI applications")
6757 (description "One of the most advanced WSGI utility modules. It includes a
6758powerful debugger, full-featured request and response objects, HTTP utilities to
6759handle entity tags, cache control headers, HTTP dates, cookie handling, file
6760uploads, a powerful URL routing system and a bunch of community-contributed
6761addon modules.")
3f641af0 6762 (license license:x11)))
5eea2005
LF
6763
6764(define-public python2-werkzeug
6765 (package-with-python2 python-werkzeug))
99fffa8a
LF
6766
6767(define-public python-configobj
6768 (package
6769 (name "python-configobj")
6770 (version "5.0.6")
6771 (source (origin
6772 (method url-fetch)
6773 (uri (string-append
6774 "https://pypi.python.org/packages/source/c/configobj/"
6775 "configobj-" version ".tar.gz"))
6776 (sha256
6777 (base32
6778 "00h9rcmws03xvdlfni11yb60bz3kxfvsj6dg6nrpzj71f03nbxd2"))
6779 ;; Patch setup.py so it looks for python-setuptools, which is
6780 ;; required to parse the keyword 'install_requires' in setup.py.
fc1adab1 6781 (patches (search-patches "python-configobj-setuptools.patch"))))
99fffa8a
LF
6782 (build-system python-build-system)
6783 (native-inputs
6784 `(("python-setuptools" ,python-setuptools)
6785 ("python-six" ,python-six)))
6786 (synopsis "Config file reading, writing and validation")
6787 (description "ConfigObj is a simple but powerful config file reader and
6788writer: an ini file round tripper. Its main feature is that it is very easy to
6789use, with a straightforward programmer’s interface and a simple syntax for
6790config files.")
6791 (home-page "https://github.com/DiffSK/configobj")
3f641af0 6792 (license license:bsd-3)))
99fffa8a
LF
6793
6794(define-public python2-configobj
6795 (package-with-python2 python-configobj))
79e8a291
LF
6796
6797(define-public python-configargparse
6798 (package
6799 (name "python-configargparse")
6800 (version "0.10.0")
6801 (source (origin
6802 (method url-fetch)
6803 (uri (string-append
6804 "https://pypi.python.org/packages/source/C/ConfigArgParse/"
6805 "ConfigArgParse-" version ".tar.gz"))
6806 (sha256
6807 (base32
6808 "19wh919gbdbzxzpagg52q3lm62yicm95ddlcx77dyjc1slyshl1v"))))
6809 (build-system python-build-system)
6810 (arguments
6811 ;; FIXME: Bug in test suite filed upstream:
6812 ;; https://github.com/bw2/ConfigArgParse/issues/32
6813 '(#:tests? #f))
6814 (synopsis "Replacement for argparse")
6815 (description "A drop-in replacement for argparse that allows options to also
6816be set via config files and/or environment variables.")
6817 (home-page "https://github.com/bw2/ConfigArgParse")
6818 (license license:expat)))
6819
6820(define-public python2-configargparse
6821 (package-with-python2 python-configargparse))
ab41f979
LF
6822
6823(define-public python-ndg-httpsclient
6824 (package
6825 (name "python-ndg-httpsclient")
6826 (version "0.4.0")
6827 (source (origin
6828 (method url-fetch)
6829 (uri (string-append
6830 "https://pypi.python.org/packages/source/n/ndg-httpsclient/"
6831 "ndg_httpsclient-" version ".tar.gz"))
6832 (sha256
6833 (base32
6834 "0x32ibixm3vv5m9xfk83xsqm8xcqw4dd0khbh6qbri6rxgymbhg8"))))
6835 (build-system python-build-system)
6836 (propagated-inputs
6837 `(("python-pyopenssl" ,python-pyopenssl)))
6838 (synopsis "HTTPS support for Python's httplib and urllib2")
6839 (description "This is a HTTPS client implementation for httplib and urllib2
6840based on PyOpenSSL. PyOpenSSL provides a more fully featured SSL implementation
6841over the default provided with Python and importantly enables full verification
6842of the SSL peer.")
6843 (home-page "https://github.com/cedadev/ndg_httpsclient/")
3f641af0 6844 (license license:bsd-3)))
ab41f979
LF
6845
6846;; python2-openssl requires special care, so package-with-python2 is
6847;; insufficient.
6848(define-public python2-ndg-httpsclient
6849 (package (inherit python-ndg-httpsclient)
6850 (name "python2-ndg-httpsclient")
6851 (arguments `(#:python ,python-2))
6852 (propagated-inputs
6853 `(("python2-pyopenssl" ,python2-pyopenssl)))))
03f964a5
CM
6854
6855(define-public python-contextlib2
6856 (package
6857 (name "python-contextlib2")
6858 (version "0.4.0")
6859 (source
6860 (origin
6861 (method url-fetch)
6862 (uri (pypi-uri "contextlib2" version))
6863 (sha256
6864 (base32
6865 "0cmp131dlh0d0zvw0aza1zd13glvngzk8lb4avks0hm7yxwdr9am"))))
6866 (build-system python-build-system)
6867 (arguments
6868 `(#:phases
6869 (modify-phases %standard-phases
6870 (replace 'check
6871 (lambda _ (zero?
6872 (system*
b3546174 6873 "python" "test_contextlib2.py" "-v")))))))
03f964a5
CM
6874 (home-page "http://contextlib2.readthedocs.org/")
6875 (synopsis "Tools for decorators and context managers")
6876 (description "This module is primarily a backport of the Python
68773.2 contextlib to earlier Python versions. Like contextlib, it
6878provides utilities for common tasks involving decorators and context
6879managers. It also contains additional features that are not part of
6880the standard library.")
3f641af0 6881 (license license:psfl)))
03f964a5
CM
6882
6883(define-public python2-contextlib2
6884 (package-with-python2 python-contextlib2))
210bf497
DT
6885
6886(define-public python-texttable
6887 (package
6888 (name "python-texttable")
6889 (version "0.8.4")
6890 (source
6891 (origin
6892 (method url-fetch)
6893 (uri (pypi-uri "texttable" version))
6894 (sha256
6895 (base32
6896 "0bkhs4dx9s6g7fpb969hygq56hyz4ncfamlynw72s0n6nqfbd1w5"))))
6897 (build-system python-build-system)
6898 (arguments '(#:tests? #f)) ; no tests
6899 (home-page "https://github.com/foutaise/texttable/")
6900 (synopsis "Python module for creating simple ASCII tables")
6901 (description "Texttable is a Python module for creating simple ASCII
6902tables.")
3f641af0 6903 (license license:lgpl2.1+)))
210bf497
DT
6904
6905(define-public python2-texttable
6906 (package-with-python2 python-texttable))
67c52bb3
DT
6907
6908(define-public python-websocket-client
6909 (package
6910 (name "python-websocket-client")
6b810897 6911 (version "0.37.0")
67c52bb3
DT
6912 (source
6913 (origin
6914 (method url-fetch)
6b810897 6915 (uri (pypi-uri "websocket_client" version))
67c52bb3
DT
6916 (sha256
6917 (base32
6b810897 6918 "0h9glp1jll3z76ly3kg08aqgxqk0a68p4zi9yn50353bh5nj92v7"))))
67c52bb3
DT
6919 (build-system python-build-system)
6920 (native-inputs
6921 `(("python-six" ,python-six))) ; for tests
6922 (inputs
6923 `(("python-setuptools" ,python-setuptools)))
6924 (home-page "https://github.com/liris/websocket-client")
6925 (synopsis "WebSocket client for Python")
6926 (description "The Websocket-client module provides the low level APIs for
6927WebSocket usage in Python programs.")
3f641af0 6928 (license license:lgpl2.1+)))
67c52bb3
DT
6929
6930(define-public python2-websocket-client
6931 (package-with-python2 python-websocket-client))
5c6eea2a
LF
6932
6933(define-public python-atomicwrites
6934 (package
6935 (name "python-atomicwrites")
4e92d76a 6936 (version "1.1.0")
5c6eea2a
LF
6937 (source (origin
6938 (method url-fetch)
6939 (uri (pypi-uri "atomicwrites" version))
6940 (sha256
6941 (base32
4e92d76a 6942 "1s01dci8arsl9d9vr5nz1fk9znldp1z3l4yl43f0c27z12b8yxl0"))))
5c6eea2a
LF
6943 (build-system python-build-system)
6944 (synopsis "Atomic file writes in Python")
6945 (description "Library for atomic file writes using platform dependent tools
6946for atomic filesystem operations.")
6947 (home-page "https://github.com/untitaker/python-atomicwrites")
9bb6d184
LF
6948 (license license:expat)
6949 (properties `((python2-variant . ,(delay python2-atomicwrites))))))
6950
6951(define-public python2-atomicwrites
6952 (package (inherit (package-with-python2
6953 (strip-python2-variant python-atomicwrites)))
6954 (native-inputs
6955 `(("python2-setuptools" ,python2-setuptools)))))
561bb3cb
LF
6956
6957(define-public python-requests-toolbelt
6958 (package
6959 (name "python-requests-toolbelt")
c02af1c8 6960 (version "0.6.2")
561bb3cb
LF
6961 (source (origin
6962 (method url-fetch)
c02af1c8
LF
6963 (uri (string-append
6964 "https://pypi.python.org/packages/"
6965 "e1/a4/a94c037bc72ad70441aff1403d3243510d2542ddca7759faaeffeb11aefe/"
6966 "requests-toolbelt-" version ".tar.gz"))
561bb3cb
LF
6967 (sha256
6968 (base32
c02af1c8 6969 "15q9nrgp85nqlr4kdz1zvj8z2npafi2sr12y7fqgxbkq28j1aci6"))))
561bb3cb
LF
6970 (build-system python-build-system)
6971 (propagated-inputs
6972 `(("python-requests" ,python-requests)))
6973 (synopsis "Extensions to python-requests")
6974 (description "This is a toolbelt of useful classes and functions to be used
6975with python-requests.")
6976 (home-page "https://github.com/sigmavirus24/requests-toolbelt")
3f641af0 6977 (license license:asl2.0)))
d1deb90b
LF
6978
6979(define-public python-click-threading
6980 (package
6981 (name "python-click-threading")
3d2e0dbc 6982 (version "0.2.0")
d1deb90b
LF
6983 (source (origin
6984 (method url-fetch)
3d2e0dbc
LF
6985 (uri (string-append
6986 "https://pypi.python.org/packages/"
6987 "fe/b7/e7f609d18a2a351cb71616adcf54df1acd82f83cb9b5936935a4d20e2c23/"
6988 "click-threading-" version ".tar.gz"))
d1deb90b
LF
6989 (sha256
6990 (base32
3d2e0dbc 6991 "18bcqikxwb3drb8rf60cclxkxw52521b38ax3byah6j8cn8y9p4j"))))
d1deb90b
LF
6992 (build-system python-build-system)
6993 (propagated-inputs
6994 `(("python-click" ,python-click)))
6995 (synopsis "Utilities for multithreading in Click")
6996 (description "This package provides utilities for multithreading in Click
6997applications.")
6998 (home-page "https://github.com/click-contrib/click-threading")
6999 (license license:expat)))
7b17cab9
LF
7000
7001(define-public python-click-log
7002 (package
7003 (name "python-click-log")
a9da8fec 7004 (version "0.1.3")
7b17cab9
LF
7005 (source (origin
7006 (method url-fetch)
7007 (uri (pypi-uri "click-log" version))
7008 (sha256
7009 (base32
a9da8fec 7010 "0kdd1vminxpcfczxl2kkf285n0dr1gxh2cdbx1p6vkj7b7bci3gx"))))
7b17cab9
LF
7011 (build-system python-build-system)
7012 (propagated-inputs
7013 `(("python-click" ,python-click)))
7014 (synopsis "Logging for click applications")
7015 (description "This package provides a Python library for logging Click
7016applications.")
7017 (home-page "https://github.com/click-contrib/click-log")
7018 (license license:expat)))
7b3a4ee4
LF
7019
7020(define-public python-apipkg
7021 (package
7022 (name "python-apipkg")
7023 (version "1.4")
7024 (source (origin
7025 (method url-fetch)
7026 (uri (pypi-uri "apipkg" version))
7027 (sha256
7028 (base32
7029 "1iks5701qnp3dlr3q1d9qm68y2plp2m029irhpz92a44psfkjf1f"))))
7030 (build-system python-build-system)
b43bab3c 7031 (inputs
7b3a4ee4
LF
7032 `(("python-pytest" ,python-pytest)))
7033 (synopsis "Namespace control and lazy-import mechanism")
7034 (description "With apipkg you can control the exported namespace of a Python
7035package and greatly reduce the number of imports for your users. It is a small
7036pure Python module that works on virtually all Python versions.")
7037 (home-page "https://bitbucket.org/hpk42/apipkg")
e08739c3
CAW
7038 (license license:expat)
7039 (properties `((python2-variant . ,(delay python2-apipkg))))))
7040
7041(define-public python2-apipkg
7042 (package
7043 (inherit (package-with-python2
7044 (strip-python2-variant python-apipkg)))
7045 (native-inputs
7046 `(("python2-setuptools" ,python2-setuptools)))))
848964fe
LF
7047
7048(define-public python-execnet
7049 (package
7050 (name "python-execnet")
7051 (version "1.4.1")
7052 (source (origin
7053 (method url-fetch)
7054 (uri (pypi-uri "execnet" version))
7055 (sha256
7056 (base32
7057 "1rpk1vyclhg911p3hql0m0nrpq7q7mysxnaaw6vs29cpa6kx8vgn"))))
7058 (build-system python-build-system)
7059 (native-inputs
7060 `(("python-setuptools-scm" ,python-setuptools-scm)))
584d068f 7061 (inputs
848964fe
LF
7062 `(("python-apipkg" ,python-apipkg)))
7063 (synopsis "Rapid multi-Python deployment")
7064 (description "Execnet provides a share-nothing model with
7065channel-send/receive communication for distributing execution across many
7066Python interpreters across version, platform and network barriers. It has a
7067minimal and fast API targetting the following uses:
7068@enumerate
7069@item distribute tasks to (many) local or remote CPUs
7070@item write and deploy hybrid multi-process applications
7071@item write scripts to administer multiple environments
7072@end enumerate")
7073 (home-page "http://codespeak.net/execnet/")
16c84f90
CAW
7074 (license license:expat)
7075 (properties `((python2-variant . ,(delay python2-execnet))))))
7076
7077(define-public python2-execnet
7078 (let ((execnet (package-with-python2
7079 (strip-python2-variant python-execnet))))
7080 (package
7081 (inherit execnet)
7082 (native-inputs
7083 `(("python2-setuptools" ,python2-setuptools)
7084 ,@(package-native-inputs execnet))))))
6720dbb4
LF
7085
7086;;; The software provided by this package was integrated into pytest 2.8.
7087(define-public python-pytest-cache
7088 (package
7089 (name "python-pytest-cache")
7090 (version "1.0")
7091 (source (origin
7092 (method url-fetch)
7093 (uri (pypi-uri "pytest-cache" version))
7094 (sha256
7095 (base32
7096 "1a873fihw4rhshc722j4h6j7g3nj7xpgsna9hhg3zn6ksknnhx5y"))))
7097 (build-system python-build-system)
630d938f
EF
7098 (inputs
7099 `(("python-apipkg" ,python-apipkg)
7100 ("python-execnet" ,python-execnet)
7101 ("python-py" ,python-py)
7102 ("python-pytest" ,python-pytest)))
6720dbb4
LF
7103 (synopsis "Py.test plugin with mechanisms for caching across test runs")
7104 (description "The pytest-cache plugin provides tools to rerun failures from
7105the last py.test invocation.")
7106 (home-page "https://bitbucket.org/hpk42/pytest-cache/")
0adc21c2
EF
7107 (license license:expat)
7108 (properties `((python2-variant . ,(delay python2-pytest-cache))))))
7109
7110(define-public python2-pytest-cache
7111 (let ((pytest-cache (package-with-python2
7112 (strip-python2-variant python-pytest-cache))))
7113 (package
7114 (inherit pytest-cache)
7115 (native-inputs
7116 `(("python2-setuptools" ,python2-setuptools)
7117 ,@(package-native-inputs pytest-cache))))))
d7e729fe
LF
7118
7119(define-public python-pytest-localserver
7120 (package
7121 (name "python-pytest-localserver")
29f20168 7122 (version "0.3.5")
d7e729fe
LF
7123 (source (origin
7124 (method url-fetch)
29f20168 7125 (uri (pypi-uri "pytest-localserver" version))
d7e729fe
LF
7126 (sha256
7127 (base32
29f20168 7128 "0dvqspjr6va55zwmnnc2mmpqc7mm65kxig9ya44x1z8aadzxpa4p"))))
d7e729fe
LF
7129 (build-system python-build-system)
7130 (arguments
7131 `(#:phases (modify-phases %standard-phases
7132 (replace 'check
7133 (lambda _
7134 (zero? (system* "py.test" "--genscript=runtests.py"))
7135 (zero? (system* "py.test")))))))
7136 (native-inputs
d7e729fe
LF
7137 `(("python-pytest" ,python-pytest)
7138 ("python-requests" ,python-requests)
9ba40f05
EF
7139 ("python-six" ,python-six)))
7140 (inputs
7141 `(("python-werkzeug" ,python-werkzeug)))
d7e729fe
LF
7142 (synopsis "Py.test plugin to test server connections locally")
7143 (description "Pytest-localserver is a plugin for the pytest testing
7144framework which enables you to test server connections locally.")
7145 (home-page "https://pypi.python.org/pypi/pytest-localserver")
7146 (license license:expat)))
28cecbb7
LF
7147
7148(define-public python-wsgi-intercept
7149 (package
7150 (name "python-wsgi-intercept")
909fbd2b 7151 (version "1.2.2")
28cecbb7
LF
7152 (source (origin
7153 (method url-fetch)
909fbd2b
LF
7154 (uri (string-append
7155 "https://pypi.python.org/packages/"
7156 "38/76/ebcbc24d0cb77db34520a3ca6ed1bd43ace17d182bbd8dd7d976f1c176fb/"
7157 "wsgi_intercept-" version ".tar.gz"))
28cecbb7
LF
7158 (sha256
7159 (base32
909fbd2b 7160 "0kjj2v2dvmnpdd5h5gk9rzz0f54rhjb0yiz3zg65bmp65slfw65d"))))
28cecbb7
LF
7161 (build-system python-build-system)
7162 (native-inputs
9d813ec1
EF
7163 `(("python-pytest" ,python-pytest)
7164 ("python-six" ,python-six)))
28cecbb7
LF
7165 (propagated-inputs
7166 `(("python-httplib2" ,python-httplib2)
7167 ("python-requests" ,python-requests)))
7168 (synopsis "Puts a WSGI application in place of a real URI for testing")
7169 (description "Wsgi_intercept installs a WSGI application in place of a real
7170URI for testing. Testing a WSGI application normally involves starting a
7171server at a local host and port, then pointing your test code to that address.
7172Instead, this library lets you intercept calls to any specific host/port
7173combination and redirect them into a WSGI application importable by your test
7174program. Thus, you can avoid spawning multiple processes or threads to test
7175your Web app.")
7176 (home-page "https://github.com/cdent/wsgi-intercept")
7177 (license license:expat)))
89b8a551
LF
7178
7179(define-public python-pytest-xprocess
7180 (package
7181 (name "python-pytest-xprocess")
7182 (version "0.9.1")
7183 (source (origin
7184 (method url-fetch)
7185 (uri (pypi-uri "pytest-xprocess" version))
7186 (sha256
7187 (base32
7188 "17zlql1xqw3ywcgwwbqmw633aly99lab12hm02asr8awvg5603pp"))))
7189 (build-system python-build-system)
7190 (propagated-inputs
7191 `(("python-pytest" ,python-pytest)
7192 ("python-pytest-cache" ,python-pytest-cache)
7193 ("python-psutil" ,python-psutil)))
7194 (synopsis "Pytest plugin to manage external processes across test runs")
7195 (description "Pytest-xprocess is an experimental py.test plugin for managing
7196processes across test runs.")
7197 (home-page "https://bitbucket.org/pytest-dev/pytest-xprocess")
7198 (license license:expat)))
5c299bf0
LF
7199
7200(define-public python-icalendar
7201 (package
7202 (name "python-icalendar")
f2f53353 7203 (version "3.10")
5c299bf0
LF
7204 (source (origin
7205 (method url-fetch)
7206 (uri (pypi-uri "icalendar" version))
7207 (sha256
7208 (base32
f2f53353 7209 "01amnk3621s7fagfla86npd25knbqirchg7h1jpqxqp103d02bs7"))))
5c299bf0
LF
7210 (build-system python-build-system)
7211 (propagated-inputs
7212 `(("python-dateutil-2" ,python-dateutil-2)
7213 ("python-pytz" ,python-pytz)))
7214 (synopsis "Python library for parsing iCalendar files")
7215 (description "The icalendar package is a parser/generator of iCalendar
7216files for use with Python.")
7217 (home-page "https://github.com/collective/icalendar")
3f641af0 7218 (license license:bsd-2)))
6bbbb53e
LF
7219
7220(define-public python-sphinxcontrib-newsfeed
7221 (package
7222 (name "python-sphinxcontrib-newsfeed")
7223 (version "0.1.4")
7224 (source (origin
7225 (method url-fetch)
7226 (uri (pypi-uri "sphinxcontrib-newsfeed" version))
7227 (sha256
7228 (base32
7229 "1d7gam3mn8v4in4p16yn3v10vps7nnaz6ilw99j4klij39dqd37p"))))
7230 (build-system python-build-system)
7231 (propagated-inputs
7232 `(("python-docutils" ,python-docutils)
7233 ("python-sphinx" ,python-sphinx)))
7234 (synopsis "News Feed extension for Sphinx")
7235 (description "Sphinxcontrib-newsfeed is an extension for adding a simple
7236Blog, News or Announcements section to a Sphinx website.")
7237 (home-page "https://bitbucket.org/prometheus/sphinxcontrib-newsfeed")
3f641af0 7238 (license license:bsd-2)))
2216e15c
SB
7239
7240(define-public python-args
7241 (package
7242 (name "python-args")
7243 (version "0.1.0")
7244 (source (origin
7245 (method url-fetch)
7246 (uri (pypi-uri "args" version))
7247 (sha256
7248 (base32
7249 "057qzi46h5dmxdqknsbrssn78lmqjlnm624iqdhrnpk26zcbi1d7"))))
7250 (build-system python-build-system)
7251 (inputs
7252 `(("python-setuptools" ,python-setuptools)))
7253 (home-page "https://github.com/kennethreitz/args")
7254 (synopsis "Command-line argument parser")
7255 (description
7256 "This library provides a Python module to parse command-line arguments.")
3f641af0 7257 (license license:bsd-3)))
2216e15c
SB
7258
7259(define-public python2-args
7260 (package-with-python2 python-args))
c06a3de9
SB
7261
7262(define-public python-clint
7263 (package
7264 (name "python-clint")
7265 (version "0.5.1")
7266 (source (origin
7267 (method url-fetch)
7268 (uri (pypi-uri "clint" version))
7269 (sha256
7270 (base32
7271 "1an5lkkqk1zha47198p42ji3m94xmzx1a03dn7866m87n4r4q8h5"))))
7272 (build-system python-build-system)
7273 (inputs
7274 `(("python-args" ,python-args)
7275 ("python-setuptools" ,python-setuptools)))
7276 (home-page "https://github.com/kennethreitz/clint")
7277 (synopsis "Command-line interface tools")
7278 (description
7279 "Clint is a Python module filled with a set of tools for developing
7280command-line applications, including tools for colored and indented
7281output, progress bar display, and pipes.")
3f641af0 7282 (license license:isc)))
c06a3de9
SB
7283
7284(define-public python2-clint
7285 (package-with-python2 python-clint))
4ecdeef8
SB
7286
7287(define-public python-astor
7288 (package
7289 (name "python-astor")
7290 (version "0.5")
7291 (source (origin
7292 (method url-fetch)
7293 (uri (pypi-uri "astor" version))
7294 (sha256
7295 (base32
7296 "1fdafq5hkis1fxqlmhw0sn44zp2ar46nxhbc22cvwg7hsd8z5gsa"))))
7297 (build-system python-build-system)
7298 (inputs
7299 `(("python-setuptools" ,python-setuptools)))
7300 (home-page "https://github.com/berkerpeksag/astor")
7301 (synopsis "Read and write Python ASTs")
7302 (description
7303 "Astor is designed to allow easy manipulation of Python source via the
7304Abstract Syntax Tree.")
3f641af0 7305 (license license:bsd-3)))
4ecdeef8
SB
7306
7307(define-public python2-astor
7308 (package-with-python2 python-astor))
e224b7d0
SB
7309
7310(define-public python-rply
7311 (package
7312 (name "python-rply")
7313 (version "0.7.4")
7314 (source (origin
7315 (method url-fetch)
7316 (uri (pypi-uri "rply" version))
7317 (sha256
7318 (base32
7319 "12rp1d9ba7nvd5rhaxi6xzx1rm67r1k1ylsrkzhpwnphqpb06cvj"))))
7320 (build-system python-build-system)
7321 (inputs
7322 `(("python-appdirs" ,python-appdirs)
7323 ("python-setuptools" ,python-setuptools)))
7324 (home-page "https://github.com/alex/rply")
7325 (synopsis "Parser generator for Python")
7326 (description
7327 "This package provides a pure Python based parser generator, that also
7328works with RPython. It is a more-or-less direct port of David Bazzley's PLY,
7329with a new public API, and RPython support.")
3f641af0 7330 (license license:bsd-3)))
e224b7d0
SB
7331
7332(define-public python2-rply
7333 (package-with-python2 python-rply))
c3e919d7
SB
7334
7335(define-public python-hy
7336 (package
7337 (name "python-hy")
7338 (version "0.11.1")
7339 (source (origin
7340 (method url-fetch)
7341 (uri (pypi-uri "hy" version))
7342 (sha256
7343 (base32
7344 "1msqv747iz12r73mz4qvsmlwkddwjvrahlrk7ysrcz07h7dsscxs"))))
7345 (build-system python-build-system)
7346 (inputs
7347 `(("python-astor" ,python-astor)
7348 ("python-clint" ,python-clint)
7349 ("python-rply" ,python-rply)
7350 ("python-setuptools" ,python-setuptools)))
7351 (home-page "http://hylang.org/")
7352 (synopsis "Lisp frontend to Python")
7353 (description
7354 "Hy is a dialect of Lisp that's embedded in Python. Since Hy transforms
7355its Lisp code into the Python Abstract Syntax Tree, you have the whole world of
7356Python at your fingertips, in Lisp form.")
7357 (license license:expat)))
7358
7359(define-public python2-hy
7360 (package-with-python2 python-hy))
7a5b944e 7361
81f7f297
EF
7362(define-public python-rauth
7363 (package
7364 (name "python-rauth")
7365 (version "0.7.2")
7366 (source
7367 (origin
7368 (method url-fetch)
7369 (uri (pypi-uri "rauth" version))
7370 (sha256
7371 (base32
7372 "00pq7zw429hhza9c0qzxiqp77m653jv09z92nralnmzwdf6pzicf"))))
7373 (build-system python-build-system)
7374 (arguments
7375 `(#:test-target "check"))
0848d8d3 7376 (inputs
81f7f297
EF
7377 `(("python-requests" ,python-requests)))
7378 (home-page "https://github.com/litl/rauth")
7379 (synopsis "Python library for OAuth 1.0/a, 2.0, and Ofly")
7380 (description
7381 "Rauth is a Python library for OAuth 1.0/a, 2.0, and Ofly. It also
7382provides service wrappers for convenient connection initialization and
7383authenticated session objects providing things like keep-alive.")
0848d8d3
EF
7384 (license license:expat)
7385 (properties `((python2-variant . ,(delay python2-rauth))))))
81f7f297
EF
7386
7387(define-public python2-rauth
0848d8d3
EF
7388 (let ((base (package-with-python2 (strip-python2-variant python-rauth))))
7389 (package
7390 (inherit base)
7391 (native-inputs `(("python2-setuptools" ,python2-setuptools)
7392 ("python2-unittest2" ,python2-unittest2)
7393 ,@(package-native-inputs base))))))
81f7f297 7394
1abe448d
EF
7395(define-public python2-functools32
7396 (package
7397 (name "python2-functools32")
7398 (version "3.2.3-2")
7399 (source
7400 (origin
7401 (method url-fetch)
7402 (uri (pypi-uri "functools32" version))
7403 (sha256
7404 (base32
7405 "0v8ya0b58x47wp216n1zamimv4iw57cxz3xxhzix52jkw3xks9gn"))))
7406 (build-system python-build-system)
7407 (arguments
7408 `(#:python ,python-2
7409 #:tests? #f)) ; no test target
7410 (native-inputs
7411 `(("python2-setuptools" ,python2-setuptools)))
7412 (home-page "https://github.com/MiCHiLU/python-functools32")
7413 (synopsis
7414 "Backport of the functools module from Python 3.2.3")
7415 (description
7416 "This package is a backport of the @code{functools} module from Python
74173.2.3 for use with older versions of Python and PyPy.")
7418 (license license:expat)))
7419
877889f3 7420(define-public python2-futures
7a5b944e 7421 (package
877889f3 7422 (name "python2-futures")
7a5b944e
EF
7423 (version "3.0.3")
7424 (source
7425 (origin
7426 (method url-fetch)
7427 (uri (pypi-uri "futures" version))
7428 (sha256
7429 (base32
7430 "1vcb34dqhzkhbq1957vdjszhhm5y3j9ba88dgwhqx2zynhmk9qig"))))
7431 (build-system python-build-system)
877889f3 7432 (arguments `(#:python ,python-2))
7a5b944e 7433 (native-inputs
877889f3 7434 `(("python2-setuptools" ,python2-setuptools)))
7a5b944e
EF
7435 (home-page "https://github.com/agronholm/pythonfutures")
7436 (synopsis
7437 "Backport of the concurrent.futures package from Python 3.2")
7438 (description
7439 "The concurrent.futures module provides a high-level interface for
7440asynchronously executing callables. This package backports the
7441concurrent.futures package from Python 3.2")
3f641af0 7442 (license license:bsd-3)))
7a5b944e 7443
c18f6368
EF
7444(define-public python-urllib3
7445 (package
7446 (name "python-urllib3")
7447 (version "1.13.1")
7448 (source
7449 (origin
7450 (method url-fetch)
7451 (uri (pypi-uri "urllib3" version))
7452 (sha256
7453 (base32
7454 "10rrbr6c6k7j5dvfsyj4b2gsgxg9gggnn708qixf6ll57xqivfkf"))))
7455 (build-system python-build-system)
7456 (arguments `(#:tests? #f))
7457 (native-inputs
7458 `(("python-setuptools" ,python-setuptools)
7459 ;; some packages for tests
7460 ("python-nose" ,python-nose)
7461 ("python-mock" ,python-mock)
7462 ("python-tornado" ,python-tornado)))
7463 (propagated-inputs
7464 `(;; packages for https security
7465 ("python-certifi" ,python-certifi)
7466 ("python-ndg-httpsclient" ,python-ndg-httpsclient)
7467 ("python-pyasn1" ,python-pyasn1)
7468 ("python-pyopenssl" ,python-pyopenssl)))
7469 (home-page "http://urllib3.readthedocs.org/")
7470 (synopsis "HTTP library with thread-safe connection pooling")
7471 (description
7472 "Urllib3 supports features left out of urllib and urllib2 libraries. It
7473can reuse the same socket connection for multiple requests, it can POST files,
7474supports url redirection and retries, and also gzip and deflate decoding.")
7475 (license license:expat)))
7476
7477(define-public python2-urllib3
7478 (package-with-python2 python-urllib3))
2b2f2fc1
DT
7479
7480(define-public python-colorama
7481 (package
7482 (name "python-colorama")
7483 (version "0.3.3")
7484 (source
7485 (origin
7486 (method url-fetch)
7487 (uri (pypi-uri "colorama" version))
7488 (sha256
7489 (base32
7490 "1716z9pq1r5ys3nkg7wdrb3h2f9rmd0zdxpxzmx3bgwgf6xg48gb"))))
7491 (build-system python-build-system)
7492 (inputs
7493 `(("python-setuptools" ,python-setuptools)))
7494 (synopsis "colored terminal text rendering for Python")
7495 (description "Colorama is a Python library for rendering colored terminal
7496text.")
7497 (home-page "https://pypi.python.org/pypi/colorama")
3f641af0 7498 (license license:bsd-3)))
2b2f2fc1
DT
7499
7500(define-public python2-colorama
7501 (package-with-python2 python-colorama))
f5bcec6e
DT
7502
7503(define-public python-rsa
7504 (package
7505 (name "python-rsa")
7506 (version "3.2")
7507 (source
7508 (origin
7509 (method url-fetch)
7510 (uri (pypi-uri "rsa" version))
7511 (sha256
7512 (base32
7513 "0xwp929g7lvb1sghxfpqlxvgg96qcwqdbhh27sjplx30n3xp3wrh"))))
7514 (build-system python-build-system)
7515 (inputs
7516 `(("python-pyasn1" ,python-pyasn1)
7517 ("python-setuptools" ,python-setuptools)))
7518 (synopsis "Pure-Python RSA implementation")
7519 (description "Python-RSA is a pure-Python RSA implementation. It supports
7520encryption and decryption, signing and verifying signatures, and key
7521generation according to PKCS#1 version 1.5. It can be used as a Python
7522library as well as on the command line.")
7523 (home-page "http://stuvel.eu/rsa")
3f641af0 7524 (license license:asl2.0)))
f5bcec6e
DT
7525
7526(define-public python2-rsa
7527 (package-with-python2 python-rsa))
c0aacfa5
DT
7528
7529(define-public python-pluggy
7530 (package
7531 (name "python-pluggy")
7532 (version "0.3.1")
7533 (source
7534 (origin
7535 (method url-fetch)
7536 (uri (pypi-uri "pluggy" version))
7537 (sha256
7538 (base32
7539 "18qfzfm40bgx672lkg8q9x5hdh76n7vax99aank7vh2nw21wg70m"))))
7540 (build-system python-build-system)
7541 (inputs
7542 `(("python-setuptools" ,python-setuptools)))
7543 (synopsis "Plugin and hook calling mechanism for Python")
7544 (description "Pluggy is an extraction of the plugin manager as used by
7545Pytest but stripped of Pytest specific details.")
7546 (home-page "https://pypi.python.org/pypi/pluggy")
7547 (license license:expat)))
7548
7549(define-public python2-pluggy
7550 (package-with-python2 python-pluggy))
a4af21ca
DT
7551
7552(define-public python-tox
7553 (package
7554 (name "python-tox")
7555 (version "2.3.1")
7556 (source
7557 (origin
7558 (method url-fetch)
7559 (uri (pypi-uri "tox" version))
7560 (sha256
7561 (base32
7562 "1vj73ar4rimq3fwy5r2z3jv4g9qbh8rmpmncsc00g0k310acqzxz"))))
7563 (build-system python-build-system)
7564 (arguments
7565 ;; FIXME: Tests require a newer version of pytest, but upgrading our
7566 ;; pytest breaks other packages.
7567 '(#:tests? #f))
7568 (inputs
7569 `(("python-setuptools" ,python-setuptools)
7570 ("python-pluggy" ,python-pluggy)
7571 ("python-py" ,python-py)
7572 ("python-virtualenv" ,python-virtualenv)
7573 ("python-pytest" ,python-pytest)))
7574 (home-page "http://tox.testrun.org/")
7575 (synopsis "Virtualenv-based automation of test activities")
7576 (description "Tox is a generic virtualenv management and test command line
7577tool. It can be used to check that a package installs correctly with
7578different Python versions and interpreters, or run tests in each type of
7579supported environment, or act as a frontend to continuous integration
7580servers.")
7581 (license license:expat)))
7582
7583(define-public python2-tox
7584 (package-with-python2 python-tox))
ba9da248
DT
7585
7586(define-public python-jmespath
7587 (package
7588 (name "python-jmespath")
7589 (version "0.9.0")
7590 (source
7591 (origin
7592 (method url-fetch)
7593 (uri (pypi-uri "jmespath" version))
7594 (sha256
7595 (base32
7596 "0g9xvl69y7nr3w7ag4fsp6sm4fqf6vrqjw7504x2hzrrsh3ampq8"))))
7597 (build-system python-build-system)
7598 (inputs
7599 `(("python-setuptools" ,python-setuptools)))
7600 (synopsis "JSON Matching Expressions")
7601 (description "JMESPath (pronounced “james path”) is a Python library that
7602allows one to declaratively specify how to extract elements from a JSON
7603document.")
7604 (home-page "https://github.com/jmespath/jmespath.py")
7605 (license license:expat)))
7606
7607(define-public python2-jmespath
7608 (package-with-python2 python-jmespath))
935fcd5c
DT
7609
7610(define-public python-botocore
7611 (package
7612 (name "python-botocore")
7613 (version "1.3.17")
7614 (source
7615 (origin
7616 (method url-fetch)
7617 (uri (pypi-uri "botocore" version))
7618 (sha256
7619 (base32
7620 "08vpvdixx1c1lfv6vzjig68bpiir7wfyhzf49ysxgvhbprg5ra0w"))))
7621 (build-system python-build-system)
7622 (inputs
7623 `(("python-dateutil" ,python-dateutil-2)
7624 ("python-docutils" ,python-docutils)
7625 ("python-mock" ,python-mock)
7626 ("python-nose" ,python-nose)
7627 ("python-setuptools" ,python-setuptools)
7628 ("python-tox" ,python-tox)
7629 ("python-wheel" ,python-wheel)
7630 ("python-jmespath" ,python-jmespath)))
7631 (home-page "https://github.com/boto/botocore")
7632 (synopsis "Low-level interface to AWS")
7633 (description "Botocore is a Python library that provides a low-level
7634interface to the Amazon Web Services (AWS) API.")
3f641af0 7635 (license license:asl2.0)))
935fcd5c
DT
7636
7637(define-public python2-botocore
7638 (package-with-python2 python-botocore))
f861b8b8
DT
7639
7640(define-public awscli
7641 (package
7642 (name "awscli")
7643 (version "1.9.17")
7644 (source
7645 (origin
7646 (method url-fetch)
7647 (uri (string-append
7648 "https://pypi.python.org/packages/source/a/awscli/awscli-"
7649 version ".tar.gz"))
7650 (sha256
7651 (base32
7652 "1nj7jqvlpq57hfhby1njsbf8303gapa3njc4dramr6p3ffzvfi2i"))))
7653 (build-system python-build-system)
7654 (inputs
7655 `(("python-colorama" ,python-colorama)
7656 ("python-docutils" ,python-docutils)
7657 ("python-mock" ,python-mock)
7658 ("python-nose" ,python-nose)
7659 ("python-rsa" ,python-rsa)
7660 ("python-setuptools" ,python-setuptools)
7661 ("python-sphinx" ,python-sphinx)
7662 ("python-tox" ,python-tox)
7663 ("python-wheel" ,python-wheel)
7664 ("python-botocore" ,python-botocore)))
7665 (home-page "http://aws.amazon.com/cli/")
7666 (synopsis "Command line client for AWS")
7667 (description "AWS CLI provides a unified command line interface to the
7668Amazon Web Services (AWS) API.")
3f641af0 7669 (license license:asl2.0)))
6a44697d
LF
7670
7671(define-public python-hypothesis
7672 (package
7673 (name "python-hypothesis")
bea6d94d 7674 (version "3.1.0")
6a44697d
LF
7675 (source (origin
7676 (method url-fetch)
7677 (uri (pypi-uri "hypothesis" version))
7678 (sha256
7679 (base32
bea6d94d 7680 "0qyqq9akm4vshhn8cngjc1qykcvsn7cz6dlm6njfsgpbraqrmbbw"))))
6a44697d 7681 (build-system python-build-system)
6a44697d
LF
7682 (propagated-inputs
7683 `(("python-flake8" ,python-flake8)
7684 ("python-pytest" ,python-pytest)))
7685 (synopsis "Library for property based testing")
7686 (description "Hypothesis is a library for testing your Python code against a
7687much larger range of examples than you would ever want to write by hand. It’s
7688based on the Haskell library, Quickcheck, and is designed to integrate
7689seamlessly into your existing Python unit testing work flow.")
7690 (home-page "https://github.com/DRMacIver/hypothesis")
3f641af0 7691 (license license:mpl2.0)
6f068e08 7692 (properties `((python2-variant . ,(delay python2-hypothesis))))))
6a44697d
LF
7693
7694(define-public python2-hypothesis
6f068e08
EF
7695 (let ((hypothesis (package-with-python2
7696 (strip-python2-variant python-hypothesis))))
7697 (package (inherit hypothesis)
7698 (native-inputs
7699 `(("python2-enum34" ,python2-enum34)
7700 ("python2-setuptools" ,python2-setuptools))))))
7517e73c
LF
7701
7702(define-public python-pytest-subtesthack
7703 (package
7704 (name "python-pytest-subtesthack")
7705 (version "0.1.1")
7706 (source (origin
7707 (method url-fetch)
7708 (uri (pypi-uri "pytest-subtesthack" version))
7709 (sha256
7710 (base32
7711 "15kzcr5pchf3id4ikdvlv752rc0j4d912n589l4rifp8qsj19l1x"))))
7712 (build-system python-build-system)
7713 (native-inputs
7714 `(;; setuptools required for python-2 variant
7715 ("python-setuptools" ,python-setuptools)))
7716 (propagated-inputs
7717 `(("python-pytest" ,python-pytest)))
7718 (synopsis "Set-up and tear-down fixtures for unit tests")
7719 (description "This plugin allows you to set up and tear down fixtures within
7720unit test functions that use @code{py.test}. This is useful for using
7721@command{hypothesis} inside py.test, as @command{hypothesis} will call the test
7722function multiple times, without setting up or tearing down fixture state as is
7723normally the case.")
7724 (home-page "https://github.com/untitaker/pytest-subtesthack/")
3f641af0 7725 (license license:unlicense)))
7517e73c
LF
7726
7727(define-public python2-pytest-subtesthack
7728 (package-with-python2 python-pytest-subtesthack))
0bdc1671
CAW
7729
7730(define-public python2-xdo
7731 (package
7732 (name "python2-xdo")
7733 (version "0.2")
7734 (source (origin
7735 (method url-fetch)
7736 (uri (string-append
7737 "http://http.debian.net/debian/pool/main/p/python-xdo/"
7738 "python-xdo_" version ".orig.tar.gz"))
7739 (sha256
7740 (base32
7741 "1kl5c1p0dyxf62plnk6fl77ycfb4whwjms16r14dxx8kn90hlqz4"))))
7742 (build-system python-build-system)
7743 (arguments
7744 `(#:python ,python-2
7745 #:tests? #f)) ; no tests provided
7746 (inputs
7747 `(("xdotool" ,xdotool)
7748 ("libX11" ,libx11)))
7749 (home-page "https://tracker.debian.org/pkg/python-xdo")
7750 (synopsis "Python library for simulating X11 keyboard/mouse input")
7751 (description "Provides bindings to libxdo for manipulating X11 via simulated
7752input. (Note that this is mostly a legacy library; you may wish to look at
7753python-xdo for newer bindings.)")
3f641af0 7754 (license license:bsd-3)))
0bdc1671 7755
cb34dc6c
CAW
7756(define-public python-wtforms
7757 (package
7758 (name "python-wtforms")
7759 (version "2.1")
7760 (source
7761 (origin
7762 (method url-fetch)
7763 (uri (pypi-uri "WTForms" version ".zip"))
7764 (sha256
7765 (base32
7766 "0vyl26y9cg409cfyj8rhqxazsdnd0jipgjw06civhrd53yyi1pzz"))))
7767 (build-system python-build-system)
7768 (native-inputs
7769 `(("unzip" ,unzip)))
7770 (home-page "http://wtforms.simplecodes.com/")
7771 (synopsis
7772 "Form validation and rendering library for Python web development")
7773 (description
7774 "WTForms is a flexible forms validation and rendering library
7775for Python web development. It is very similar to the web form API
7776available in Django, but is a standalone package.")
3f641af0 7777 (license license:bsd-3)
cb34dc6c
CAW
7778 (properties `((python2-variant . ,(delay python2-wtforms))))))
7779
7780(define-public python2-wtforms
7781 (package
7782 (inherit (package-with-python2
7783 (strip-python2-variant python-wtforms)))
7784 (inputs `(("python2-setuptools" ,python2-setuptools)))))
50aaec25
DT
7785
7786(define-public python-mako
7787 (package
7788 (name "python-mako")
7789 (version "1.0.3")
7790 (source
7791 (origin
7792 (method url-fetch)
7793 (uri (pypi-uri "Mako" version))
7794 (sha256
7795 (base32
7796 "136kcjbs0s98qkx8a418b05dfblqp0kiiqyx8vhx4rarwc7bqi3n"))))
7797 (build-system python-build-system)
7798 (native-inputs
7799 `(("python-markupsafe" ,python-markupsafe)
7800 ("python-mock" ,python-mock)
7801 ("python-nose" ,python-nose)))
7802 (home-page "http://www.makotemplates.org/")
7803 (synopsis "Templating language for Python")
7804 (description "Mako is a templating language for Python that compiles
7805templates into Python modules.")
7806 (license license:expat)
7807 (properties `((python2-variant . ,(delay python2-mako))))))
7808
7809(define-public python2-mako
7810 (let ((base (package-with-python2
7811 (strip-python2-variant python-mako))))
7812 (package
7813 (inherit base)
7814 (native-inputs
7815 (cons `("python2-setuptools" ,python2-setuptools)
7816 (package-native-inputs base))))))
ae00a41f
CAW
7817
7818(define-public python-waitress
7819 (package
7820 (name "python-waitress")
7821 (version "0.8.10")
7822 (source
7823 (origin
7824 (method url-fetch)
7825 (uri (pypi-uri "waitress" version))
7826 (sha256
7827 (base32
7828 "017n9ra6vvmq9d5sfhdzyzr1mg15x2hj2dhm4pdlw98c1ypw2h3w"))))
7829 (build-system python-build-system)
7830 (home-page "https://github.com/Pylons/waitress")
7831 (synopsis "Waitress WSGI server")
7832 (description "Waitress is meant to be a production-quality pure-Python WSGI
7833server with very acceptable performance.")
3f641af0 7834 (license license:zpl2.1)
ae00a41f
CAW
7835 (properties `((python2-variant . ,(delay python2-waitress))))))
7836
7837(define-public python2-waitress
7838 (package
7839 (inherit (package-with-python2
7840 (strip-python2-variant python-waitress)))
7841 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
778a284b
CAW
7842
7843(define-public python-wsgiproxy2
7844 (package
7845 (name "python-wsgiproxy2")
7846 (version "0.4.2")
7847 (source
7848 (origin
7849 (method url-fetch)
7850 (uri (pypi-uri "WSGIProxy2" version ".zip"))
7851 (sha256
7852 (base32
7853 "13kf9bdxrc95y9vriaz0viry3ah11nz4rlrykcfvb8nlqpx3dcm4"))))
7854 (build-system python-build-system)
7855 (native-inputs
7856 `(("unzip" ,unzip)
7857 ("python-nose" ,python-nose)
7858 ("python-coverage" ,python-coverage)))
7859 (propagated-inputs
7860 `(("python-six" ,python-six)
7861 ("python-webob" ,python-webob)))
7862 (home-page
7863 "https://github.com/gawel/WSGIProxy2/")
7864 (synopsis "WSGI Proxy with various http client backends")
7865 (description "WSGI turns HTTP requests into WSGI function calls.
7866WSGIProxy turns WSGI function calls into HTTP requests.
7867It also includes code to sign requests and pass private data,
7868and to spawn subprocesses to handle requests.")
7869 (license license:expat)
7870 (properties `((python2-variant . ,(delay python2-wsgiproxy2))))))
7871
7872(define-public python2-wsgiproxy2
7873 (let ((wsgiproxy2 (package-with-python2
7874 (strip-python2-variant python-wsgiproxy2))))
7875 (package
7876 (inherit wsgiproxy2)
7877 (inputs `(("python2-setuptools" ,python2-setuptools)
7878 ,@(package-inputs wsgiproxy2))))))
bb7518b1
CAW
7879
7880(define-public python-pastedeploy
7881 (package
7882 (name "python-pastedeploy")
7883 (version "1.5.2")
7884 (source
7885 (origin
7886 (method url-fetch)
7887 (uri (pypi-uri "PasteDeploy" version))
7888 (sha256
7889 (base32
7890 "1jz3m4hq8v6hyhfjz9425nd3nvn52cvbfipdcd72krjmla4qz1fm"))))
7891 (build-system python-build-system)
7892 (native-inputs
7893 `(("python-nose" ,python-nose)))
7894 (propagated-inputs
7895 ;; This package uses pkg_resources, part of setuptools, during runtime,
7896 ;; hence why not a native-input.
7897 `(("python-setuptools" ,python-setuptools)))
7898 (home-page "http://pythonpaste.org/deploy/")
7899 (synopsis
7900 "Load, configure, and compose WSGI applications and servers")
7901 (description
7902 "This tool provides code to load WSGI applications and servers from URIs;
7903these URIs can refer to Python Eggs for INI-style configuration files. Paste
7904Script provides commands to serve applications based on this configuration
7905file.")
7906 (license license:expat)))
7907
7908(define-public python2-pastedeploy
7909 (package-with-python2 python-pastedeploy))
1cf53652 7910
c4a7904c
CAW
7911(define-public python-paste
7912 (package
7913 (name "python-paste")
7914 (version "2.0.2")
7915 (source
7916 (origin
7917 (method url-fetch)
7918 (uri (pypi-uri "Paste" version))
7919 (sha256
7920 (base32
7921 "16dsv9qi0r4qsrsb6dilpq2rx0fnglvh36flzywcdnm2jg43mb5d"))
fc1adab1
AK
7922 (patches (search-patches "python-paste-remove-website-test.patch"
7923 "python-paste-remove-timing-test.patch"))))
c4a7904c
CAW
7924 (build-system python-build-system)
7925 (native-inputs
7926 `(("python-nose" ,python-nose)))
7927 (propagated-inputs
7928 `(;; Uses pkg_resources provided by setuptools internally.
7929 ("python-setuptools" ,python-setuptools)
7930 ("python-six" ,python-six)))
7931 (arguments
7932 '(;; Tests don't pass on Python 3, but work fine on Python 2.
7933 ;; (As of 2.0.2, Python 3 support in Paste is presently a bit broken,
7934 ;; but is usable enough for the minimal amount it's used in MediaGoblin
7935 ;; still... things should be better by the next Paste release.)
7936 #:tests? #f))
7937 (home-page "http://pythonpaste.org")
7938 (synopsis
7939 "Python web development tools, focusing on WSGI")
7940 (description
7941 "Paste provides a variety of web development tools and middleware which
7942can be nested together to build web applications. Paste's design closely
7943follows ideas flowing from WSGI (Web Standard Gateway Interface).")
7944 (license license:expat)
7945 (properties `((python2-variant . ,(delay python2-paste))))))
7946
7947(define-public python2-paste
7948 (let ((paste (package-with-python2
7949 (strip-python2-variant python-paste))))
7950 (package
7951 (inherit paste)
7952 (arguments
7953 ;; Tests are back for Python 2!
7954 `(#:tests? #t
7955 ,@(package-arguments paste))))))
7956
a8f20f63
CAW
7957(define-public python-pastescript
7958 (package
7959 (name "python-pastescript")
7960 (version "2.0.2")
7961 (source
7962 (origin
7963 (method url-fetch)
7964 (uri (pypi-uri "PasteScript" version))
7965 (sha256
7966 (base32
7967 "1h3nnhn45kf4pbcv669ik4faw04j58k8vbj1hwrc532k0nc28gy0"))))
7968 (build-system python-build-system)
7969 (native-inputs
7970 `(("python-nose" ,python-nose)))
7971 (propagated-inputs
7972 `(;; Uses pkg_resources provided by setuptools internally.
7973 ("python-setuptools" ,python-setuptools)
7974 ("python-paste" ,python-paste)
7975 ("python-pastedeploy" ,python-pastedeploy)))
7976 (home-page "http://pythonpaste.org/script/")
7977 (arguments
7978 '(;; Unfortunately, this requires the latest unittest2,
7979 ;; but that requires traceback2 which requires linecache2 which requires
7980 ;; unittest2. So we're skipping tests for now.
7981 ;; (Note: Apparently linetest2 only needs unittest2 for its tests,
7982 ;; so in theory we could get around this situation somehow.)
7983 #:tests? #f))
7984 (synopsis
7985 "Pluggable command line tool for serving web applications and more")
7986 (description
7987 "PasteScript is a plugin-friendly command line tool which provides a
7988variety of features, from launching web applications to bootstrapping project
7989layouts.")
7990 (license license:expat)))
7991
7992(define-public python2-pastescript
7993 (package-with-python2 python-pastescript))
7994
1cf53652
CAW
7995(define-public python-pyquery
7996 (package
7997 (name "python-pyquery")
aab76e80 7998 (version "1.2.13")
1cf53652
CAW
7999 (source
8000 (origin
8001 (method url-fetch)
8002 (uri (pypi-uri "pyquery" version))
8003 (sha256
8004 (base32
aab76e80 8005 "0j9fsisip21qv4xljsg5dmni1pgpvwrjyyhhql0glydc4bs5rjgv"))))
1cf53652
CAW
8006 (build-system python-build-system)
8007 (propagated-inputs
8008 `(("python-lxml" ,python-lxml)
8009 ("python-cssselect" ,python-cssselect)))
8010 (home-page "https://github.com/gawel/pyquery")
8011 (synopsis "Make jQuery-like queries on xml documents")
8012 (description "pyquery allows you to make jQuery queries on xml documents.
8013The API is as much as possible the similar to jQuery. pyquery uses lxml for
8014fast xml and html manipulation.")
3f641af0 8015 (license license:bsd-3)
1cf53652
CAW
8016 (properties `((python2-variant . ,(delay python2-pyquery))))))
8017
8018(define-public python2-pyquery
8019 (let ((pyquery (package-with-python2
8020 (strip-python2-variant python-pyquery))))
8021 (package
8022 (inherit pyquery)
8023 (native-inputs `(("python2-setuptools" ,python2-setuptools))))))
aa6313d6
CAW
8024
8025(define-public python-webtest
8026 (package
8027 (name "python-webtest")
8028 (version "2.0.20")
8029 (source
8030 (origin
8031 (method url-fetch)
8032 (uri (pypi-uri "WebTest" version))
8033 (sha256
8034 (base32
8035 "0bv0qhdjakdsdgj4sk21gnpp8xp8bga4x03p6gjb83ihrsb7n4xv"))))
8036 (build-system python-build-system)
8037 (arguments
8038 `(;; Unfortunately we have to disable tests!
8039 ;; This release of WebTest is pinned to python-nose < 1.3,
8040 ;; but older versions of python-nose are plagued with the following
8041 ;; bug(s), which rears its ugly head during test execution:
8042 ;; https://github.com/nose-devs/nose/issues/759
8043 ;; https://github.com/nose-devs/nose/pull/811
8044 #:tests? #f))
8045 ;; Commented out code is no good, but in this case, once tests
8046 ;; are ready to be enabled again, we should put the following
8047 ;; in place:
8048 ;; (native-inputs
8049 ;; `(("python-nose" ,python-nose) ; technially < 1.3,
8050 ;; ; but see above comment
8051 ;; ("python-coverage" ,python-coverage)
8052 ;; ("python-mock" ,python-mock)
8053 ;; ("python-pastedeploy" ,python-pastedeploy)
8054 ;; ("python-wsgiproxy2" ,python-wsgiproxy2)
8055 ;; ("python-pyquery" ,python-pyquery)))
8056 (propagated-inputs
8057 `(("python-waitress" ,python-waitress)
8058 ("python-webob" ,python-webob)
8059 ("python-six" ,python-six)
8060 ("python-beautifulsoup4" ,python-beautifulsoup4)))
8061 (home-page "http://webtest.pythonpaste.org/")
8062 (synopsis "Helper to test WSGI applications")
8063 (description "Webtest allows you to test your Python web applications
8064without starting an HTTP server. It supports anything that supports the
8065minimum of WSGI.")
8066 (license license:expat)
8067 (properties `((python2-variant . ,(delay python2-webtest))))))
8068
8069(define-public python2-webtest
8070 (let ((webtest (package-with-python2
8071 (strip-python2-variant python-webtest))))
8072 (package
8073 (inherit webtest)
8074 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8075 ,@(package-native-inputs webtest))))))
4cb122cd
CAW
8076
8077(define-public python-anyjson
8078 (package
8079 (name "python-anyjson")
8080 (version "0.3.3")
8081 (source
8082 (origin
8083 (method url-fetch)
8084 (uri (pypi-uri "anyjson" version))
8085 (sha256
8086 (base32
8087 "1fjph4alvcscsl5d4b6qpv1yh31jy05jxi1l0xff7lws7j32v09p"))))
8088 (build-system python-build-system)
8089 (arguments
8090 `(;; We could possibly get tests working, but on Python 3 it's not so easy.
8091 ;; Very strangely, 2to3 is run *during setup.py install* (or bdist, or
8092 ;; whatever) so this transformation needs to be done before the tests
8093 ;; can be run. Maybe we could add a build step to transform beforehand
8094 ;; but it could be annoying/difficult.
8095 ;; We can enable tests for the Python 2 version, though, and do below.
8096 #:tests? #f))
8097 (home-page "http://bitbucket.org/runeh/anyjson/")
8098 (synopsis
8099 "Wraps best available JSON implementation in a common interface")
8100 (description
8101 "Anyjson loads whichever is the fastest JSON module installed
8102and provides a uniform API regardless of which JSON implementation is used.")
3f641af0 8103 (license license:bsd-3)
4cb122cd
CAW
8104 (properties `((python2-variant . ,(delay python2-anyjson))))))
8105
8106(define-public python2-anyjson
8107 (let ((anyjson (package-with-python2
8108 (strip-python2-variant python-anyjson))))
8109 (package
8110 (inherit anyjson)
8111 (arguments `(;; Unlike the python 3 variant, we do run tests. See above!
8112 #:tests? #t
8113 ,@(package-arguments anyjson)))
8114 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8115 ("python2-nose" ,python2-nose))))))
8dfceab7
CAW
8116
8117(define-public python-amqp
8118 (package
8119 (name "python-amqp")
8120 (version "1.4.9")
8121 (source
8122 (origin
8123 (method url-fetch)
8124 (uri (pypi-uri "amqp" version))
8125 (sha256
8126 (base32
8127 "06n6q0kxhjnbfz3vn8x9yz09lwmn1xi9d6wxp31h5jbks0b4vsid"))))
8128 (build-system python-build-system)
8129 (native-inputs
8130 `(("python-nose" ,python-nose)
8131 ("python-mock" ,python-mock)))
8132 (home-page "http://github.com/celery/py-amqp")
8133 (synopsis
8134 "Low-level AMQP client for Python (fork of amqplib)")
8135 (description
8136 "This is a fork of amqplib which was originally written by Barry Pederson.
8137It is maintained by the Celery project, and used by kombu as a pure python
8138alternative when librabbitmq is not available.")
3f641af0 8139 (license license:lgpl2.1+)
8dfceab7
CAW
8140 (properties `((python2-variant . ,(delay python2-amqp))))))
8141
8142(define-public python2-amqp
8143 (let ((amqp (package-with-python2
8144 (strip-python2-variant python-amqp))))
8145 (package
8146 (inherit amqp)
8147 (arguments `(;; Tries to run coverage tests with nose-cover3, which seems
8148 ;; unmaintained. Weirdly, does not do this on the python 3
8149 ;; version?
8150 #:tests? #f
8151 ,@(package-arguments amqp)))
8152 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8153 ,@(package-native-inputs amqp))))))
7d387305
CAW
8154
8155(define-public python-kombu
8156 (package
8157 (name "python-kombu")
8158 (version "3.0.33")
8159 (source
8160 (origin
8161 (method url-fetch)
8162 (uri (pypi-uri "kombu" version))
8163 (sha256
8164 (base32
8165 "16brjx2lgwbj2a37d0pjbfb84nvld6irghmqrs3qfncajp51hgc5"))))
8166 (build-system python-build-system)
8167 (native-inputs
8168 `(("python-mock" ,python-mock)
8169 ("python-nose" ,python-nose)))
8170 (propagated-inputs
8171 `(("python-anyjson" ,python-anyjson)
8172 ("python-amqp" ,python-amqp)))
8173 (home-page "http://kombu.readthedocs.org")
8174 (synopsis "Message passing library for Python")
8175 (description "The aim of Kombu is to make messaging in Python as easy as
8176possible by providing an idiomatic high-level interface for the AMQ protocol,
8177and also provide proven and tested solutions to common messaging problems.
8178AMQP is the Advanced Message Queuing Protocol, an open standard protocol for
8179message orientation, queuing, routing, reliability and security, for which the
8180RabbitMQ messaging server is the most popular implementation.")
3f641af0 8181 (license license:bsd-3)
7d387305
CAW
8182 (properties `((python2-variant . ,(delay python2-kombu))))))
8183
8184(define-public python2-kombu
8185 (let ((kombu (package-with-python2
8186 (strip-python2-variant python-kombu))))
8187 (package
8188 (inherit kombu)
8189 (inputs `(("python2-setuptools" ,python2-setuptools)
8190 ("python2-unittest2" ,python2-unittest2)
8191 ,@(package-inputs kombu))))))
b6f0b9fb
CAW
8192
8193(define-public python-billiard
8194 (package
8195 (name "python-billiard")
8196 (version "3.3.0.22")
8197 (source
8198 (origin
8199 (method url-fetch)
8200 (uri (pypi-uri "billiard" version))
8201 (sha256
8202 (base32
8203 "0zp7h6a58alrb3mwdw61jds07395j4j0mj6iqsb8czrihw9ih5nj"))))
8204 (build-system python-build-system)
8205 (native-inputs
8206 `(("python-nose" ,python-nose)))
8207 (home-page "http://github.com/celery/billiard")
8208 (synopsis
8209 "Python multiprocessing fork with improvements and bugfixes")
8210 (description
8211 "Billiard is a fork of the Python 2.7 multiprocessing package. The
8212multiprocessing package itself is a renamed and updated version of R Oudkerk's
8213pyprocessing package. This standalone variant is intended to be compatible with
8214Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.")
3f641af0 8215 (license license:bsd-3)
b6f0b9fb
CAW
8216 (properties `((python2-variant . ,(delay python2-billiard))))))
8217
8218(define-public python2-billiard
8219 (let ((billiard (package-with-python2
8220 (strip-python2-variant python-billiard))))
8221 (package
8222 (inherit billiard)
8223 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8224 ("python2-unittest2" ,python2-unittest2)
8225 ("python2-mock" ,python2-mock)
8226 ,@(package-native-inputs billiard))))))
22df6419
CAW
8227
8228(define-public python-celery
8229 (package
8230 (name "python-celery")
8231 (version "3.1.20")
8232 (source
8233 (origin
8234 (method url-fetch)
8235 (uri (pypi-uri "celery" version))
8236 (sha256
8237 (base32
8238 "1md6ywg1s0946qyp8ndnsd677wm0yax933h2sb4m3a4j7lf1jbyh"))))
8239 (build-system python-build-system)
8240 (native-inputs
8241 `(("python-nose" ,python-nose)))
a64cbb6f 8242 (inputs
22df6419 8243 `(("python-pytz" ,python-pytz)
a64cbb6f
EF
8244 ("python-amqp" ,python-amqp)
8245 ("python-anyjson" ,python-anyjson)
22df6419
CAW
8246 ("python-billiard" ,python-billiard)
8247 ("python-kombu" ,python-kombu)))
8248 (home-page "http://celeryproject.org")
8249 (synopsis "Distributed Task Queue")
8250 (description "Celery is an asynchronous task queue/job queue based on
8251distributed message passing. It is focused on real-time operation, but
8252supports scheduling as well. The execution units, called tasks, are executed
8253concurrently on a single or more worker servers using multiprocessing,
8254Eventlet, or gevent. Tasks can execute asynchronously (in the background) or
8255synchronously (wait until ready).")
3f641af0 8256 (license license:bsd-3)
22df6419
CAW
8257 (properties `((python2-variant . ,(delay python2-celery))))))
8258
8259(define-public python2-celery
8260 (let ((celery (package-with-python2
8261 (strip-python2-variant python-celery))))
8262 (package
8263 (inherit celery)
8264 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8265 ("python2-unittest2" ,python2-unittest2)
8266 ("python2-mock" ,python2-mock)
8267 ,@(package-native-inputs celery))))))
97e32948
CAW
8268
8269(define-public python-translitcodec
8270 (package
8271 (name "python-translitcodec")
8272 (version "0.4.0")
8273 (source
8274 (origin
8275 (method url-fetch)
8276 (uri (pypi-uri "translitcodec" version))
8277 (sha256
8278 (base32
8279 "10x6pvblkzky1zhjs8nmx64nb9jdzxad4bxhq4iwv0j4z2aqjnki"))))
8280 (build-system python-build-system)
8281 (arguments
8282 `(#:tests? #f)) ; no tests provided
8283 (home-page
8284 "https://github.com/claudep/translitcodec")
8285 (synopsis
8286 "Unicode to 8-bit charset transliteration codec")
8287 (description
8288 "This package contains codecs for transliterating ISO 10646 texts into
8289best-effort representations using smaller coded character sets (ASCII,
8290ISO 8859, etc.).")
8291 (license license:expat)
8292 (properties `((python2-variant . ,(delay python2-translitcodec))))))
8293
8294(define-public python2-translitcodec
8295 (package
8296 (inherit (package-with-python2
8297 (strip-python2-variant python-translitcodec)))
8298 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
0c3b90d4
CAW
8299
8300(define-public python-editor
8301 (package
8302 (name "python-editor")
8303 (version "0.5")
8304 (source
8305 (origin
8306 (method url-fetch)
8307 (uri (pypi-uri "python-editor" version))
8308 (sha256
8309 (base32
8310 "1ypnpgvzpkbwsg4rdvy4sy51j28b5xq9v8pnkwxncn07vqz06p7n"))))
8311 (build-system python-build-system)
8312 (home-page
8313 "https://github.com/fmoo/python-editor")
8314 (synopsis
8315 "Programmatically open an editor, capture the result")
8316 (description
8317 "python-editor is a library that provides the editor module for
8318programmatically interfacing with your system's $EDITOR.")
3f641af0 8319 (license license:asl2.0)
0c3b90d4
CAW
8320 (properties `((python2-variant . ,(delay python2-editor))))))
8321
8322(define-public python2-editor
8323 (package
8324 (inherit (package-with-python2
8325 (strip-python2-variant python-editor)))
8326 (inputs `(("python2-setuptools" ,python2-setuptools)))))
3276517c
LF
8327
8328(define-public python-sphinxcontrib-programoutput
8329 (package
8330 (name "python-sphinxcontrib-programoutput")
8331 (version "0.8")
8332 (source (origin
8333 (method url-fetch)
8334 (uri (pypi-uri "sphinxcontrib-programoutput" version))
8335 (sha256
8336 (base32
8337 "098as6z1s0gb4dh5xcr1fd2vpm91zj93jzvgawspxf5s4hqs0xhp"))))
8338 (build-system python-build-system)
8339 (propagated-inputs
8340 `(("python-docutils" ,python-docutils)
8341 ("python-sphinx" ,python-sphinx)))
8342 (synopsis "Sphinx extension to include program output")
8343 (description "A Sphinx extension to literally insert the output of arbitrary
8344commands into documents, helping you to keep your command examples up to date.")
8345 (home-page "https://github.com/lunaryorn/sphinxcontrib-programoutput")
3f641af0 8346 (license license:bsd-2)
3276517c
LF
8347 (properties `((python2-variant . ,(delay python2-sphinxcontrib-programoutput))))))
8348
8349(define-public python2-sphinxcontrib-programoutput
8350 (package
8351 (inherit (package-with-python2
8352 (strip-python2-variant python-sphinxcontrib-programoutput)))
8353 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
548d7165
LF
8354
8355(define-public python-sphinx-repoze-autointerface
8356 (package
8357 (name "python-sphinx-repoze-autointerface")
328ae341 8358 (version "0.8")
548d7165
LF
8359 (source (origin
8360 (method url-fetch)
8361 (uri (pypi-uri "repoze.sphinx.autointerface" version))
8362 (sha256
8363 (base32
328ae341 8364 "08ycivzf7bh4a1zcyp31hbyqs1b2c9r26raa3vxjwwmbfqr3iw4f"))))
548d7165
LF
8365 (build-system python-build-system)
8366 (propagated-inputs
8367 `(("python-docutils" ,python-docutils)
8368 ("python-sphinx" ,python-sphinx)
8369 ("python-zope-interface" ,python-zope-interface)))
8370 (synopsis "Auto-generate Sphinx API docs from Zope interfaces")
8371 (description "This package defines an extension for the Sphinx documentation
8372system. The extension allows generation of API documentation by
8373introspection of @code{zope.interface} instances in code.")
8374 (home-page "https://github.com/repoze/repoze.sphinx.autointerface")
3f641af0 8375 (license license:repoze)))
548d7165
LF
8376
8377(define-public python2-sphinx-repoze-autointerface
8378 (package-with-python2 python-sphinx-repoze-autointerface))
b31fbea5
DM
8379
8380(define-public python-psycopg2
8381 (package
8382 (name "python-psycopg2")
8383 (version "2.6.1")
8384 (source
8385 (origin
8386 (method url-fetch)
8387 (uri (pypi-uri "psycopg2" version))
8388 (sha256
8389 (base32
8390 "0k4hshvrwsh8yagydyxgmd0pjm29lwdxkngcq9fzfzkmpsxrmkva"))))
8391 (build-system python-build-system)
8392 (arguments
8393 ;; Tests would require a postgresql database "psycopg2_test"
8394 ;; and a running postgresql database management service.
8395 `(#:tests? #f)) ; TODO re-enable after providing a test-db.
8396 (inputs
8397 `(("postgresql" ,postgresql))) ; libpq
8398 (home-page "http://initd.org/psycopg/")
8399 (synopsis "Python PostgreSQL adapter")
8400 (description
8401 "psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API 2.0. ")
3f641af0 8402 (license license:lgpl3+)
b31fbea5
DM
8403 (properties `((python2-variant . ,(delay python2-psycopg2))))))
8404
8405(define-public python2-psycopg2
8406 (package
8407 (inherit (package-with-python2
8408 (strip-python2-variant python-psycopg2)))
8409 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
eed1a61f
LF
8410
8411(define-public python-vobject
8412 (package
8413 (name "python-vobject")
9bed9b15 8414 (version "0.9.2")
eed1a61f
LF
8415 (source (origin
8416 (method url-fetch)
8417 (uri (pypi-uri "vobject" version))
8418 (sha256
8419 (base32
9bed9b15 8420 "1qfnwlx8qwkgr6nf5wvl6ff1r3kll53dh3z6nyp173nmlhhhqccb"))))
eed1a61f
LF
8421 (build-system python-build-system)
8422 (inputs
8423 `(("python-dateutil-2" ,python-dateutil-2)
8424 ("python-pyicu" ,python-pyicu)))
8425 (synopsis "Parse and generate vCard and vCalendar files")
8426 (description "Vobject is intended to be a full featured Python package for
8427parsing and generating vCard and vCalendar files. Currently, iCalendar files
8428are supported and well tested. vCard 3.0 files are supported, and all data
8429should be imported, but only a few components are understood in a sophisticated
8430way.")
8431 (home-page "http://eventable.github.io/vobject/")
3f641af0 8432 (license license:asl2.0)
eed1a61f
LF
8433 (properties `((python2-variant . ,(delay python2-vobject))))))
8434
8435(define-public python2-vobject
8436 (package
8437 (inherit (package-with-python2
8438 (strip-python2-variant python-vobject)))
8439 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
cedac813
LF
8440
8441(define-public python-munkres
8442 (package
8443 (name "python-munkres")
8444 (version "1.0.7")
8445 (source (origin
8446 (method url-fetch)
8447 (uri (pypi-uri "munkres" version))
8448 (sha256
8449 (base32
8450 "1i6nf45i0kkzdx6k70giybsqxz4dxsjbrkrfqgjd7znfkf25sjik"))))
8451 (build-system python-build-system)
8452 (arguments
8453 '(#:tests? #f)) ; no test suite
8454 (home-page "http://software.clapper.org/munkres/")
8455 (synopsis "Implementation of the Munkres algorithm")
8456 (description "The Munkres module provides an implementation of the Munkres
8457algorithm (also called the Hungarian algorithm or the Kuhn-Munkres algorithm),
8458useful for solving the Assignment Problem.")
3f641af0 8459 (license license:bsd-3)))
cedac813
LF
8460
8461(define-public python2-munkres
8462 (package-with-python2 python-munkres))
f3b3d78f
LF
8463
8464(define-public python-flask
8465 (package
8466 (name "python-flask")
8467 (version "0.10.1")
8468 (source (origin
8469 (method url-fetch)
8470 (uri (pypi-uri "Flask" version))
8471 (sha256
8472 (base32
8473 "0wrkavjdjndknhp8ya8j850jq7a1cli4g5a93mg8nh1xz2gq50sc"))))
8474 (build-system python-build-system)
8475 (propagated-inputs
8476 `(("python-itsdangerous" ,python-itsdangerous)
8477 ("python-jinja2" ,python-jinja2)
8478 ("python-werkzeug" ,python-werkzeug)))
8479 (home-page "https://github.com/mitsuhiko/flask/")
8480 (synopsis "Microframework based on Werkzeug, Jinja2 and good intentions")
8481 (description "Flask is a micro web framework based on the Werkzeug toolkit
8482and Jinja2 template engine. It is called a micro framework because it does not
8483presume or force a developer to use a particular tool or library.")
3f641af0 8484 (license license:bsd-3)
f3b3d78f
LF
8485 (properties `((python2-variant . ,(delay python2-flask))))))
8486
8487(define-public python2-flask
8488 (package (inherit (package-with-python2
8489 (strip-python2-variant python-flask)))
8490 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
603d665b
LF
8491
8492(define-public python-cookies
8493 (package
8494 (name "python-cookies")
8495 (version "2.2.1")
8496 (source (origin
8497 (method url-fetch)
8498 (uri (pypi-uri "cookies" version))
8499 (sha256
8500 (base32
8501 "13pfndz8vbk4p2a44cfbjsypjarkrall71pgc97glk5fiiw9idnn"))))
8502 (build-system python-build-system)
8503 (arguments
8504 `(;; test are broken: https://gitlab.com/sashahart/cookies/issues/3
8505 #:tests? #f))
8506 (native-inputs
8507 `(("python-pytest" ,python2-pytest)))
8508 (synopsis "HTTP cookie parser and renderer")
8509 (description "A RFC 6265-compliant HTTP cookie parser and renderer in
8510Python.")
8511 (home-page "https://gitlab.com/sashahart/cookies")
8512 (license license:expat)
8513 (properties `((python2-variant . ,(delay python2-cookies))))))
8514
8515(define-public python2-cookies
8516 (let ((cookies (package-with-python2
8517 (strip-python2-variant python-cookies))))
8518 (package (inherit cookies)
8519 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8520 ,@(package-native-inputs cookies))))))
0efde7d6
LF
8521
8522(define-public python-responses
8523 (package
8524 (name "python-responses")
8525 (version "0.5.1")
8526 (source (origin
8527 (method url-fetch)
8528 (uri (pypi-uri "responses" version))
8529 (sha256
8530 (base32
8531 "1spcfxixyk9k7pk82jm6zqkwk031s95lh8q0mz7539jrb7269bcc"))))
8532 (build-system python-build-system)
8533 (arguments
8534 `(;; Test suite is not distributed:
8535 ;; https://github.com/getsentry/responses/issues/38
8536 #:tests? #f))
8537 (native-inputs
8538 `(("python-cookies" ,python-cookies)
8539 ("python-mock" ,python-mock)))
8540 (propagated-inputs
8541 `(("python-requests" ,python-requests)
8542 ("python-six" ,python-six)))
8543 (home-page "https://github.com/getsentry/responses")
8544 (synopsis "Utility for mocking out the `requests` Python library")
8545 (description "A utility library for mocking out the `requests` Python
8546library.")
3f641af0 8547 (license license:asl2.0)
0efde7d6
LF
8548 (properties `((python2-variant . ,(delay python2-responses))))))
8549
8550(define-public python2-responses
8551 (let ((responses (package-with-python2
8552 (strip-python2-variant python-responses))))
8553 (package (inherit responses)
8554 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8555 ,@(package-native-inputs responses))))))
76b94885
LF
8556
8557(define-public python-pathlib
8558 (package
8559 (name "python-pathlib")
8560 (version "1.0.1")
8561 (source (origin
8562 (method url-fetch)
8563 (uri (pypi-uri "pathlib" version))
8564 (sha256
8565 (base32
8566 "17zajiw4mjbkkv6ahp3xf025qglkj0805m9s41c45zryzj6p2h39"))))
8567 (build-system python-build-system)
8568 (arguments
8569 `(#:phases
8570 (modify-phases %standard-phases
8571 (replace 'check
8572 (lambda _ (zero? (system* "python" "./test_pathlib.py")))))))
8573 (home-page "https://pathlib.readthedocs.org/")
8574 (synopsis "Object-oriented filesystem paths")
8575 (description "Pathlib offers a set of classes to handle filesystem paths.
8576It offers the following advantages over using string objects:
8577
8578@enumerate
8579@item No more cumbersome use of os and os.path functions. Everything can
8580be done easily through operators, attribute accesses, and method calls.
8581@item Embodies the semantics of different path types. For example,
8582comparing Windows paths ignores casing.
8583@item Well-defined semantics, eliminating any inconsistencies or
8584ambiguities (forward vs. backward slashes, etc.).
8585@end enumerate\n")
8586 (license license:expat)))
8587
8588(define-public python2-pathlib
8589 (package-with-python2 python-pathlib))
25a7db0a
LF
8590
8591(define-public python-jellyfish
8592 (package
8593 (name "python-jellyfish")
8594 (version "0.5.3")
8595 (source (origin
8596 (method url-fetch)
8597 (uri (pypi-uri "jellyfish" version))
8598 (sha256
8599 (base32
8600 "12bxh8cy9xmvyrjz7aw159nd5pyvb645rkvw4r6bvm4xbvs8gd07"))))
8601 (build-system python-build-system)
8602 (native-inputs
8603 `(("python-pytest" ,python-pytest)))
8604 (home-page "https://github.com/jamesturk/jellyfish")
8605 (synopsis "Approximate and phonetic matching of strings")
8606 (description "Jellyfish uses a variety of string comparison and phonetic
8607encoding algorithms to do fuzzy string matching.")
3f641af0 8608 (license license:bsd-2)
25a7db0a
LF
8609 (properties `((python2-variant . ,(delay python2-jellyfish))))))
8610
8611(define-public python2-jellyfish
8612 (let ((jellyfish (package-with-python2
8613 (strip-python2-variant python-jellyfish))))
8614 (package (inherit jellyfish)
8615 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8616 ("python2-unicodecsv" ,python2-unicodecsv)
8617 ,@(package-native-inputs jellyfish))))))
13edb0e5
LF
8618
8619(define-public python2-unicodecsv
8620 (package
8621 (name "python2-unicodecsv")
8622 (version "0.14.1")
8623 (source (origin
8624 (method url-fetch)
8625 ;; The test suite is not included in the PyPi release.
8626 ;; https://github.com/jdunck/python-unicodecsv/issues/19
8627 (uri (string-append "https://github.com/jdunck/python-unicodecsv/"
8628 "archive/" version ".tar.gz"))
8629 (file-name (string-append name "-" version ".tar.gz"))
8630 (sha256
8631 (base32
8632 "087nqanfcyp6mlfbbr5lva5f3w6iz1bybls9xlrb8icmc474wh4w"))))
8633 (build-system python-build-system)
8634 (arguments
8635 `(;; It supports Python 3, but Python 3 can already do Unicode CSV.
8636 #:python ,python-2))
8637 (native-inputs
8638 `(("python2-setuptools" ,python2-setuptools)
8639 ("python2-unittest2" ,python2-unittest2)))
8640 (home-page "https://github.com/jdunck/python-unicodecsv")
8641 (synopsis "Unicode CSV module for Python 2")
8642 (description "Unicodecsv is a drop-in replacement for Python 2.7's CSV
8643module, adding support for Unicode strings.")
3f641af0 8644 (license license:bsd-2)))
064503aa
LF
8645
8646(define-public python-rarfile
8647 (package
8648 (name "python-rarfile")
8649 (version "2.7")
8650 (source (origin
8651 (method url-fetch)
8652 (uri (pypi-uri "rarfile" version))
8653 (sha256
8654 (base32
8655 "0d8n1dlpiz7av8dmbp0vclrwl9cnxizr4f2c9xvj1h5nvn480527"))
8656 ;; https://github.com/markokr/rarfile/pull/17/
fc1adab1 8657 (patches (search-patches "python-rarfile-fix-tests.patch"))))
064503aa
LF
8658 (build-system python-build-system)
8659 (arguments
8660 '(#:phases
8661 (modify-phases %standard-phases
8662 (replace 'check
8663 ;; Many tests fail, but the installation proceeds.
8664 (lambda _ (zero? (system* "make" "-C" "test" "test")))))))
8665 (native-inputs
8666 `(("which" ,which))) ; required for tests
8667 (propagated-inputs
8668 `(("libarchive" ,libarchive)))
8669 (home-page "https://github.com/markokr/rarfile")
8670 (synopsis "RAR archive reader for Python")
8671 (description "This is Python module for RAR archive reading. The interface
8672is made as zipfile like as possible.")
3f641af0 8673 (license license:isc)))
064503aa
LF
8674
8675(define-public python2-rarfile
8676 (package-with-python2 python-rarfile))
daeeea71
CM
8677
8678(define-public python-magic
8679 (package
8680 (name "python-magic")
8681 (version "0.4.3")
8682 (source
8683 (origin
8684 (method url-fetch)
8685 (uri (string-append "https://github.com/ahupp/python-magic/archive/"
8686 version ".tar.gz"))
8687 (sha256
8688 (base32
8689 "17bgy92i7sb021f2s4mw1dcvpm6p1mi9jihridwy1pyn8mzvpjgk"))
8690 (file-name (string-append name "-" version "-checkout"))))
8691 (build-system python-build-system)
8692 (arguments
8693 ;; The tests are unreliable, so don't run them. The tests fail
8694 ;; under Python3 because they were written for Python2 and
8695 ;; contain import statements that do not work in Python3. One of
8696 ;; the tests fails under Python2 because its assertions are
8697 ;; overly stringent; it relies on comparing output strings which
8698 ;; are brittle and can change depending on the version of
8699 ;; libmagic being used and the system on which the test is
8700 ;; running. In my case, under GuixSD 0.10.0, only one test
8701 ;; failed, and it seems to have failed only because the version
8702 ;; of libmagic that is packaged in Guix outputs a slightly
8703 ;; different (but not wrong) string than the one that the test
8704 ;; expected.
8705 '(#:tests? #f
8706 #:phases (modify-phases %standard-phases
8707 ;; Replace a specific method call with a hard-coded
8708 ;; path to the necessary libmagic.so file in the
8709 ;; store. If we don't do this, then the method call
8710 ;; will fail to find the libmagic.so file, which in
8711 ;; turn will cause any application using
8712 ;; python-magic to fail.
8713 (add-before 'build 'hard-code-path-to-libmagic
8714 (lambda* (#:key inputs #:allow-other-keys)
8715 (let ((file (assoc-ref inputs "file")))
8716 (substitute* "magic.py"
8717 (("ctypes.util.find_library\\('magic'\\)")
8718 (string-append "'" file "/lib/libmagic.so'")))
77432686
LF
8719 #t)))
8720 (add-before 'install 'disable-egg-compression
8721 (lambda _
8722 (let ((port (open-file "setup.cfg" "a")))
8723 (display "\n[easy_install]\nzip_ok = 0\n"
8724 port)
8725 (close-port port)
8726 #t))))))
daeeea71
CM
8727 (native-inputs
8728 `(("python-setuptools" ,python-setuptools)))
8729 (inputs
8730 ;; python-magic needs to be able to find libmagic.so.
8731 `(("file" ,file)))
8732 (home-page "https://github.com/ahupp/python-magic")
8733 (synopsis "File type identification using libmagic")
8734 (description
8735 "This module uses ctypes to access the libmagic file type
8736identification library. It makes use of the local magic database and
8737supports both textual and MIME-type output. Note that this module and
8738the python-file module both provide a \"magic.py\" file; these two
8739modules, which are different and were developed separately, both serve
8740the same purpose: to provide Python bindings for libmagic.")
8741 (license license:expat)))
8742
8743(define-public python2-magic
8744 (package-with-python2 python-magic))
12af303f
CM
8745
8746(define-public python2-s3cmd
8747 (package
8748 (name "python2-s3cmd")
8749 (version "1.6.1")
8750 (source
8751 (origin
8752 (method url-fetch)
de67e922 8753 (uri (string-append "mirror://sourceforge/s3tools/s3cmd/" version "/"
12af303f
CM
8754 "s3cmd-" version ".tar.gz"))
8755 (sha256
8756 (base32
8757 "0ki1rzhm5icvi9ry5jswi4b22yqwyj0d2wsqsgilwx6qhi7pjxa6"))))
8758 (build-system python-build-system)
8759 (arguments
8760 ;; s3cmd is written for python2 only and contains no tests.
8761 `(#:python ,python-2
8762 #:tests? #f))
8763 (native-inputs
8764 `(("python2-setuptools" ,python2-setuptools)))
8765 (inputs
8766 `(("python2-dateutil" ,python2-dateutil)
8767 ;; The python-file package also provides a magic.py module.
8768 ;; This is an unfortunate state of affairs; however, s3cmd
8769 ;; fails to install if it cannot find specifically the
8770 ;; python-magic package. Thus we include it, instead of using
8771 ;; python-file. Ironically, s3cmd sometimes works better
8772 ;; without libmagic bindings at all:
8773 ;; https://github.com/s3tools/s3cmd/issues/198
8774 ("python2-magic" ,python2-magic)))
8775 (home-page "http://s3tools.org/s3cmd")
8776 (synopsis "Command line tool for S3-compatible storage services")
8777 (description
8778 "S3cmd is a command line tool for uploading, retrieving and managing data
8779in storage services that are compatible with the Amazon Simple Storage
8780Service (S3) protocol, including S3 itself. It supports rsync-like backup,
8781GnuPG encryption, and more. It also supports management of Amazon's
8782CloudFront content delivery network.")
3f641af0 8783 (license license:gpl2+)))
4323a5f0
AE
8784
8785(define-public python-pkgconfig
8786 (package
8787 (name "python-pkgconfig")
8788 (version "1.1.0")
8789 (source
8790 (origin
8791 (method url-fetch)
8792 (uri (pypi-uri "pkgconfig" version))
8793 (sha256
8794 (base32
8795 "1pw0kmvc57sjmaxi6c54fqsnihqj6hvhc9y1vaz36axafzqam7bh"))))
8796 (build-system python-build-system)
8797 (native-inputs
8798 `(("python-nose" ,python-nose)
8799 ("python-setuptools" ,python-setuptools)))
8800 (inputs
8801 `(("pkg-config" ,pkg-config)))
8802 (arguments
8803 `(;; Tests fail with "ValueError: _type_ 'v' not supported" on Python 3,
8804 ;; and on Python 2 they need the dl module deprecated since Python 2.6.
8805 #:tests? #f
8806 ;; Prevent creation of the egg. This works around
8807 ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 .
8808 #:configure-flags '("--single-version-externally-managed" "--root=/")
8809 ;; Hard-code the path to pkg-config.
8810 #:phases
8811 (modify-phases %standard-phases
8812 (add-before
8813 'build 'patch
8814 (lambda _
8815 (substitute* "pkgconfig/pkgconfig.py"
8816 (("cmd = 'pkg-config")
8817 (string-append "cmd = '" (which "pkg-config"))))
8818 #t)))))
8819 (home-page "http://github.com/matze/pkgconfig")
8820 (synopsis "Python interface for pkg-config")
8821 (description "This module provides a Python interface to pkg-config. It
8822can be used to find all pkg-config packages, check if a package exists,
8823check if a package meets certain version requirements, query CFLAGS and
8824LDFLAGS and parse the output to build extensions with setup.py.")
a0c6a36b 8825 (license license:expat)))
4323a5f0
AE
8826
8827(define-public python2-pkgconfig
8828 (package-with-python2 python-pkgconfig))
8829
2e697322
BW
8830(define-public python-bz2file
8831 (package
8832 (name "python-bz2file")
8833 (version "0.98")
8834 (source
8835 (origin
8836 (method url-fetch)
8837 (uri (pypi-uri "bz2file" version))
8838 (sha256
8839 (base32
8840 "126s53fkpx04f33a829yqqk8fj4png3qwg4m66cvlmhmwc8zihb4"))))
8841 (build-system python-build-system)
8842 (arguments
124df723 8843 `(#:tests? #f)) ; Tests use deprecated python modules.
2e697322
BW
8844 (home-page "https://github.com/nvawda/bz2file")
8845 (synopsis "Read and write bzip2-compressed files")
8846 (description
8847 "Bz2file is a Python library for reading and writing bzip2-compressed
8848files. It contains a drop-in replacement for the I/O interface in the
8849standard library's @code{bz2} module, including features from the latest
8850development version of CPython that are not available in older releases.")
3f641af0 8851 (license license:asl2.0)
2e697322
BW
8852 (properties `((python2-variant . ,(delay python2-bz2file))))))
8853
8854(define-public python2-bz2file
8855 (let ((base (package-with-python2
8856 (strip-python2-variant python-bz2file))))
8857 (package
8858 (inherit base)
8859 (native-inputs
124df723
BW
8860 `(("python2-setuptools" ,python2-setuptools)))
8861 (arguments
752bb447
BW
8862 `(#:python ,python-2
8863 #:phases
124df723
BW
8864 (modify-phases %standard-phases
8865 ;; 'python setup.py test' does not work as of 0.98.
8866 ;; There is only the one test file, so we run it directly.
8867 (replace 'check
8868 (lambda _ (zero? (system* "python"
8869 "test_bz2file.py"))))))))))
2e697322 8870
da4ac1aa
BW
8871(define-public python-future
8872 (package
8873 (name "python-future")
8874 (version "0.15.2")
8875 (source
8876 (origin
8877 (method url-fetch)
8878 (uri (pypi-uri "future" version))
8879 (sha256
8880 (base32
8881 "15wvcfzssc68xqnqi1dq4fhd0848hwi9jn42hxyvlqna40zijfrx"))))
8882 (build-system python-build-system)
8883 ;; Many tests connect to the network or are otherwise flawed.
8884 ;; https://github.com/PythonCharmers/python-future/issues/210
8885 (arguments
8886 `(#:tests? #f))
8887 (home-page "http://python-future.org")
8888 (synopsis "Single-source support for Python 3 and 2")
8889 (description
8890 "@code{python-future} is the missing compatibility layer between Python 2 and
8891Python 3. It allows you to use a single, clean Python 3.x-compatible codebase
8892to support both Python 2 and Python 3 with minimal overhead.")
8893 (license license:expat)
8894 (properties `((python2-variant . ,(delay python2-future))))))
8895
8896(define-public python2-future
8897 (let ((base (package-with-python2
8898 (strip-python2-variant python-future))))
8899 (package
8900 (inherit base)
8901 (native-inputs `(("python2-setuptools" ,python2-setuptools))))))
8902
8e451885
AE
8903(define-public python-cysignals
8904 (package
8905 (name "python-cysignals")
8906 (version "1.1.0")
8907 (source
8908 (origin
8909 (method url-fetch)
8910 (uri (pypi-uri "cysignals" version ".tar.bz2"))
8911 (sha256
8912 (base32
8913 "14cbyd9znlz6cxy1s3g6v6dv5jj45hn27pywkidd9b1zanaysqc6"))))
8914 (build-system python-build-system)
8915 (native-inputs
8916 `(("python-cython" ,python-cython)
8917 ("python-setuptools" ,python-setuptools)
8918 ("python-sphinx" ,python-sphinx)))
8919 (inputs
8920 `(("pari-gp" ,pari-gp)))
8921 (arguments
8922 `(#:modules ((guix build python-build-system)
8923 ((guix build gnu-build-system) #:prefix gnu:)
8924 (guix build utils))
8925 ;; FIXME: Tests are executed after installation and currently fail
8926 ;; when not installing into standard locations; the author is working
8927 ;; on a fix.
8928 #:tests? #f
8929 #:phases
8930 (modify-phases %standard-phases
8931 (add-before
8932 'build 'configure
8933 (assoc-ref gnu:%standard-phases 'configure)))))
8934 (home-page
8935 "https://github.com/sagemath/cysignals")
8936 (synopsis
8937 "Handling of interrupts and signals for Cython")
8938 (description
8939 "The cysignals package provides mechanisms to handle interrupts (and
8940other signals and errors) in Cython code, using two related approaches,
8941for mixed Cython/Python code or external C libraries and pure Cython code,
8942respectively.")
3f641af0 8943 (license license:lgpl3+)))
8e451885
AE
8944
8945(define-public python2-cysignals
8946 (package-with-python2 python-cysignals))
8947
63bcec71
DM
8948(define-public python2-shedskin
8949 (package
8950 (name "python2-shedskin")
8951 (version "0.9.4")
8952 (source
8953 (origin
8954 (method url-fetch)
8955 (uri (string-append "https://github.com/shedskin/shedskin/"
8956 "releases/download/v" version
8957 "/shedskin-" version ".tgz"))
8958 (sha256
8959 (base32
8960 "0nzwrzgw1ga8rw6f0ryq7zr9kkiavd1cqz5hzxkcbicl1dk7kz41"))))
8961 (build-system python-build-system)
8962 (arguments
8963 `(#:python ,python-2
8964 #:phases (modify-phases %standard-phases
8965 (add-after 'unpack 'fix-resulting-include-libs
8966 (lambda* (#:key inputs #:allow-other-keys)
8967 (let ((libgc (assoc-ref inputs "libgc"))
8968 (pcre (assoc-ref inputs "pcre")))
8969 (substitute* "shedskin/makefile.py"
8970 (("variable == 'CCFLAGS':[ ]*")
8971 (string-append "variable == 'CCFLAGS':\n"
8972 " line += ' -I " pcre "/include"
8973 " -I " libgc "/include'"))
8974 (("variable == 'LFLAGS':[ ]*")
8975 (string-append "variable == 'LFLAGS':\n"
8976 " line += ' -L" pcre "/lib"
8977 " -L " libgc "/lib'")))
8978 #t))))))
8979 (native-inputs `(("python2-setuptools" ,python2-setuptools)))
8980 (inputs `(("pcre" ,pcre)
8981 ("libgc" ,libgc)))
8982 (home-page "https://shedskin.github.io/")
8983 (synopsis "Experimental Python-2 to C++ Compiler")
8984 (description (string-append "This is an experimental compiler for a subset of
8985Python. It generates C++ code and a Makefile."))
3f641af0 8986 (license (list license:gpl3 license:bsd-3 license:expat))))
88bb4197
LG
8987
8988(define-public python2-rope
8989 (package
8990 (name "python2-rope")
8991 (version "0.10.3")
8992 (source
8993 (origin
8994 (method url-fetch)
8995 (uri (pypi-uri "rope" version))
8996 (sha256
8997 (base32
8998 "18k5znhpwvrfck3yp0jmhd5j8r0f0s8bk1zh5yhs2cfgmfhbwigb"))))
8999 (arguments
9000 ;; Rope is currently python-2 only.
9001 ;; https://github.com/python-rope/rope/issues/57
9002 `(#:python ,python-2))
9003 (build-system python-build-system)
9004 (native-inputs
9005 `(("python2-unittest2" ,python2-unittest2)
9006 ("python2-setuptools" ,python2-setuptools)))
9007 (home-page "https://github.com/python-rope/rope")
9008 (synopsis "Refactoring library for Python")
9009 (description "Rope is a refactoring library for Python. It facilitates
9010the renaming, moving and extracting of attributes, functions, modules, fields
9011and parameters in Python 2 source code. These refactorings can also be applied
9012to occurences in strings and comments.")
3f641af0 9013 (license license:gpl2)))
6ba8ca17
9014
9015(define-public python-py3status
9016 (package
9017 (name "python-py3status")
9018 (version "2.9")
9019 (source
9020 (origin
9021 (method url-fetch)
9022 (uri (pypi-uri "py3status" version))
9023 (sha256
9024 (base32
9025 "09y7h8rjay5kzwk5akq7f5f9wqnvjkxhivck04hdc8ny1nw3vqzp"))))
9026 (build-system python-build-system)
9027 (native-inputs
9028 `(("python-setuptools" ,python-setuptools)))
9029 (home-page "https://github.com/ultrabug/py3status")
9030 (synopsis "Extensible i3status wrapper written in Python")
9031 (description "py3status is an i3status wrapper which extends i3status
9032functionality in a modular way, allowing you to extend your panel with your
9033own code, responding to click events and updating clock every second.")
3f641af0 9034 (license license:bsd-3)))
b8fdbca3
HG
9035
9036(define-public python-tblib
9037 (package
9038 (name "python-tblib")
9039 (version "1.3.0")
9040 (source (origin
9041 (method url-fetch)
9042 (uri (pypi-uri "tblib" version))
9043 (sha256 (base32
9044 "02iahfkfa927hb4jq2bak36ldihwapzacfiq5lyxg8llwn98a1yi"))))
9045 (build-system python-build-system)
9046 (arguments
9047 `(#:phases
9048 (modify-phases %standard-phases
9049 (replace 'check
9050 (lambda _
9051 ;; Upstream runs tests after installation and the package itself
9052 ;; resides in a subdirectory. Extend PYTHONPATH so it will be
9053 ;; found.
9054 (setenv "PYTHONPATH"
9055 (string-append (getcwd) "/build/lib:"
9056 (getenv "PYTHONPATH")))
9057 (zero? (system* "py.test" "-vv" "tests" "README.rst")))))))
9058 (native-inputs
9059 `(("python-pytest" ,python-pytest)
9060 ("python-setuptools" ,python-setuptools)
9061 ("python-six" ,python-six)))
9062 (home-page "https://github.com/ionelmc/python-tblib")
9063 (synopsis "Traceback serialization library")
9064 (description
9065 "Traceback serialization allows you to:
9066
9067@enumerate
9068@item Pickle tracebacks and raise exceptions with pickled tracebacks in
9069different processes. This allows better error handling when running code over
9070multiple processes (imagine multiprocessing, billiard, futures, celery etc).
9071
9072@item Parse traceback strings and raise with the parsed tracebacks.
9073@end itemize")
3f641af0 9074 (license license:bsd-3)))
b8fdbca3
HG
9075
9076(define-public python2-tblib
9077 (package-with-python2 python-tblib))
1a024de4
HG
9078
9079(define-public python-sqlparse
9080 (package
9081 (name "python-sqlparse")
9082 (version "0.1.19")
9083 (source (origin
9084 (method url-fetch)
9085 (uri (pypi-uri "sqlparse" version))
9086 (sha256
9087 (base32
9088 "1s2fvaxgh9kqzrd6iwy5h7i61ckn05plx9np13zby93z3hdbx5nq"))))
9089 (build-system python-build-system)
9090 (arguments
9091 `(#:phases
9092 (modify-phases %standard-phases
9093 (replace 'check
9094 (lambda* _
9095 ;; setup.py-integrated 2to3 only affects the build files, but
9096 ;; py.test is using the source files. So we need to convert them
9097 ;; manually.
9098 (when (zero? (system* "python3"))
9099 (system* "2to3" "--no-diff" "-wn" "sqlparse" "tests"))
9100 (zero? (system* "py.test")))))))
9101 (native-inputs
9102 `(("python-pytest" ,python-pytest)
9103 ("python-setuptools" ,python-setuptools)))
9104 (home-page "https://github.com/andialbrecht/sqlparse")
9105 (synopsis "Non-validating SQL parser")
9106 (description "Sqlparse is a non-validating SQL parser for Python. It
9107provides support for parsing, splitting and formatting SQL statements.")
3f641af0 9108 (license license:bsd-3)))
1a024de4
HG
9109
9110(define-public python2-sqlparse
9111 (package-with-python2 python-sqlparse))
68b9d242
SB
9112
9113(define-public python-greenlet
9114 (package
9115 (name "python-greenlet")
9116 (version "0.4.9")
9117 (source (origin
9118 (method url-fetch)
9119 (uri (pypi-uri "greenlet" version))
9120 (sha256
9121 (base32
9122 "04h0m54dyqg49vyarq26mry6kbivnpl47rnmmrk9qn8wpfxviybr"))))
9123 (build-system python-build-system)
9124 (native-inputs
9125 `(("python-setuptools" ,python-setuptools)))
9126 (home-page "https://greenlet.readthedocs.io/")
9127 (synopsis "Lightweight in-process concurrent programming")
9128 (description
9129 "Greenlet package is a spin-off of Stackless, a version of CPython
9130that supports micro-threads called \"tasklets\". Tasklets run
9131pseudo-concurrently (typically in a single or a few OS-level threads) and
9132are synchronized with data exchanges on \"channels\".")
3f641af0 9133 (license (list license:psfl license:expat))))
68b9d242
SB
9134
9135(define-public python2-greenlet
9136 (package-with-python2 python-greenlet))
d79a343b
SB
9137
9138(define-public python-gevent
9139 (package
9140 (name "python-gevent")
9141 (version "1.1.1")
9142 (source (origin
9143 (method url-fetch)
9144 (uri (pypi-uri "gevent" version))
9145 (sha256
9146 (base32
9147 "1smf3kvidpdiyi2c81alal74p2zm0clrm6xbyy6y1k9a3f2vkrbf"))
9148 (modules '((guix build utils)))
9149 (snippet
9150 '(begin
9151 ;; unbunding libev and c-ares
9152 (for-each delete-file-recursively '("libev" "c-ares"))
9153 ;; fixing testsuite
9154 (call-with-output-file "greentest/__init__.py" noop)
9155 (substitute* "greentest/testrunner.py"
9156 (("import util") "from . import util")
9157 (("from util import log") "from .util import log"))))))
9158 (build-system python-build-system)
9159 (propagated-inputs
9160 `(("python-greenlet" ,python-greenlet)))
9161 (native-inputs
9162 `(("python-setuptools" ,python-setuptools)
9163 ("python-six" ,python-six)))
9164 (inputs
9165 `(("c-ares" ,c-ares)
9166 ("libev" ,libev)))
9167 (home-page "http://www.gevent.org/")
9168 (synopsis "Coroutine-based network library")
9169 (description
9170 "gevent is a coroutine-based Python networking library that uses greenlet
9171to provide a high-level synchronous API on top of the libev event loop.")
9172 (license license:expat)))
9173
9174(define-public python2-gevent
9175 (package-with-python2 python-gevent))
da3aeeb6
SB
9176
9177(define-public python-twisted
9178 (package
9179 (name "python-twisted")
9180 (version "16.2.0")
9181 (source (origin
9182 (method url-fetch)
8ea8e8d3 9183 (uri (pypi-uri "Twisted" version ".tar.bz2"))
da3aeeb6
SB
9184 (sha256
9185 (base32
9186 "0ydxrp9myw1mvsz3qfzx5579y5llmqa82pxvqchgp5syczffi450"))))
9187 (build-system python-build-system)
9188 (native-inputs
45912170
SB
9189 `(("python-setuptools" ,python-setuptools)))
9190 (propagated-inputs
9191 `(("python-zope-interface" ,python-zope-interface)))
da3aeeb6
SB
9192 (home-page "https://twistedmatrix.com/")
9193 (synopsis "Asynchronous networking framework written in Python")
9194 (description
9195 "Twisted is an extensible framework for Python programming, with special
9196focus on event-based network programming and multiprotocol integration.")
9197 (license license:expat)))
9198
9199(define-public python2-twisted
9200 (package-with-python2 python-twisted))
d0b6fed6
DM
9201
9202(define-public python-ply
9203 (package
9204 (name "python-ply")
9205 (version "3.8")
9206 (source
9207 (origin
9208 (method url-fetch)
9209 (uri (string-append
9210 "https://pypi.python.org/packages/"
9211 "96/e0/430fcdb6b3ef1ae534d231397bee7e9304be14a47a267e82ebcb3323d0b5"
9212 "/ply-" version ".tar.gz"))
9213 (sha256
9214 (base32
9215 "1f70ipynmiy09k6px2j7v4w5cdrc21za3xs2k6f1bsvb0bzvvlg7"))))
9216 (build-system python-build-system)
9217 (home-page "http://www.dabeaz.com/ply/")
9218 (synopsis "Python Lex & Yacc")
9219 (description "PLY is a @code{lex}/@code{yacc} implemented purely in Python.
9220It uses LR parsing and does extensive error checking.")
3f641af0 9221 (license license:bsd-3)
d0b6fed6
DM
9222 (properties `((python2-variant . ,(delay python2-ply))))))
9223
9224(define-public python2-ply
9225 (package
9226 (inherit (package-with-python2
9227 (strip-python2-variant python-ply)))
9228 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
d951bd54
SB
9229
9230(define-public python-tabulate
9231 (package
9232 (name "python-tabulate")
9233 (version "0.7.5")
9234 (source (origin
9235 (method url-fetch)
9236 (uri (pypi-uri "tabulate" version))
9237 (sha256
9238 (base32
9239 "03l1r7ddd1a0j2snv1yd0hlnghjad3fg1an1jr8936ksv75slwch"))
9240 ;; Fix tests
9241 (modules '((guix build utils)))
9242 (snippet '(substitute* '("test/test_cli.py"
9243 "test/test_input.py"
9244 "test/test_output.py"
9245 "test/test_regression.py")
9246 (("from common") "from nose.tools")))))
9247 (build-system python-build-system)
9248 (native-inputs
9249 `(("python-setuptools" ,python-setuptools)
9250 ;; For testing
9251 ("python-nose" ,python-nose)))
9252 (home-page "https://bitbucket.org/astanin/python-tabulate")
9253 (synopsis "Pretty-print tabular data")
9254 (description
9255 "Tabulate is a library and command-line utility to pretty-print tabular
9256data in Python.")
9257 (license license:expat)))
9258
9259(define-public python2-tabulate
9260 (package-with-python2 python-tabulate))
1c4c8a33
SB
9261
9262(define-public python-kazoo
9263 (package
9264 (name "python-kazoo")
9265 (version "2.2.1")
9266 (source
9267 (origin
9268 (method url-fetch)
9269 (uri (pypi-uri "kazoo" version))
9270 (sha256
9271 (base32
9272 "10pb864if9qi2pq9lfb9m8f7z7ss6rml80gf1d9h64lap5crjnjj"))))
9273 (build-system python-build-system)
9274 (arguments '(#:tests? #f)) ; XXX: needs zookeeper
9275 (native-inputs
c18899e8
SB
9276 `(("python-setuptools" ,python-setuptools)))
9277 (propagated-inputs
9278 `(("python-six" ,python-six)))
1c4c8a33
SB
9279 (home-page "https://kazoo.readthedocs.org")
9280 (synopsis "High-level Zookeeper client library")
9281 (description
9282 "Kazoo is a Python client library for the Apache Zookeeper distributed
9283application service. It is designed to be easy to use and to avoid common
9284programming errors.")
3f641af0 9285 (license license:asl2.0)))
1c4c8a33
SB
9286
9287(define-public python2-kazoo
9288 (package-with-python2 python-kazoo))
45dda35e
SB
9289
9290(define-public python-pykafka
9291 (package
9292 (name "python-pykafka")
9293 (version "2.4.0")
9294 (source (origin
9295 (method url-fetch)
c6bccf71
EF
9296 (uri (string-append
9297 "https://pypi.python.org/packages/8b/3e/"
9298 "384eeff406b06315738b62483fd2126c6e4f544167116b17cc04ea7d2a59/"
9299 "pykafka-" version ".tar.gz"))
45dda35e
SB
9300 (sha256
9301 (base32
9302 "1id6sr159p6aa13bxcqyr9gln8sqg1l0ddzns5iws8kk5q1p5cfv"))))
9303 (build-system python-build-system)
9304 (arguments '(#:tests? #f)) ; XXX: needs zookeeper, kafka, etc.
9305 (native-inputs
c8fa3d9b
SB
9306 `(("python-setuptools" ,python-setuptools)))
9307 (propagated-inputs
45dda35e
SB
9308 `(("python-gevent" ,python-gevent)
9309 ("python-kazoo" ,python-kazoo)
45dda35e
SB
9310 ("python-tabulate" ,python-tabulate)))
9311 (inputs
9312 `(("librdkafka" ,librdkafka)))
9313 (home-page "https://pykafka.readthedocs.io/")
9314 (synopsis "Apache Kafka client for Python")
9315 (description
9316 "PyKafka is a client for the Apache Kafka distributed messaging system.
9317It includes Python implementations of Kafka producers and consumers, which
9318are optionally backed by a C extension built on librdkafka.")
3f641af0 9319 (license license:asl2.0)))
45dda35e
SB
9320
9321(define-public python2-pykafka
9322 (package-with-python2 python-pykafka))
a44fd439
DM
9323
9324(define-public python-wcwidth
9325 (package
9326 (name "python-wcwidth")
9327 (version "0.1.6")
9328 (source
9329 (origin
9330 (method url-fetch)
9331 (uri (string-append
9332 "https://pypi.python.org/packages/"
9333 "c2/d1/7689293086a8d5320025080cde0e3155b94ae0a7496fb89a3fbaa92c354a/"
9334 "wcwidth-" version ".tar.gz"))
9335 (sha256
9336 (base32
9337 "02wjrpf001gjdjsaxxbzcwfg19crlk2dbddayrfc2v06f53yrcyw"))))
9338 (build-system python-build-system)
9339 (home-page "https://github.com/jquast/wcwidth")
66e07664 9340 (synopsis "Measure number of terminal column cells of wide-character codes")
a44fd439
DM
9341 (description "Wcwidth measures the number of terminal column cells of
9342wide-character codes. It is useful for those implementing a terminal emulator,
9343or programs that carefully produce output to be interpreted by one. It is a
9344Python implementation of the @code{wcwidth} and @code{wcswidth} C functions
9345specified in POSIX.1-2001 and POSIX.1-2008.")
e4875826
LF
9346 (license license:expat)
9347 (properties `((python2-variant . ,(delay python2-wcwidth))))))
a44fd439
DM
9348
9349(define-public python2-wcwidth
9350 (package
9351 (inherit (package-with-python2
9352 (strip-python2-variant python-wcwidth)))
9353 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
0de78c95
DP
9354
9355(define-public python2-jsonrpclib
9356 (package
9357 (name "python2-jsonrpclib")
9358 (version "0.1.7")
9359 (source (origin
9360 (method url-fetch)
9361 (uri (string-append
9362 "https://pypi.python.org/packages/source/j/jsonrpclib/"
9363 "jsonrpclib-" version ".tar.gz"))
9364 (sha256
9365 (base32
9366 "02vgirw2bcgvpcxhv5hf3yvvb4h5wzd1lpjx8na5psdmaffj6l3z"))))
9367 (build-system python-build-system)
9368 (native-inputs
9369 `(("python2-setuptools" ,python2-setuptools)))
9370 (arguments
9371 `(#:tests? #f
9372 #:python ,python-2))
9373 (home-page "https://github.com/joshmarshall/jsonrpclib/")
9374 (synopsis "Implementation of JSON-RPC specification for Python")
9375 (description
9376 "This library is an implementation of the JSON-RPC specification.
9377It supports both the original 1.0 specification, as well as the
9378new (proposed) 2.0 spec, which includes batch submission, keyword arguments,
9379etc.")
3f641af0 9380 (license license:asl2.0)))
9250b0f3
SB
9381
9382(define-public python-chai
9383 (package
9384 (name "python-chai")
9385 (version "1.1.1")
9386 (source (origin
9387 (method url-fetch)
9388 (uri (pypi-uri "chai" version))
9389 (sha256
9390 (base32
9391 "016kf3irrclpkpvcm7q0gmkfibq7jgy30a9v73pp42bq9h9a32bl"))))
9392 (build-system python-build-system)
9393 (native-inputs
9394 `(("python-setuptools" ,python-setuptools)))
9395 (home-page "https://github.com/agoragames/chai")
9396 (synopsis "Mocking framework for Python")
9397 (description
9398 "Chai provides an api for mocking, stubbing and spying your python
9399objects, patterned after the Mocha library for Ruby.")
3f641af0 9400 (license license:bsd-3)))
9250b0f3
SB
9401
9402(define-public python2-chai
9403 (package-with-python2 python-chai))
9404
ae43baa8
SB
9405(define-public python-arrow
9406 (package
9407 (name "python-arrow")
9408 (version "0.8.0")
9409 (source (origin
9410 (method url-fetch)
9411 (uri (pypi-uri "arrow" version))
9412 (sha256
9413 (base32
9414 "1bz7hkdgpqcjs866y58z8jywpy7al0f4rxdr00bh2l5qddyw245j"))))
9415 (build-system python-build-system)
9416 (native-inputs
9417 `(("python-setuptools" ,python-setuptools)
ae43baa8
SB
9418 ;; For testing
9419 ("python-chai" ,python-chai)
9420 ("python-simplejson" ,python-simplejson)))
36aed736
SB
9421 (propagated-inputs
9422 `(("python-dateutil" ,python-dateutil-2)))
ae43baa8
SB
9423 (home-page "https://github.com/crsmithdev/arrow/")
9424 (synopsis "Dates and times for Python")
9425 (description
9426 "Arrow is a Python library to creating, manipulating, formatting and
9427converting dates, times, and timestamps. It implements and updates the
9428datetime type.")
3f641af0 9429 (license license:asl2.0)))
ae43baa8
SB
9430
9431(define-public python2-arrow
9432 (package-with-python2 python-arrow))
9433
1f2b62a4
SB
9434(define-public python-inflection
9435 (package
9436 (name "python-inflection")
9437 (version "0.3.1")
9438 (source
9439 (origin (method url-fetch)
9440 (uri (pypi-uri "inflection" version))
9441 (sha256
9442 (base32
9443 "1jhnxgnw8y3mbzjssixh6qkc7a3afc4fygajhqrqalnilyvpzshq"))))
9444 (build-system python-build-system)
9445 (native-inputs
9446 `(("python-setuptools" ,python-setuptools)))
9447 (home-page "http://github.com/jpvanhal/inflection")
9448 (synopsis "Python string transformation library")
9449 (description
9450 "Inflection is a string transformation library. It singularizes
9451and pluralizes English words, and transforms strings from CamelCase to
9452underscored string.")
9453 (license license:expat)))
9454
9455(define-public python2-inflection
9456 (package-with-python2 python-inflection))
9457
18995566
SB
9458(define-public python-pylev
9459 (package
9460 (name "python-pylev")
9461 (version "1.3.0")
9462 (source (origin
9463 (method url-fetch)
9464 (uri (pypi-uri "pylev" version))
9465 (sha256
9466 (base32
9467 "1hz1x9blsbxya1y9nnhnwwdnqmakxi9mc0jkwj0rn6b1h44i0f86"))))
9468 (build-system python-build-system)
9469 (native-inputs
9470 `(("python-setuptools" ,python-setuptools)))
9471 (home-page "http://github.com/toastdriven/pylev")
9472 (synopsis "Levenshtein distance implementation in Python")
9473 (description "Pure Python Levenshtein implementation, based off the
9474Wikipedia code samples at
9475@url{http://en.wikipedia.org/wiki/Levenshtein_distance}.")
3f641af0 9476 (license license:bsd-3)))
18995566
SB
9477
9478(define-public python2-pylev
9479 (package-with-python2 python-pylev))
9480
f5deff7a
SB
9481(define-public python-cleo
9482 (package
9483 (name "python-cleo")
9484 (version "0.4.1")
9485 (source (origin
9486 (method url-fetch)
9487 (uri (pypi-uri "cleo" version))
9488 (sha256
9489 (base32
9490 "1k2dcl6mqpn5bljyl6w42rqyd9mb3y9kh2mg7m2x3kfjwvg0rpva"))))
9491 (build-system python-build-system)
9492 (native-inputs
9403150a 9493 `(("python-setuptools" ,python-setuptools)
f5deff7a
SB
9494 ;; For testing
9495 ("python-mock" ,python-mock)
9496 ("python-pytest" ,python-pytest)))
9403150a
SB
9497 (propagated-inputs
9498 `(("python-psutil" ,python-psutil)
9499 ("python-pylev" ,python-pylev)))
f5deff7a
SB
9500 (home-page "https://github.com/sdispater/cleo")
9501 (synopsis "Command-line arguments library for Python")
9502 (description
9503 "Cleo allows you to create command-line commands with signature in
9504docstring and colored output.")
9505 (license license:expat)))
9506
9507(define-public python2-cleo
9508 (package-with-python2 python-cleo))
9509
77cadb43
SB
9510(define-public python-lazy-object-proxy
9511 (package
9512 (name "python-lazy-object-proxy")
9513 (version "1.2.2")
9514 (source (origin
9515 (method url-fetch)
9516 (uri (pypi-uri "lazy-object-proxy" version))
9517 (sha256
9518 (base32
9519 "0s22aqqkdscyh8sjspyyax7qa1aiz8p4midrnyf39717fhfczm6x"))))
9520 (build-system python-build-system)
9521 (native-inputs
9522 `(("python-setuptools" ,python-setuptools)))
9523 (home-page "https://github.com/ionelmc/python-lazy-object-proxy")
9524 (synopsis "Lazy object proxy for python")
9525 (description
9526 "Lazy object proxy is an object that wraps a callable but defers the call
9527until the object is actually required, and caches the result of said call.")
3f641af0 9528 (license license:bsd-2)))
77cadb43
SB
9529
9530(define-public python2-lazy-object-proxy
9531 (package-with-python2 python-lazy-object-proxy))
9532
5477e05f
SB
9533(define-public python-dnspython
9534 (package
9535 (name "python-dnspython")
9536 (version "1.14.0")
9537 (source (origin
9538 (method url-fetch)
9539 (uri (string-append "http://www.dnspython.org/kits/"
9540 version "/dnspython-" version ".tar.gz"))
9541 (sha256
9542 (base32
9543 "1z472r63gdqsxhsxj3plr5vs478yf4303vrqxxpsccc940g441hl"))))
9544 (build-system python-build-system)
9545 (arguments '(#:tests? #f)) ; XXX: requires internet access
9546 (native-inputs
9547 `(("python-setuptools" ,python-setuptools)))
9548 (home-page "http://www.dnspython.org")
9549 (synopsis "DNS toolkit for Python")
9550 (description
9551 "dnspython is a DNS toolkit for Python. It supports almost all record
9552types. It can be used for queries, zone transfers, and dynamic updates.
9553It supports TSIG authenticated messages and EDNS0.")
9554 (license license:expat)))
9555
9556(define-public python2-dnspython
9557 (package-with-python2 python-dnspython))
9558
22711e25
SB
9559(define-public python-email-validator
9560 (package
9561 (name "python-email-validator")
9562 (version "1.0.1")
9563 (source
9564 (origin (method url-fetch)
9565 (uri (pypi-uri "email_validator" version))
9566 (sha256
9567 (base32
9568 "0mn8jg5h8ifl8w6a6m0hq8kbk0mzw9vm054qfamkn89b3npz52qw"))))
9569 (build-system python-build-system)
9570 (arguments
9571 '(#:phases
9572 (modify-phases %standard-phases
9573 (add-before 'build 'use-dnspython
9574 (lambda _
9575 (substitute* "setup.py"
9576 (("dnspython3") "dnspython"))
9577 #t)))))
9578 (native-inputs
d42560bd
SB
9579 `(("python-setuptools" ,python-setuptools)))
9580 (propagated-inputs
22711e25 9581 `(("python-dnspython" ,python-dnspython)
d42560bd 9582 ("python-idna" ,python-idna)))
22711e25
SB
9583 (home-page "https://github.com/JoshData/python-email-validator")
9584 (synopsis "Email address validation library for Python")
9585 (description
9586 "This library validates email address syntax and deliverability.")
3f641af0 9587 (license license:cc0)))
22711e25
SB
9588
9589(define-public python2-email-validator
9590 (package-with-python2 python-email-validator))
9591
8987d91e
SB
9592(define-public python-ukpostcodeparser
9593 (package
9594 (name "python-ukpostcodeparser")
9595 (version "1.0.3")
9596 (source (origin
9597 (method url-fetch)
9598 (uri (pypi-uri "UkPostcodeParser" version))
9599 (sha256
9600 (base32
9601 "1jwg9z4rz51mcka1821rwgycsd0mcicyp1kiwjfa2kvg8bm9p2qd"))))
9602 (build-system python-build-system)
9603 (native-inputs
9604 `(("python-setuptools" ,python-setuptools)))
9605 (home-page "https://github.com/hamstah/ukpostcodeparser")
9606 (synopsis "UK Postcode parser for Python")
9607 (description
9608 "This library provides the @code{parse_uk_postcode} function for
9609parsing UK postcodes.")
9610 (license license:expat)))
9611
9612(define-public python2-ukpostcodeparser
9613 (package-with-python2 python-ukpostcodeparser))
ea92ae01
SB
9614
9615(define-public python-fake-factory
9616 (package
9617 (name "python-fake-factory")
9618 (version "0.5.7")
9619 (source (origin
9620 (method url-fetch)
9621 (uri (pypi-uri "fake-factory" version))
9622 (sha256
9623 (base32
9624 "1chmarnrdzn4r017n8qlic0m0bbnhw04s3hkwribjvm3mqpb6pa0"))))
9625 (build-system python-build-system)
9626 (arguments
9627 '(#:phases
9628 (modify-phases %standard-phases
9629 (add-before 'check 'disable-failing-test
9630 ;; XXX: faker/tests/ne_np/__init__.py, line 40, in test_names
9631 ;; first_name, last_name = name.split()
9632 ;; ValueError: too many values to unpack (expected 2)
9633 (lambda _
9634 (delete-file "faker/tests/ne_np/__init__.py")
9635 #t)))))
9636 (native-inputs
bbcd7297 9637 `(("python-setuptools" ,python-setuptools)
ea92ae01
SB
9638 ;; For testing
9639 ("python-email-validator" ,python-email-validator)
9640 ("python-mock" ,python-mock)
9641 ("python-ukpostcodeparser" ,python-ukpostcodeparser)))
bbcd7297
SB
9642 (propagated-inputs
9643 `(("python-dateutil" ,python-dateutil-2)
9644 ("python-six" ,python-six)))
ea92ae01
SB
9645 (home-page "http://github.com/joke2k/faker")
9646 (synopsis "Python package that generates fake data")
9647 (description
9648 "Faker is a Python package that generates fake data such as names,
9649addresses, and phone numbers.")
9650 (license license:expat)
9651 (properties `((python2-variant . ,(delay python2-fake-factory))))))
9652
9653(define-public python2-fake-factory
9654 (let ((base (package-with-python2 (strip-python2-variant
9655 python-fake-factory))))
9656 (package
9657 (inherit base)
24c9aa18 9658 (propagated-inputs
ea92ae01 9659 `(("python2-ipaddress" ,python2-ipaddress)
24c9aa18 9660 ,@(package-propagated-inputs base))))))
ea92ae01 9661
b49504fd
SB
9662(define-public python-pyaml
9663 (package
9664 (name "python-pyaml")
9665 (version "15.8.2")
9666 (source (origin
9667 (method url-fetch)
9668 (uri (pypi-uri "pyaml" version))
9669 (sha256
9670 (base32
9671 "1f5m28vkh4ksq3d80d8mmd2z8wxvc3mgy2pmrv2751dm2xgznm4w"))))
9672 (build-system python-build-system)
9673 (native-inputs
9674 `(("python-setuptools" ,python-setuptools)))
9675 (propagated-inputs
9676 `(("python-pyyaml" ,python-pyyaml)))
9677 (home-page "https://github.com/mk-fg/pretty-yaml")
9678 (synopsis "YAML pretty-print library for Python")
9679 (description
9680 "pyaml is a PyYAML based python module to produce pretty and readable
9681YAML-serialized data.")
3f641af0 9682 (license (license:non-copyleft "http://www.wtfpl.net/txt/copying/"))))
b49504fd
SB
9683
9684(define-public python2-pyaml
9685 (package-with-python2 python-pyaml))
9686
347175a2
SB
9687(define-public python-flexmock
9688 (package
9689 (name "python-flexmock")
9690 (version "0.10.2")
9691 (source (origin
9692 (method url-fetch)
9693 (uri (pypi-uri "flexmock" version))
9694 (sha256
9695 (base32
9696 "0arc6njvs6i9v9hgvzk5m50296g7zy5m9d7pyb43vdsdgxrci5gy"))))
9697 (build-system python-build-system)
9698 (native-inputs
9699 `(("python-setuptools" ,python-setuptools)))
9700 (home-page "https://flexmock.readthedocs.org")
9701 (synopsis "Testing library for Python")
9702 (description
9703 "flexmock is a testing library for Python that makes it easy to create
9704mocks, stubs and fakes.")
3f641af0 9705 (license license:bsd-3)))
347175a2
SB
9706
9707(define-public python2-flexmock
9708 (package-with-python2 python-flexmock))
9709
5a744191
SB
9710(define-public python-orator
9711 (package
9712 (name "python-orator")
9713 (version "0.8.2")
9714 (source (origin
9715 (method url-fetch)
9716 (uri (pypi-uri "orator" version))
9717 (sha256
9718 (base32
9719 "1li49irsqha17nrda4nsb48biyy0rarp9pphf0jpqwm5zr8hv569"))))
9720 (build-system python-build-system)
9721 (arguments '(#:tests? #f)) ; no tests
9722 (native-inputs
b2676030
SB
9723 `(("python-setuptools" ,python-setuptools)))
9724 (propagated-inputs
5a744191
SB
9725 `(("python-arrow" ,python-arrow)
9726 ("python-blinker" ,python-blinker)
9727 ("python-cleo" ,python-cleo)
9728 ("python-fake-factory" ,python-fake-factory)
9729 ("python-inflection" ,python-inflection)
9730 ("python-lazy-object-proxy" ,python-lazy-object-proxy)
9731 ("python-pyaml" ,python-pyaml)
5a744191
SB
9732 ("python-simplejson" ,python-simplejson)
9733 ("python-wrapt" ,python-wrapt)))
9734 (home-page "https://orator-orm.com/")
9735 (synopsis "ActiveRecord ORM for Python")
9736 (description
9737 "Orator provides a simple ActiveRecord-like Object Relational Mapping
9738implementation for Python.")
9739 (license license:expat)
9740 (properties `((python2-variant . ,(delay python2-orator))))))
9741
9742(define-public python2-orator
9743 (let ((base (package-with-python2 (strip-python2-variant python-orator))))
9744 (package
9745 (inherit base)
06961617 9746 (propagated-inputs
5a744191 9747 `(("python2-ipaddress" ,python2-ipaddress)
06961617 9748 ,@(package-propagated-inputs base))))))
f4155188
DM
9749
9750(define-public python-prompt-toolkit
9751 (package
9752 (name "python-prompt-toolkit")
9753 (version "1.0.3")
9754 (source
9755 (origin
9756 (method url-fetch)
9757 (uri (string-append
9758 "https://pypi.python.org/packages/"
9759 "8d/de/412f23919929c01e6b55183e124623f705e4b91796d3d2dce2cb53d595ad/"
9760 "prompt_toolkit-" version ".tar.gz"))
9761 (sha256
9762 (base32
9763 "18lbmmkyjf509klc3217lq0x863pfzix779zx5kp9lms1iph4pl0"))))
9764 (build-system python-build-system)
9765 (inputs `(("python-wcwidth" ,python-wcwidth)
9766 ("python-pygments" ,python-pygments)))
9767 (native-inputs `(("python-six" ,python-six)))
9768 (home-page "https://github.com/jonathanslenders/python-prompt-toolkit")
9769 (synopsis "Library for building command line interfaces in Python")
9770 (description
9771 "Prompt-Toolkit is a library for building interactive command line
9772interfaces in Python. It's like GNU Readline but it also features syntax
9773highlighting while typing, out-of-the-box multi-line input editing, advanced
9774code completion, incremental search, support for Chinese double-width
9775characters, mouse support, and auto suggestions.")
3f641af0 9776 (license license:bsd-3)
f4155188
DM
9777 (properties `((python2-variant . ,(delay python2-prompt-toolkit))))))
9778
9779(define-public python2-prompt-toolkit
9780 (let ((base (package-with-python2 (strip-python2-variant python-prompt-toolkit))))
9781 (package
9782 (inherit base)
9783 (native-inputs
9784 `(("python2-setuptools" ,python2-setuptools)
9785 ,@(package-native-inputs base))))))
a502dfbf
DM
9786
9787(define-public python-jedi
9788 (package
9789 (name "python-jedi")
9790 (version "0.9.0")
9791 (source
9792 (origin
9793 (method url-fetch)
9794 (uri (pypi-uri "jedi" version))
9795 (sha256
9796 (base32
9797 "0c8x962ynpx001fdvp07m2q5jk4igkxbj3rmnydavphvlgxijk1v"))))
9798 (build-system python-build-system)
9799 (home-page "https://github.com/davidhalter/jedi")
9800 (synopsis
9801 "Autocompletion for Python that can be used for text editors")
9802 (description
9803 "Jedi is an autocompletion tool for Python that can be used for text editors.")
9804 (license license:expat)
9805 (properties `((python2-variant . ,(delay python2-jedi))))))
9806
9807(define-public python2-jedi
9808 (let ((base (package-with-python2 (strip-python2-variant python-jedi))))
9809 (package
9810 (inherit base)
9811 (native-inputs
9812 `(("python2-setuptools" ,python2-setuptools)
9813 ,@(package-native-inputs base))))))
c2f0dc6e
DM
9814
9815(define-public ptpython
9816 (package
9817 (name "ptpython")
9818 (version "0.34")
9819 (source (origin
9820 (method url-fetch)
9821 (uri (pypi-uri "ptpython" version))
9822 (sha256
9823 (base32
9824 "1mmbiyzf0n8hm7z2a562x7w5cbl6jc0zsk6vp40q1z4cyblv1k13"))))
9825 (build-system python-build-system)
9826 (inputs
9827 `(("python-docopt" ,python-docopt)
9828 ("python-jedi" ,python-jedi)
9829 ("python-prompt-toolkit" ,python-prompt-toolkit)
9830 ("python-pygments" ,python-pygments)
9831 ("python-setuptools" ,python-setuptools)))
9832 (home-page "https://github.com/jonathanslenders/ptpython")
9833 (synopsis "Python Read-Eval-Print-Loop with nice IDE-like features")
9834 (description
9835 "ptpython is a Python read-eval-print loop with IDE-like features.
9836It supports syntax highlighting, multiline editing, autocompletion, mouse,
9837color schemes, bracketed paste, Vi and Emacs keybindings, Chinese characters
9838etc.")
3f641af0 9839 (license license:bsd-3)
c2f0dc6e
DM
9840 (properties `((python2-variant . ,(delay ptpython-2))))))
9841
9842(define-public ptpython-2
9843 (let ((base (package-with-python2 (strip-python2-variant ptpython))))
9844 (package
9845 (inherit base)
9846 (name "ptpython2"))))
b227f0be 9847
9848(define-public python-stem
9849 (package
9850 (name "python-stem")
9851 (version "1.4.1b")
9852 (source
9853 (origin
9854 (method url-fetch)
9855 (uri (pypi-uri "stem" version ".tar.bz2"))
9856 (sha256
9857 (base32
9858 "09a3amp1y351nwz088ckiibbp666qi2lxwkyknavswfm400s0ns7"))))
9859 (build-system python-build-system)
9860 (arguments
9861 `(#:phases
9862 (modify-phases %standard-phases
9863 (replace 'check
9864 (lambda _
9865 (zero? (system* "./run_tests.py" "--unit")))))))
9866 (native-inputs
9867 `(("python-mock" ,python-mock)
9868 ("python-pep8" ,python-pep8)
9869 ("python-pyflakes" ,python-pyflakes)))
9870 (inputs
9871 `(("python-pycrypto" ,python-pycrypto)))
9872 (home-page "https://stem.torproject.org/")
9873 (synopsis
9874 "Python controller library that allows applications to interact with Tor")
9875 (description
9876 "Stem is a Python controller library for Tor. With it you can use Tor's
9877control protocol to script against the Tor process and read descriptor data
9878relays publish about themselves.")
3f641af0 9879 (license license:lgpl3)))
b227f0be 9880
9881(define-public python2-stem
9882 (package-with-python2 python-stem))
517a6c0c
DM
9883
9884(define-public python-pyserial
9885 (package
9886 (name "python-pyserial")
9887 (version "3.1.1")
9888 (source
9889 (origin
9890 (method url-fetch)
9891 (uri (pypi-uri "pyserial" version))
9892 (sha256
9893 (base32
9894 "0k1nfdrxxkdlv4zgaqsdv8li0pj3gbh2pyxw8q2bsg6f9490amyn"))))
9895 (build-system python-build-system)
9896 (home-page
9897 "https://github.com/pyserial/pyserial")
9898 (synopsis "Python Serial Port Bindings")
9899 (description "@code{pyserial} provide serial port bindings for Python. It
9900supports different byte sizes, stop bits, parity and flow control with RTS/CTS
9901and/or Xon/Xoff. The port is accessed in RAW mode.")
3f641af0 9902 (license license:bsd-3)
517a6c0c
DM
9903 (properties `((python2-variant . ,(delay python2-pyserial))))))
9904
9905(define-public python2-pyserial
9906 (let ((base (package-with-python2 (strip-python2-variant python-pyserial))))
9907 (package
9908 (inherit base)
9909 (native-inputs
9910 `(("python2-setuptools" ,python2-setuptools)
9911 ,@(package-native-inputs base))))))
6eb7af2a
DJ
9912
9913(define-public python-kivy
9914 (package
9915 (name "python-kivy")
9916 (version "1.9.1")
9917 (source
9918 (origin
9919 (method url-fetch)
9920 (uri (pypi-uri "kivy" version))
9921 (file-name (string-append name "-" version ".tar.gz"))
9922 (sha256
9923 (base32
9924 "0zk3g1j1z0lzcm9d0k1lprrs95zr8n8k5pdg3p5qlsn26jz4bg19"))))
9925 (build-system python-build-system)
9926 (arguments
9927 `(#:tests? #f ; Tests require many optional packages
9928 #:phases
9929 (modify-phases %standard-phases
9930 (replace 'build (lambda _ (zero? (system* "make" "force"))))
9931 (add-after 'patch-generated-file-shebangs 'set-sdl-paths
9932 (lambda* (#:key inputs #:allow-other-keys)
9933 (setenv "KIVY_SDL2_PATH"
9934 (string-append (assoc-ref inputs "sdl-union")
9935 "/include/SDL2"))
9936 #t)))))
9937 (native-inputs
9938 `(("pkg-config" ,pkg-config)))
9939 (inputs
9940 `(("python-cython" ,python-cython)
9941 ("gstreamer" ,gstreamer)
9942 ("mesa" ,mesa)
9943 ("sdl-union"
9944 ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))))
9945 (home-page "http://kivy.org")
9946 (synopsis
9947 "Multitouch application framework")
9948 (description
9949 "A software library for rapid development of
9950hardware-accelerated multitouch applications.")
9951 (license license:expat)))
9952
9953(define-public python2-kivy
9954 (package-with-python2 python-kivy))
9955
9956(define-public python-kivy-next
9957 (let ((commit "a988c5e7a47da56263ff39514264a3de516ef2fe")
9958 (revision "1"))
9959 (package (inherit python-kivy)
9960 (name "python-kivy-next")
d80a71eb 9961 (version (string-append "1.9.1-" revision "."
6eb7af2a
DJ
9962 (string-take commit 7)))
9963 (source
9964 (origin
9965 (method git-fetch)
9966 (uri (git-reference
9967 (url "https://github.com/kivy/kivy")
9968 (commit commit)))
9969 (file-name (string-append name "-" version "-checkout"))
9970 (sha256
9971 (base32
9972 "0jk92b4a8l7blkvkgkjihk171s0dfnq582cckff5srwc8kal5m0p")))))))
9973
9974(define-public python2-kivy-next
9975 (package-with-python2 python-kivy-next))
8794bd8b
DC
9976
9977(define-public python-binaryornot
9978 (package
9979 (name "python-binaryornot")
9980 (version "0.4.0")
9981 (source (origin
9982 (method url-fetch)
9983 (uri (pypi-uri "binaryornot" version))
9984 (sha256
9985 (base32
9986 "1j4f51dxic39mdwf6alj7gd769wy6mhk916v031wjali51xkh3xb"))))
9987 (build-system python-build-system)
9988 (inputs
9989 `(("python-chardet" ,python-chardet)
9990 ("python-hypothesis" ,python-hypothesis)))
9991 (home-page "https://github.com/audreyr/binaryornot")
9992 (synopsis "Package to check if a file is binary or text")
9993 (description "Ultra-lightweight pure Python package to check if a file is
9994binary or text.")
9995 (license license:bsd-3)
9996 (properties `((python2-variant . ,(delay python2-binaryornot))))))
9997
9998(define-public python2-binaryornot
9999 (let ((base (package-with-python2 (strip-python2-variant python-binaryornot))))
10000 (package (inherit base)
10001 (native-inputs
10002 `(("python2-setuptools" ,python2-setuptools)
10003 ,@(package-native-inputs base)))
10004 (inputs
10005 `(("python2-enum34" ,python2-enum34)
10006 ,@(package-inputs base))))))
a9ac982a
DC
10007
10008(define-public python-nltk
10009 (package
10010 (name "python-nltk")
10011 (version "3.2.1")
10012 (source (origin
10013 (method url-fetch)
10014 (uri (pypi-uri "nltk" version))
10015 (sha256
10016 (base32
10017 "0skxbhnymwlspjkzga0f7x1hg3y50fwpfghs8g8k7fh6f4nknlym"))))
10018 (build-system python-build-system)
10019 (home-page "http://nltk.org/")
10020 (synopsis "Natural Language Toolkit")
10021 (description "It provides interfaces to over 50 corpora and lexical
10022resources such as WordNet, along with a suite of text processing libraries
10023for classification, tokenization, stemming, tagging, parsing, and semantic
10024reasoning, wrappers for natural language processing libraries.")
10025 (license license:asl2.0)
10026 (properties `((python2-variant . ,(delay python2-nltk))))))
10027
10028(define-public python2-nltk
10029 (let ((base (package-with-python2 (strip-python2-variant python-nltk))))
10030 (package (inherit base)
10031 (native-inputs
10032 `(("python2-setuptools" ,python2-setuptools)
10033 ,@(package-native-inputs base))))))
691cd90d
DC
10034
10035(define-public python-pymongo
10036 (package
10037 (name "python-pymongo")
10038 (version "3.3.0")
10039 (source (origin
10040 (method url-fetch)
10041 (uri (pypi-uri "pymongo" version))
10042 (sha256
10043 (base32
10044 "07mra6w86wjqy4lx5fvimidjhhfzd562gfjn8grsnbv2q8pk0i9x"))))
10045 (build-system python-build-system)
10046 (inputs
10047 `(("python-certifi" ,python-certifi)))
10048 (home-page "http://github.com/mongodb/mongo-python-driver")
10049 (synopsis "Python driver for MongoDB")
10050 (description "Python driver for MongoDB.")
10051 (license license:asl2.0)
10052 (properties `((python2-variant . ,(delay python2-pymongo))))))
10053
10054(define-public python2-pymongo
10055 (let ((base (package-with-python2 (strip-python2-variant python-pymongo))))
10056 (package (inherit base)
10057 (native-inputs
10058 `(("python2-setuptools" ,python2-setuptools)
10059 ,@(package-native-inputs base))))))
6a6c9d43
DC
10060
10061(define-public python-sh
10062 (package
10063 (name "python-sh")
10064 (version "1.11")
10065 (source (origin
10066 (method url-fetch)
10067 (uri (pypi-uri "sh" version))
10068 (sha256
10069 (base32
10070 "192r0mpv6dmkysjzhc43ddffiwb5g7c76bgr1mb1z2xz9awbj3sr"))))
10071 (build-system python-build-system)
10072 (arguments
10073 `(#:tests? #f)) ; no tests
10074 (home-page "https://github.com/amoffat/sh")
10075 (synopsis "Python subprocess interface")
10076 (description "Abstracts process invocation by providing a function
10077interface for programs.")
10078 (license license:expat)
10079 (properties `((python2-variant . ,(delay python2-sh))))))
10080
10081(define-public python2-sh
10082 (let ((base (package-with-python2 (strip-python2-variant python-sh))))
10083 (package (inherit base)
10084 (native-inputs
10085 `(("python2-setuptools" ,python2-setuptools)
10086 ,@(package-native-inputs base))))))
05b59190
DC
10087
10088(define-public python-schematics
10089 (package
10090 (name "python-schematics")
10091 (version "1.1.1")
10092 (source
10093 (origin
10094 (method url-fetch)
10095 (uri (string-append
10096 "https://github.com/schematics/schematics/archive/v" version ".tar.gz"))
10097 (file-name (string-append name "-" version ".tar.gz"))
10098 (sha256
10099 (base32
10100 "19v1i69bf3bzarfxmbv0v6ivpcn758x3shvbiy9l2hy0lvqwnp6l"))))
10101 (build-system python-build-system)
10102 (inputs
10103 `(("python-six" ,python-six)))
10104 (arguments
10105 `(#:tests? #f)) ; requires a bunch of not very nice packages with fixed
10106 ; version requirements (eg python-coveralls)
10107 (home-page "https://github.com/schematics/schematics")
10108 (synopsis "Python Data Structures for Humans")
10109 (description "Python Data Structures for Humans.")
10110 (license license:bsd-3)
10111 (properties `((python2-variant . ,(delay python2-schematics))))))
10112
10113(define-public python2-schematics
10114 (let ((base (package-with-python2 (strip-python2-variant python-schematics))))
10115 (package (inherit base)
10116 (native-inputs
10117 `(("python2-setuptools" ,python2-setuptools)
10118 ,@(package-native-inputs base))))))
d6907ff7
DC
10119
10120(define-public python-publicsuffix
10121 (package
10122 (name "python-publicsuffix")
10123 (version "1.1.0")
10124 (source (origin
10125 (method url-fetch)
10126 (uri (pypi-uri "publicsuffix" version))
10127 (sha256
10128 (base32
10129 "1adx520249z2cy7ykwjr1k190mn2888wqn9jf8qm27ly4qymjxxf"))))
10130 (build-system python-build-system)
10131 (arguments
10132 `(#:tests? #f)) ; tests use the internet
10133 (home-page "https://www.tablix.org/~avian/git/publicsuffix.git")
10134 (synopsis "Get suffix for a domain name")
10135 (description "Get a public suffix for a domain name using the Public Suffix
10136List.")
10137 (license license:expat)
10138 (properties `((python2-variant . ,(delay python2-nltk))))))
10139
10140(define-public python2-publicsuffix
10141 (let ((base (package-with-python2 (strip-python2-variant python-publicsuffix))))
10142 (package (inherit base)
10143 (native-inputs
10144 `(("python2-setuptools" ,python2-setuptools)
10145 ,@(package-native-inputs base))))))
b2319996
DC
10146
10147(define-public python-publicsuffix2
10148 (package
10149 (name "python-publicsuffix2")
10150 (version "2.20160621")
10151 (source
10152 (origin
10153 (method url-fetch)
10154 (uri (pypi-uri "publicsuffix2" version ".tar.bz2"))
10155 (sha256
10156 (base32
10157 "06lx603gdwad5hc3hmn763ngq0rq9bzz1ni3ga72nzk5n872arkd"))))
10158 (build-system python-build-system)
10159 (home-page "https://github.com/pombredanne/python-publicsuffix2")
10160 (synopsis "Get a public suffix for a domain name using the Public Suffix List")
10161 (description "Get a public suffix for a domain name using the Public Suffix
10162List. Forked from and using the same API as the publicsuffix package.")
10163 (license (list license:expat license:mpl2.0))
10164 (properties `((python2-variant . ,(delay python2-publicsuffix2))))))
10165
10166(define-public python2-publicsuffix2
10167 (let ((base (package-with-python2 (strip-python2-variant python-publicsuffix2))))
10168 (package (inherit base)
10169 (native-inputs
10170 `(("python2-setuptools" ,python2-setuptools)
10171 ,@(package-native-inputs base))))))
81f1515d
DC
10172
10173(define-public python-url
10174 (package
10175 (name "python-url")
10176 (version "0.2.0")
10177 (source (origin
10178 (method url-fetch)
10179 (uri (pypi-uri "url" version))
10180 (sha256
10181 (base32
10182 "0v879yadcz9qxfl41ak6wkga1kimp9cflla9ddz03hjjvgkqy5ki"))))
10183 (build-system python-build-system)
10184 (inputs
10185 `(("python-publicsuffix" ,python-publicsuffix)))
10186 (native-inputs
10187 `(("python-coverage" ,python-coverage)
10188 ("python-nose" ,python-nose)))
10189 (arguments
10190 `(#:tests? #f)) ; FIXME: tests fail with "ImportError: No module named 'tests'"
10191 (home-page "http://github.com/seomoz/url-py")
10192 (synopsis "URL Parsing")
10193 (description "Library for parsing urls.")
10194 (license license:expat)
10195 (properties `((python2-variant . ,(delay python2-url))))))
10196
10197(define-public python2-url
10198 (let ((base (package-with-python2 (strip-python2-variant python-url))))
10199 (package (inherit base)
10200 (inputs
10201 `(("python2-publicsuffix" ,python2-publicsuffix)))
10202 (native-inputs
10203 `(("python2-setuptools" ,python2-setuptools)
10204 ,@(package-native-inputs base))))))
974ee2c1
TS
10205
10206(define-public python-freezegun
10207 (package
10208 (name "python-freezegun")
10209 (version "0.3.7")
10210 (source
10211 (origin
10212 (method url-fetch)
10213 (uri (pypi-uri "freezegun" version))
10214 (sha256
10215 (base32
10216 "14l19x06v5jkq4rdwbmfyw4x9lrjb2300afrk21r1ash7y1y9a0w"))))
10217 (build-system python-build-system)
10218 (native-inputs
10219 `(("python-mock" ,python-mock)
10220 ("python-nose" ,python-nose)
10221 ("python-coverage" ,python-coverage)
10222 ("python-dateutil-2" ,python-dateutil-2)))
10223 (inputs
10224 `(("python-six" ,python-six)))
10225 (arguments
10226 `(#:phases (modify-phases %standard-phases
10227 ;; The tests are normally executed via `make test`, but the PyPi
10228 ;; package does not include the Makefile.
10229 (replace 'check
10230 (lambda _
10231 (zero? (system* "nosetests" "./tests/")))))))
10232 (home-page "https://github.com/spulec/freezegun")
10233 (synopsis "Test utility for mocking the datetime module")
10234 (description
10235 "FreezeGun is a library that allows your python tests to travel through
10236time by mocking the datetime module.")
10237 (license license:asl2.0)))
10238
10239(define-public python2-freezegun
10240 (let ((base (package-with-python2 (strip-python2-variant python-freezegun))))
10241 (package (inherit base)
10242 (native-inputs
10243 `(("python2-setuptools" ,python2-setuptools)
10244 ,@(package-native-inputs base))))))
dddcb25c
MB
10245
10246(define-public python-odfpy
10247 (package
10248 (name "python-odfpy")
10249 (version "1.3.3")
10250 (source (origin
10251 (method url-fetch)
10252 (uri (pypi-uri "odfpy" version))
10253 (sha256
10254 (base32
10255 "1a6ms0w9zfhhkqhvrnynwwbxrivw6hgjc0s5k7j06npc7rq0blxw"))))
10256 (arguments
10257 `(#:modules ((srfi srfi-1)
10258 (guix build python-build-system)
10259 (guix build utils))
10260 #:phases
10261 (modify-phases %standard-phases
10262 (replace 'check
10263 ;; The test runner invokes python2 and python3 for test*.py.
10264 ;; To avoid having both in inputs, we replicate it here.
10265 (lambda _
10266 (every (lambda (test-file)
10267 (zero? (system* "python" test-file)))
10268 (find-files "tests" "^test.*\\.py$")))))))
10269 (build-system python-build-system)
10270 (home-page "https://github.com/eea/odfpy")
10271 (synopsis "Python API and tools to manipulate OpenDocument files")
10272 (description "Collection of libraries and utility programs written in
10273Python to manipulate OpenDocument 1.2 files.")
10274 (license
10275 ;; The software is mainly dual GPL2+ and ASL2.0, but includes a
10276 ;; number of files with other licenses.
10277 (list license:gpl2+ license:asl2.0 license:lgpl2.1+ license:cc-by-sa3.0))))
10278
10279(define-public python2-odfpy
10280 (package-with-python2 python-odfpy))