gnu: Add gnunet-gtk.
[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>
03411993 4;;; Copyright © 2013, 2014, 2015 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>
ad320b20 10;;; Copyright © 2015 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>
03f964a5 19;;; Copyright © 2015 Chris Marusich <cmmarusich@gmail.com>
a01b6da7
NK
20;;;
21;;; This file is part of GNU Guix.
22;;;
23;;; GNU Guix is free software; you can redistribute it and/or modify it
24;;; under the terms of the GNU General Public License as published by
25;;; the Free Software Foundation; either version 3 of the License, or (at
26;;; your option) any later version.
27;;;
28;;; GNU Guix is distributed in the hope that it will be useful, but
29;;; WITHOUT ANY WARRANTY; without even the implied warranty of
30;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31;;; GNU General Public License for more details.
32;;;
33;;; You should have received a copy of the GNU General Public License
34;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
35
1ffa7090 36(define-module (gnu packages python)
011b18c3 37 #:use-module ((guix licenses)
45203542 38 #:select (asl2.0 bsd-4 bsd-3 bsd-2 non-copyleft cc0 x11 x11-style
b8050e71 39 gpl2 gpl2+ gpl3+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ agpl3+
7517e73c
LF
40 isc mpl2.0 psfl public-domain unlicense x11-style
41 zpl2.1))
bd3fa666 42 #:use-module ((guix licenses) #:select (expat zlib) #:prefix license:)
3fdc99da 43 #:use-module (gnu packages)
89b2e0b0 44 #:use-module (gnu packages attr)
d96034ed 45 #:use-module (gnu packages backup)
1ffa7090 46 #:use-module (gnu packages compression)
4ed20663 47 #:use-module (gnu packages databases)
5e1c9367 48 #:use-module (gnu packages file)
4ed20663 49 #:use-module (gnu packages fontutils)
4ed20663
AE
50 #:use-module (gnu packages gcc)
51 #:use-module (gnu packages ghostscript)
52 #:use-module (gnu packages glib)
53 #:use-module (gnu packages gtk)
421a80a2 54 #:use-module (gnu packages icu4c)
c937562e 55 #:use-module (gnu packages image)
4ed20663 56 #:use-module (gnu packages imagemagick)
b10ab723 57 #:use-module (gnu packages libffi)
89b2e0b0 58 #:use-module (gnu packages linux)
0da98533 59 #:use-module (gnu packages maths)
4ed20663 60 #:use-module (gnu packages multiprecision)
45203542 61 #:use-module (gnu packages networking)
be7134bf 62 #:use-module (gnu packages ncurses)
c9b1b4f9 63 #:use-module (gnu packages pcre)
4ed20663 64 #:use-module (gnu packages perl)
b10ab723 65 #:use-module (gnu packages pkg-config)
4ed20663 66 #:use-module (gnu packages readline)
c9b1b4f9 67 #:use-module (gnu packages statistics)
1c65314c
FB
68 #:use-module (gnu packages texlive)
69 #:use-module (gnu packages texinfo)
cc2b77df 70 #:use-module (gnu packages tls)
8d12be1e 71 #:use-module (gnu packages web)
ce0614dd 72 #:use-module (gnu packages base)
26b307e2 73 #:use-module (gnu packages xml)
6fa14469 74 #:use-module (gnu packages xorg)
0bdc1671 75 #:use-module (gnu packages xdisorg)
4ed20663 76 #:use-module (gnu packages zip)
afa181ff 77 #:use-module (gnu packages tcl)
a01b6da7
NK
78 #:use-module (guix packages)
79 #:use-module (guix download)
ea5456c8 80 #:use-module (guix git-download)
11bb85a1 81 #:use-module (guix utils)
acc26ff1 82 #:use-module (guix build-system gnu)
d8c4998f 83 #:use-module (guix build-system cmake)
898238b9 84 #:use-module (guix build-system python)
1c65314c
FB
85 #:use-module (guix build-system trivial)
86 #:use-module (srfi srfi-1))
a01b6da7 87
b24d1cfc 88(define-public python-2
a01b6da7
NK
89 (package
90 (name "python")
ff6f33cf 91 (version "2.7.10")
a01b6da7
NK
92 (source
93 (origin
94 (method url-fetch)
9b43a0ff 95 (uri (string-append "https://www.python.org/ftp/python/"
a01b6da7
NK
96 version "/Python-" version ".tar.xz"))
97 (sha256
98 (base32
6a20289d 99 "1h7zbrf9pkj29hlm18b10548ch9757f75m64l47sy75rh43p7lqw"))
dedc8320
LC
100 (patches (map search-patch
101 '("python-2.7-search-paths.patch"
9820a6d4 102 "python-2-deterministic-build-info.patch"
dedc8320 103 "python-2.7-source-date-epoch.patch")))))
02f0c3b2
LC
104 (outputs '("out"
105 "tk")) ;tkinter; adds 50 MiB to the closure
a01b6da7 106 (build-system gnu-build-system)
3fdc99da 107 (arguments
af807dea 108 `(#:tests? #f
ff6f33cf
ED
109 ;; 268 tests OK.
110 ;; 103 tests failed:
111 ;; test_distutils test_shutil test_signal test_site test_slice
112 ;; test_smtplib test_smtpnet test_socket test_socketserver
113 ;; test_softspace test_sort test_spwd test_sqlite test_ssl
114 ;; test_startfile test_stat test_str test_strftime test_string
115 ;; test_stringprep test_strop test_strptime test_strtod test_struct
116 ;; test_structmembers test_structseq test_subprocess test_sunau
117 ;; test_sunaudiodev test_sundry test_symtable test_syntax test_sys
118 ;; test_sys_setprofile test_sys_settrace test_sysconfig test_tarfile
119 ;; test_tcl test_telnetlib test_tempfile test_textwrap test_thread
120 ;; test_threaded_import test_threadedtempfile test_threading
121 ;; test_threading_local test_threadsignals test_time test_timeit
122 ;; test_timeout test_tk test_tokenize test_tools test_trace
123 ;; test_traceback test_transformer test_ttk_guionly test_ttk_textonly
124 ;; test_tuple test_typechecks test_ucn test_unary
125 ;; test_undocumented_details test_unicode test_unicode_file
126 ;; test_unicodedata test_univnewlines test_univnewlines2k test_unpack
127 ;; test_urllib test_urllib2 test_urllib2_localnet test_urllib2net
128 ;; test_urllibnet test_urlparse test_userdict test_userlist
129 ;; test_userstring test_uu test_uuid test_wait3 test_wait4
130 ;; test_warnings test_wave test_weakref test_weakset test_whichdb
131 ;; test_winreg test_winsound test_with test_wsgiref test_xdrlib
132 ;; test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc
133 ;; test_xpickle test_xrange test_zipfile test_zipfile64
134 ;; test_zipimport test_zipimport_support test_zlib
135 ;; 30 tests skipped:
136 ;; test_aepack test_al test_applesingle test_bsddb test_bsddb185
137 ;; test_bsddb3 test_cd test_cl test_codecmaps_cn test_codecmaps_hk
138 ;; test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_crypt
139 ;; test_curses test_dl test_gdb test_gl test_idle test_imageop
140 ;; test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos
141 ;; test_macostools test_msilib test_nis test_ossaudiodev
142 ;; test_scriptpackages
143 ;; 6 skips unexpected on linux2:
144 ;; test_bsddb test_bsddb3 test_crypt test_gdb test_idle test_ioctl
145 ;; One of the typical errors:
146 ;; test_unicode
147 ;; test test_unicode crashed -- <type 'exceptions.OSError'>: [Errno 2] No
148 ;; such file or directory
af807dea 149 #:test-target "test"
3fdc99da 150 #:configure-flags
6a20289d
LC
151 (list "--enable-shared" ;allow embedding
152 "--with-system-ffi" ;build ctypes
153 (string-append "LDFLAGS=-Wl,-rpath="
154 (assoc-ref %outputs "out") "/lib"))
fd982732 155
d2cc9c7c
LC
156 #:modules ((ice-9 ftw) (ice-9 match)
157 (guix build utils) (guix build gnu-build-system))
fd982732 158 #:phases
46472ecd
MW
159 (modify-phases %standard-phases
160 (add-before
161 'configure 'patch-lib-shells
162 (lambda _
163 ;; Filter for existing files, since some may not exist in all
164 ;; versions of python that are built with this recipe.
165 (substitute* (filter file-exists?
166 '("Lib/subprocess.py"
167 "Lib/popen2.py"
168 "Lib/distutils/tests/test_spawn.py"
169 "Lib/test/test_subprocess.py"))
170 (("/bin/sh") (which "sh")))
dedc8320
LC
171
172 ;; Use zero as the timestamp in .pyc files so that builds are
173 ;; deterministic. TODO: Remove it when this variable is set in
174 ;; gnu-build-system.scm.
a665996f 175 (setenv "SOURCE_DATE_EPOCH" "1")
46472ecd 176 #t))
5b4e2791
LC
177 (add-before 'configure 'do-not-record-configure-flags
178 (lambda* (#:key configure-flags #:allow-other-keys)
179 ;; Remove configure flags from the installed '_sysconfigdata.py'
180 ;; and 'Makefile' so we don't end up keeping references to the
181 ;; build tools.
182 ;;
183 ;; Preserve at least '--with-system-ffi' since otherwise the
184 ;; thing tries to build libffi, fails, and we end up with a
185 ;; Python that lacks ctypes.
186 (substitute* "configure"
187 (("^CONFIG_ARGS=.*$")
188 (format #f "CONFIG_ARGS='~a'\n"
189 (if (member "--with-system-ffi" configure-flags)
190 "--with-system-ffi"
191 ""))))
192 #t))
46472ecd
MW
193 (add-before
194 'check 'pre-check
195 (lambda _
196 ;; 'Lib/test/test_site.py' needs a valid $HOME
197 (setenv "HOME" (getcwd))
198 #t))
199 (add-after
200 'unpack 'set-source-file-times-to-1980
201 ;; XXX One of the tests uses a ZIP library to pack up some of the
202 ;; source tree, and fails with "ZIP does not support timestamps
203 ;; before 1980". Work around this by setting the file times in the
204 ;; source tree to sometime in early 1980.
205 (lambda _
206 (let ((circa-1980 (* 10 366 24 60 60)))
207 (ftw "." (lambda (file stat flag)
208 (utime file circa-1980 circa-1980)
209 #t))
02f0c3b2
LC
210 #t)))
211 (add-after 'install 'move-tk-inter
212 (lambda* (#:key outputs #:allow-other-keys)
213 ;; When Tkinter support is built move it to a separate output so
214 ;; that the main output doesn't contain a reference to Tcl/Tk.
215 (let ((out (assoc-ref outputs "out"))
216 (tk (assoc-ref outputs "tk")))
217 (when tk
218 (match (find-files out "tkinter.*\\.so")
219 ((tkinter.so)
220 ;; The .so is in OUT/lib/pythonX.Y/lib-dynload, but we
221 ;; want it under TK/lib/pythonX.Y/site-packages.
222 (let* ((len (string-length out))
223 (target (string-append
224 tk "/"
225 (string-drop
226 (dirname (dirname tkinter.so))
227 len)
228 "/site-packages")))
229 (install-file tkinter.so target)
230 (delete-file tkinter.so)))))
231 #t))))))
a01b6da7 232 (inputs
3fdc99da
CR
233 `(("bzip2" ,bzip2)
234 ("gdbm" ,gdbm)
b10ab723 235 ("libffi" ,libffi) ; for ctypes
b88e1b0a 236 ("sqlite" ,sqlite) ; for sqlite extension
a01b6da7 237 ("openssl" ,openssl)
3fdc99da 238 ("readline" ,readline)
afa181ff
LC
239 ("zlib" ,zlib)
240 ("tcl" ,tcl)
241 ("tk" ,tk))) ; for tkinter
b10ab723
CR
242 (native-inputs
243 `(("pkg-config" ,pkg-config)))
9be8d7c8
LC
244 (native-search-paths
245 (list (search-path-specification
246 (variable "PYTHONPATH")
af070955 247 (files '("lib/python2.7/site-packages")))))
a01b6da7 248 (home-page "http://python.org")
afa181ff 249 (synopsis "High-level, dynamically-typed programming language")
a01b6da7
NK
250 (description
251 "Python is a remarkably powerful dynamic programming language that
252is used in a wide variety of application domains. Some of its key
253distinguishing features include: clear, readable syntax; strong
254introspection capabilities; intuitive object orientation; natural
255expression of procedural code; full modularity, supporting hierarchical
256packages; exception-based error handling; and very high level dynamic
257data types.")
258 (license psfl)))
acc26ff1 259
b24d1cfc
AE
260(define-public python
261 (package (inherit python-2)
08c04509 262 (version "3.4.3")
717003e3
LC
263 (source (origin
264 (method url-fetch)
265 (uri (string-append "https://www.python.org/ftp/python/"
266 version "/Python-" version ".tar.xz"))
6a20289d
LC
267 (patches (map search-patch
268 '("python-fix-tests.patch"
269 ;; XXX Try removing this patch for python > 3.4.3
270 "python-disable-ssl-test.patch"
9820a6d4 271 "python-3-deterministic-build-info.patch"
6a20289d 272 "python-3-search-paths.patch")))
717003e3
LC
273 (patch-flags '("-p0"))
274 (sha256
275 (base32
08c04509 276 "1f4nm4z08sy0kqwisvv95l02crv6dyysdmx44p1mz3bn6csrdcxm"))))
1f434457
MW
277 (arguments (substitute-keyword-arguments (package-arguments python-2)
278 ((#:tests? _) #t)))
1aebc0cb
AE
279 (native-search-paths
280 (list (search-path-specification
281 (variable "PYTHONPATH")
0e05d01e
SB
282 (files (list (string-append "lib/python"
283 (version-major+minor version)
284 "/site-packages"))))))))
f26a77ff 285
95288fcc
LC
286;; Minimal variants of Python, mostly used to break the cycle between Tk and
287;; Python (Tk -> libxcb -> Python.)
288
289(define-public python2-minimal
290 (package (inherit python-2)
291 (name "python-minimal")
02f0c3b2 292 (outputs '("out"))
95288fcc
LC
293 (arguments
294 (substitute-keyword-arguments (package-arguments python-2)
c5a05e31
LC
295 ((#:configure-flags cf)
296 `(append ,cf '("--without-system-ffi")))))
95288fcc
LC
297 (inputs '()))) ;none of the optional dependencies
298
299(define-public python-minimal
898238b9 300 (package (inherit python)
95288fcc 301 (name "python-minimal")
02f0c3b2 302 (outputs '("out"))
95288fcc
LC
303 (arguments
304 (substitute-keyword-arguments (package-arguments python)
c5a05e31
LC
305 ((#:configure-flags cf)
306 `(append ,cf '("--without-system-ffi")))))
95288fcc
LC
307
308 ;; OpenSSL is a mandatory dependency of Python 3.x, for urllib;
309 ;; zlib is required by 'zipimport', used by pip.
310 (inputs `(("openssl" ,openssl)
311 ("zlib" ,zlib)))))
312
64cb064c
LC
313(define* (wrap-python3 python
314 #:optional
315 (name (string-append (package-name python) "-wrapper")))
898238b9 316 (package (inherit python)
95288fcc 317 (name name)
898238b9
AE
318 (source #f)
319 (build-system trivial-build-system)
02f0c3b2 320 (outputs '("out"))
3c0f2329 321 (propagated-inputs `(("python" ,python)))
898238b9
AE
322 (arguments
323 `(#:modules ((guix build utils))
324 #:builder
325 (begin
326 (use-modules (guix build utils))
327 (let ((bin (string-append (assoc-ref %outputs "out") "/bin"))
328 (python (string-append (assoc-ref %build-inputs "python") "/bin/")))
329 (mkdir-p bin)
330 (for-each
331 (lambda (old new)
332 (symlink (string-append python old)
333 (string-append bin "/" new)))
334 `("python3", "pydoc3", "idle3")
335 `("python", "pydoc", "idle"))))))
0d56e3e1
LC
336 (synopsis "Wrapper for the Python 3 commands")
337 (description
338 "This package provides wrappers for the commands of Python@tie{}3.x such
339that they can be invoked under their usual name---e.g., @command{python}
340instead of @command{python3}.")))
341
95288fcc
LC
342(define-public python-wrapper (wrap-python3 python))
343(define-public python-minimal-wrapper (wrap-python3 python-minimal))
898238b9 344
aaf625b8
RW
345(define-public python-psutil
346 (package
347 (name "python-psutil")
f56777be 348 (version "3.3.0")
aaf625b8
RW
349 (source
350 (origin
351 (method url-fetch)
f56777be 352 (uri (pypi-uri "psutil" version))
aaf625b8
RW
353 (sha256
354 (base32
f56777be 355 "11bd1555vf2ibjnmqf64im5cp55vcqfq45ccinm9ll3bs68na6s2"))))
aaf625b8
RW
356 (build-system python-build-system)
357 (native-inputs
358 `(("python-setuptools" ,python-setuptools)))
359 (home-page "https://pypi.python.org/pypi/psutil/")
360 (synopsis "Library for retrieving information on running processes")
361 (description
362 "psutil (Python system and process utilities) is a library for retrieving
363information on running processes and system utilization (CPU, memory, disks,
364network) in Python. It is useful mainly for system monitoring, profiling and
365limiting process resources and management of running processes. It implements
366many functionalities offered by command line tools such as: ps, top, lsof,
367netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop, uptime,
368pidof, tty, taskset, pmap.")
369 (license bsd-3)))
370
371(define-public python2-psutil
372 (package-with-python2 python-psutil))
898238b9 373
f9da1d8a
ED
374(define-public python-passlib
375 (package
376 (name "python-passlib")
690e8c66 377 (version "1.6.5")
f9da1d8a
ED
378 (source
379 (origin
380 (method url-fetch)
690e8c66 381 (uri (pypi-uri "passlib" version))
f9da1d8a
ED
382 (sha256
383 (base32
690e8c66 384 "1z27wdxs5rj5xhhqfzvzn3yg682irkxw6dcs5jj7mcf97psk8gd8"))))
f9da1d8a
ED
385 (build-system python-build-system)
386 (native-inputs
387 `(("python-nose" ,python-nose)
388 ("python-setuptools" ,python-setuptools)))
389 (inputs
390 `(("python-py-bcrypt" ,python-py-bcrypt)))
391 (arguments
392 `(#:phases
393 (alist-cons-before
394 'check 'set-PYTHON_EGG_CACHE
395 ;; some tests require access to "$HOME/.cython"
396 (lambda* _ (setenv "PYTHON_EGG_CACHE" "/tmp"))
397 %standard-phases)))
398 (home-page "https://bitbucket.org/ecollins/passlib")
399 (synopsis
400 "Comprehensive password hashing framework")
401 (description
402 "Passlib is a password hashing library for Python 2 & 3, which provides
403cross-platform implementations of over 30 password hashing algorithms, as well
404as a framework for managing existing password hashes. It's designed to be
405useful for a wide range of tasks, from verifying a hash found in /etc/shadow,
406to providing full-strength password hashing for multi-user application.")
407 (license bsd-3)))
408
409(define-public python2-passlib
410 (package-with-python2 python-passlib))
411
feb0d9c3
ED
412(define-public python-py-bcrypt
413 (package
414 (name "python-py-bcrypt")
415 (version "0.4")
416 (source
417 (origin
418 (method url-fetch)
419 (uri (string-append
420 "https://pypi.python.org/packages/source/p/py-bcrypt/py-bcrypt-"
421 version
422 ".tar.gz"))
423 (sha256
424 (base32
425 "0y6smdggwi5s72v6p1nn53dg6w05hna3d264cq6kas0lap73p8az"))))
426 (build-system python-build-system)
427 (native-inputs
428 `(("python-setuptools" ,python-setuptools)))
429 (home-page "https://code.google.com/p/py-bcrypt")
430 (synopsis
431 "Bcrypt password hashing and key derivation")
432 (description
433 "A python wrapper of OpenBSD's Blowfish password hashing code. This
434system hashes passwords using a version of Bruce Schneier's Blowfish block
435cipher with modifications designed to raise the cost of off-line password
436cracking and frustrate fast hardware implementation. The computation cost of
437the algorithm is parametised, so it can be increased as computers get faster.
438The intent is to make a compromise of a password database less likely to
439result in an attacker gaining knowledge of the plaintext passwords (e.g. using
440John the Ripper).")
441 ;; "sha2.c" is under BSD-3;
442 ;; "blowfish.c" and "bcrypt.c" are under BSD-4;
443 ;; the rest is under ISC.
444 (license (list isc bsd-3 bsd-4))))
445
446(define-public python2-py-bcrypt
447 (package-with-python2 python-py-bcrypt))
448
449
429fdea1
ED
450(define-public python-paramiko
451 (package
452 (name "python-paramiko")
453 (version "1.15.2")
454 (source
455 (origin
456 (method url-fetch)
457 (uri (string-append
458 "https://pypi.python.org/packages/source/p/paramiko/paramiko-"
459 version
460 ".tar.gz"))
461 (sha256
462 (base32
463 "0mbfzm9zlrz6mla9xakrm8wkll3x035f9rj3c5pbgjzfldqscmjg"))))
464 (build-system python-build-system)
465 (native-inputs
466 `(("python-setuptools" ,python-setuptools)))
a3fc12da
CR
467 (propagated-inputs
468 `(("python-pycrypto" ,python-pycrypto)))
429fdea1 469 (inputs
a3fc12da 470 `(("python-ecdsa" ,python-ecdsa)))
429fdea1
ED
471 (home-page "http://www.paramiko.org/")
472 (synopsis "SSHv2 protocol library")
473 (description "Paramiko is a python implementation of the SSHv2 protocol,
474providing both client and server functionality. While it leverages a Python C
475extension for low level cryptography (PyCrypto), Paramiko itself is a pure
476Python interface around SSH networking concepts.")
477 (license lgpl2.1+)))
478
479(define-public python2-paramiko
480 (package-with-python2 python-paramiko))
481
482
de73dbf6
ED
483(define-public python-httplib2
484 (package
485 (name "python-httplib2")
486 (version "0.9.1")
487 (source
488 (origin
489 (method url-fetch)
490 (uri (string-append
491 "https://pypi.python.org/packages/source/h/httplib2/httplib2-"
492 version
493 ".tar.gz"))
494 (sha256
495 (base32
496 "1xc3clbrf77r0600kja71j7hk1218sjiq0gfmb8vjdajka8kjqxw"))))
497 (build-system python-build-system)
498 (native-inputs
499 `(("python-setuptools" ,python-setuptools)))
500 (home-page
501 "https://github.com/jcgregorio/httplib2")
502 (synopsis "Comprehensive HTTP client library")
503 (description
504 "A comprehensive HTTP client library supporting many features left out of
505other HTTP libraries.")
506 (license license:expat)))
507
508(define-public python2-httplib2
509 (package-with-python2 python-httplib2))
510
67039875
ED
511(define-public python-ecdsa
512 (package
513 (name "python-ecdsa")
514 (version "0.13")
515 (source
516 (origin
517 (method url-fetch)
518 (uri (string-append
519 "https://pypi.python.org/packages/source/e/ecdsa/ecdsa-"
520 version
521 ".tar.gz"))
522 (sha256
523 (base32
524 "1yj31j0asmrx4an9xvsaj2icdmzy6pw0glfpqrrkrphwdpi1xkv4"))))
525 (build-system python-build-system)
526 (native-inputs
527 `(("python-setuptools" ,python-setuptools)))
528 (inputs
529 `(("openssl" ,openssl)))
530 (home-page
531 "http://github.com/warner/python-ecdsa")
532 (synopsis
533 "ECDSA cryptographic signature library (pure python)")
534 (description
535 "This is an easy-to-use implementation of ECDSA cryptography (Elliptic
536Curve Digital Signature Algorithm), implemented purely in Python. With this
537library, you can quickly create keypairs (signing key and verifying key), sign
538messages, and verify the signatures. The keys and signatures are very short,
539making them easy to handle and incorporate into other protocols.")
540 (license license:expat)))
541
542(define-public python2-ecdsa
543 (package-with-python2 python-ecdsa))
544
52323f32
ED
545(define-public python-ccm
546 (package
547 (name "python-ccm")
548 (version "2.0.4.1")
549 (source
550 (origin
551 (method url-fetch)
552 (uri (string-append
553 "https://pypi.python.org/packages/source/c/ccm/ccm-"
554 version
555 ".tar.gz"))
556 (sha256
557 (base32
558 "199jw221albs2iv6xczczq88fxnh0aw8hzmys8qkbzkd99dssng9"))))
559 (build-system python-build-system)
560 (native-inputs
561 `(("python-setuptools" ,python-setuptools)))
562 (inputs
563 `(("python-pyyaml" ,python-pyyaml)
564 ("python-six" ,python-six)))
565 (home-page "https://github.com/pcmanus/ccm")
566 (synopsis "Cassandra Cluster Manager")
567 (description "A script/library to create, launch and remove an Apache
568Cassandra cluster on localhost.")
569 (license asl2.0)))
570
571(define-public python2-ccm
572 (package-with-python2 python-ccm))
573
89114f39 574(define-public python-pytz
acc26ff1 575 (package
89114f39 576 (name "python-pytz")
b01bbbcf 577 (version "2015.7")
acc26ff1
CR
578 (source
579 (origin
580 (method url-fetch)
b01bbbcf 581 (uri (pypi-uri "pytz" version))
acc26ff1
CR
582 (sha256
583 (base32
b01bbbcf 584 "1spgdfp1ssya7v3kww7zp71xpj437skpqazcvqr3kr1p1brnw9lr"))))
acc26ff1 585 (build-system python-build-system)
8498b8cf 586 (arguments `(#:tests? #f)) ; no test target
b01bbbcf 587 (home-page "http://pythonhosted.org/pytz")
9e771e3b 588 (synopsis "Python timezone library")
acc26ff1
CR
589 (description
590 "This library allows accurate and cross platform timezone calculations
591using Python 2.4 or higher and provides access to the Olson timezone database.")
b01bbbcf 592 (license license:expat)))
5ace6e2f 593
89114f39 594(define-public python2-pytz
11bb85a1 595 (package-with-python2 python-pytz))
89114f39 596
fc50e9c6 597
89114f39 598(define-public python-babel
5ace6e2f 599 (package
89114f39 600 (name "python-babel")
b850a6d8 601 (version "2.1.1")
5ace6e2f
CR
602 (source
603 (origin
604 (method url-fetch)
b850a6d8 605 (uri (pypi-uri "Babel" version))
5ace6e2f
CR
606 (sha256
607 (base32
b850a6d8 608 "0j2jgfzj1a2m39pm2qc36fzr7a6p5ybwndi0xdzhi2p8zw7dbdkz"))))
5ace6e2f
CR
609 (build-system python-build-system)
610 (inputs
e1804763
AE
611 `(("python-pytz" ,python-pytz)
612 ("python-setuptools" ,python-setuptools)))
8498b8cf 613 (arguments `(#:tests? #f)) ; no test target
e1804763 614 (home-page "http://babel.pocoo.org/")
5ace6e2f
CR
615 (synopsis
616 "Tools for internationalizing Python applications")
617 (description
618 "Babel is composed of two major parts:
619- tools to build and work with gettext message catalogs
620- a Python interface to the CLDR (Common Locale Data Repository), providing
621access to various locale display names, localized number and date formatting,
622etc. ")
623 (license bsd-3)))
89114f39
AE
624
625(define-public python2-babel
11bb85a1 626 (package-with-python2 python-babel))
73adf220 627
ed377cc6
RW
628(define-public python2-backport-ssl-match-hostname
629 (package
630 (name "python2-backport-ssl-match-hostname")
f2d06d46 631 (version "3.5.0.1")
ed377cc6
RW
632 (source
633 (origin
634 (method url-fetch)
635 (uri (string-append
636 "https://pypi.python.org/packages/source/b/"
637 "backports.ssl_match_hostname/backports.ssl_match_hostname-"
638 version ".tar.gz"))
639 (sha256
640 (base32
f2d06d46 641 "1wndipik52cyqy0677zdgp90i435pmvwd89cz98lm7ri0y3xjajh"))))
ed377cc6 642 (build-system python-build-system)
f2d06d46
EF
643 (arguments
644 `(#:python ,python-2
645 #:tests? #f)) ; no test target
ed377cc6
RW
646 (inputs
647 `(("python2-setuptools" ,python2-setuptools)))
f2d06d46
EF
648 (home-page "https://bitbucket.org/brandon/backports.ssl_match_hostname")
649 (synopsis "Backport of ssl.match_hostname() function from Python 3.5")
ed377cc6
RW
650 (description
651 "This backport brings the ssl.match_hostname() function to users of
652earlier versions of Python. The function checks the hostname in the
653certificate returned by the server to which a connection has been established,
654and verifies that it matches the intended target hostname.")
655 (license psfl)))
656
ef5cbf9b
RW
657(define-public python-h5py
658 (package
659 (name "python-h5py")
660 (version "2.4.0")
661 (source
662 (origin
663 (method url-fetch)
664 (uri (string-append "https://pypi.python.org/packages/source/h/h5py/h5py-"
665 version ".tar.gz"))
666 (sha256
667 (base32
668 "0q4f9l8grf6pwp64xbv8bmyxx416s7h4522nnxac056ap3savbps"))))
669 (build-system python-build-system)
797e1401
RW
670 (arguments
671 `(#:tests? #f ; no test target
672 #:phases
673 (modify-phases %standard-phases
674 (add-after 'unpack 'fix-hdf5-paths
675 (lambda* (#:key inputs #:allow-other-keys)
676 (let ((prefix (assoc-ref inputs "hdf5")))
677 (substitute* "setup_build.py"
678 (("\\['/opt/local/lib', '/usr/local/lib'\\]")
679 (string-append "['" prefix "/lib" "']"))
680 (("'/opt/local/include', '/usr/local/include'")
681 (string-append "'" prefix "/include" "'")))
682 (substitute* "setup_configure.py"
683 (("\\['/usr/local/lib', '/opt/local/lib'\\]")
684 (string-append "['" prefix "/lib" "']")))
685 #t))))))
3c4010b1
RW
686 (propagated-inputs
687 `(("python-numpy" ,python-numpy)))
ef5cbf9b 688 (inputs
3c4010b1 689 `(("hdf5" ,hdf5)))
ef5cbf9b 690 (native-inputs
3c4010b1 691 `(("python-cython" ,python-cython)))
ef5cbf9b
RW
692 (home-page "http://www.h5py.org/")
693 (synopsis "Read and write HDF5 files from Python")
694 (description
695 "The h5py package provides both a high- and low-level interface to the
696HDF5 library from Python. The low-level interface is intended to be a
697complete wrapping of the HDF5 API, while the high-level component supports
698access to HDF5 files, datasets and groups using established Python and NumPy
699concepts.")
700 (license bsd-3)))
701
702(define-public python2-h5py
703 (let ((h5py (package-with-python2 python-h5py)))
704 (package (inherit h5py)
3c4010b1 705 (propagated-inputs
ef5cbf9b
RW
706 `(("python2-numpy" ,python2-numpy)
707 ,@(alist-delete
708 "python-numpy"
3c4010b1 709 (package-propagated-inputs h5py)))))))
ef5cbf9b 710
c1448c69
EB
711(define-public python-lockfile
712 (package
713 (name "python-lockfile")
714 (version "0.9.1")
715 (source
716 (origin
717 (method url-fetch)
718 (uri (string-append "https://pypi.python.org/packages/source/l/lockfile/"
719 "lockfile-" version ".tar.gz"))
720 (sha256
721 (base32
722 "0iwif7i84gwpvrnpv4brshdk8j6l77smvknm8k3bg77mj6f5ini3"))))
723 (build-system python-build-system)
724 (arguments '(#:test-target "check"))
725 (home-page "http://code.google.com/p/pylockfile/")
726 (synopsis "Platform-independent file locking module")
727 (description
728 "The lockfile package exports a LockFile class which provides a simple
729API for locking files.")
bd3fa666 730 (license license:expat)))
c1448c69
EB
731
732(define-public python2-lockfile
733 (package-with-python2 python-lockfile))
734
5a1a4bf6
EB
735(define-public python-mock
736 (package
737 (name "python-mock")
738 (version "1.0.1")
739 (source
740 (origin
741 (method url-fetch)
742 (uri (string-append "https://pypi.python.org/packages/source/m/mock/"
743 "mock-" version ".tar.gz"))
744 (sha256
745 (base32
746 "0kzlsbki6q0awf89rc287f3aj8x431lrajf160a70z0ikhnxsfdq"))))
747 (build-system python-build-system)
748 (arguments '(#:test-target "check"))
07af3e5e 749 (home-page "http://code.google.com/p/mock/")
9e771e3b 750 (synopsis "Python mocking and patching library for testing")
5a1a4bf6
EB
751 (description
752 "Mock is a library for testing in Python. It allows you to replace parts
753of your system under test with mock objects and make assertions about how they
754have been used.")
bd3fa666 755 (license license:expat)))
5a1a4bf6
EB
756
757(define-public python2-mock
758 (package-with-python2 python-mock))
759
fc50e9c6 760
73adf220
AE
761(define-public python-setuptools
762 (package
763 (name "python-setuptools")
62a9a23b 764 (version "18.3.1")
73adf220
AE
765 (source
766 (origin
767 (method url-fetch)
768 (uri (string-append "https://pypi.python.org/packages/source/s/setuptools/setuptools-"
769 version ".tar.gz"))
770 (sha256
771 (base32
62a9a23b 772 "0kc7rbav00ks6iaw14p38y81q12fx0lpkhgf5m97xc04f5r318ig"))))
73adf220 773 (build-system python-build-system)
d3d656c5
AE
774 ;; FIXME: Tests require pytest, which itself relies on setuptools.
775 ;; One could bootstrap with an internal untested setuptools.
73adf220 776 (arguments
824af8ca 777 `(#:tests? #f))
73adf220
AE
778 (home-page "https://pypi.python.org/pypi/setuptools")
779 (synopsis
780 "Library designed to facilitate packaging Python projects")
781 (description
782 "Setuptools is a fully-featured, stable library designed to facilitate
783packaging Python projects, where packaging includes:
784Python package and module definitions,
785distribution package metadata,
786test hooks,
787project installation,
788platform-specific details,
789Python 3 support.")
790 (license psfl)))
791
792(define-public python2-setuptools
793 (package-with-python2 python-setuptools))
fc50e9c6
AE
794
795
cafc3f5a
EB
796(define-public python-pycrypto
797 (package
798 (name "python-pycrypto")
799 (version "2.6.1")
800 (source
801 (origin
802 (method url-fetch)
803 (uri (string-append "https://pypi.python.org/packages/source/p/"
804 "pycrypto/pycrypto-" version ".tar.gz"))
805 (sha256
806 (base32
807 "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj"))))
808 (build-system python-build-system)
809 (native-inputs
810 `(("python-setuptools" ,python-setuptools)))
811 (inputs
812 `(("python" ,python)
813 ("gmp" ,gmp)))
814 (arguments
815 `(#:phases
816 (alist-cons-before
817 'build 'set-build-env
818 ;; pycrypto runs an autoconf configure script behind the scenes
819 (lambda _
820 (setenv "CONFIG_SHELL" (which "bash")))
821 %standard-phases)))
822 (home-page "http://www.pycrypto.org/")
823 (synopsis "Cryptographic modules for Python")
824 (description
825 "Pycrypto is a collection of both secure hash functions (such as SHA256
826and RIPEMD160), and various encryption algorithms (AES, DES, RSA, ElGamal,
35b9e423 827etc.). The package is structured to make adding new modules easy.")
cafc3f5a
EB
828 (license public-domain)))
829
345f0611 830(define-public python2-pycrypto
1c0059da
EF
831 (let ((pycrypto (package-with-python2 python-pycrypto)))
832 (package (inherit pycrypto)
833 (inputs
834 `(("python" ,python-2)
835 ,@(alist-delete
836 "python"
837 (package-inputs pycrypto)))))))
345f0611 838
cafc3f5a
EB
839(define-public python-keyring
840 (package
841 (name "python-keyring")
664e6c3a 842 (version "5.7.1")
cafc3f5a
EB
843 (source
844 (origin
845 (method url-fetch)
664e6c3a 846 (uri (pypi-uri "keyring" version))
cafc3f5a
EB
847 (sha256
848 (base32
664e6c3a 849 "1h7a1r9ick7wdd0xb5p63413nvjadna2xawrsvmklsl5ddhm5wrx"))))
cafc3f5a
EB
850 (build-system python-build-system)
851 (native-inputs
664e6c3a
EF
852 `(("python-setuptools" ,python-setuptools)
853 ("python-setuptools-scm" ,python-setuptools-scm)
cafc3f5a
EB
854 ("python-mock" ,python-mock)))
855 (inputs
856 `(("python-pycrypto" ,python-pycrypto)))
857 (arguments
664e6c3a 858 `(#:tests? #f)) ;TODO: tests require pytest
cafc3f5a
EB
859 (home-page "http://bitbucket.org/kang/python-keyring-lib")
860 (synopsis "Store and access your passwords safely")
861 (description
862 "The Python keyring lib provides a easy way to access the system keyring
35b9e423 863service from python. It can be used in any application that needs safe
cafc3f5a
EB
864password storage.")
865 ;; "MIT" and PSF dual license
866 (license x11)))
867
d7af1069 868(define-public python2-keyring
44e30a76
EF
869 (let ((keyring (package-with-python2 python-keyring)))
870 (package (inherit keyring)
871 (inputs
872 `(("python2-pycrypto" ,python2-pycrypto))))))
d7af1069 873
a480bc41
EB
874(define-public python-six
875 (package
876 (name "python-six")
b6ab89ef 877 (version "1.10.0")
a480bc41
EB
878 (source
879 (origin
880 (method url-fetch)
b6ab89ef 881 (uri (pypi-uri "six" version))
a480bc41
EB
882 (sha256
883 (base32
b6ab89ef 884 "0snmb8xffb3vsma0z67i0h0w2g2dy0p3gsgh9gi4i0kgc5l8spqh"))))
a480bc41
EB
885 (build-system python-build-system)
886 (inputs
887 `(("python-setuptools" ,python-setuptools)))
888 (home-page "http://pypi.python.org/pypi/six/")
889 (synopsis "Python 2 and 3 compatibility utilities")
890 (description
35b9e423 891 "Six is a Python 2 and 3 compatibility library. It provides utility
a480bc41
EB
892functions for smoothing over the differences between the Python versions with
893the goal of writing Python code that is compatible on both Python versions.
35b9e423 894Six supports every Python version since 2.5. It is contained in only one
a480bc41
EB
895Python file, so it can be easily copied into your project.")
896 (license x11)))
897
0c20025c
AE
898(define-public python2-six
899 (package-with-python2 python-six))
900
cafc3f5a
EB
901(define-public python-dateutil-2
902 (package
903 (name "python-dateutil")
c2a9c1c0 904 (version "2.4.2")
cafc3f5a
EB
905 (source
906 (origin
907 (method url-fetch)
908 (uri (string-append "https://pypi.python.org/packages/source/p/"
909 name "/" name "-" version ".tar.gz"))
910 (sha256
911 (base32
c2a9c1c0 912 "0ggbm2z72p0nwjqgvpw8s5bqzwayqiqv2iws0x2a605m3mf4959y"))))
cafc3f5a
EB
913 (build-system python-build-system)
914 (inputs
915 `(("python-setuptools" ,python-setuptools)
916 ("python-six" ,python-six)))
917 (home-page "http://labix.org/python-dateutil")
918 (synopsis "Extensions to the standard datetime module")
919 (description
920 "The dateutil module provides powerful extensions to the standard
921datetime module, available in Python 2.3+.")
922 (license bsd-3)))
923
924(define-public python2-dateutil-2
925 (package-with-python2 python-dateutil-2))
926
fc50e9c6
AE
927(define-public python-dateutil
928 (package
929 (name "python-dateutil")
930 (version "1.5") ; last version for python < 3
931 (source
932 (origin
933 (method url-fetch)
cafc3f5a
EB
934 (uri (string-append "http://labix.org/download/python-dateutil/"
935 "python-dateutil-" version ".tar.gz"))
fc50e9c6
AE
936 (sha256
937 (base32
938 "0fqfglhy5khbvsipr3x7m6bcaqljh8xl5cw33vbfxy7qhmywm2n0"))))
939 (build-system python-build-system)
940 (inputs
941 `(("python-setuptools" ,python-setuptools)))
942 (home-page "http://labix.org/python-dateutil")
cafc3f5a 943 (synopsis "Extensions to the standard datetime module")
fc50e9c6
AE
944 (description
945 "The dateutil module provides powerful extensions to the standard
946datetime module, available in Python 2.3+.")
947 (license psfl)))
948
949(define-public python2-dateutil
950 (package-with-python2 python-dateutil))
1d08c01f 951
cafc3f5a
EB
952(define-public python-parsedatetime
953 (package
954 (name "python-parsedatetime")
4df1e30d 955 (version "1.5")
cafc3f5a
EB
956 (source
957 (origin
958 (method url-fetch)
959 (uri (string-append "https://pypi.python.org/packages/source/p/"
960 "parsedatetime/parsedatetime-" version ".tar.gz"))
961 (sha256
962 (base32
4df1e30d 963 "1as0mm4ql3z0324nc9bys2s1ngh507i317p16b79rx86wlmvx9ix"))))
cafc3f5a
EB
964 (build-system python-build-system)
965 (native-inputs
966 `(("python-setuptools" ,python-setuptools)))
cafc3f5a
EB
967 (home-page "http://github.com/bear/parsedatetime/")
968 (synopsis
969 "Parse human-readable date/time text")
970 (description
e881752c 971 "Parse human-readable date/time text.")
cafc3f5a
EB
972 (license asl2.0)))
973
38b8f9b2
LF
974(define-public python2-parsedatetime
975 (package-with-python2 python-parsedatetime))
976
d072efcb
RW
977(define-public python-pandas
978 (package
979 (name "python-pandas")
980 (version "0.16.0")
981 (source
982 (origin
983 (method url-fetch)
984 (uri (string-append "https://pypi.python.org/packages/source/p/"
985 "pandas/pandas-" version ".tar.gz"))
986 (sha256
987 (base32 "1wfrp8dx1zcsry6f09ndza6qm1yr7f163211f4l9vjlnhxpxw4s0"))))
988 (build-system python-build-system)
989 (arguments
990 `(;; Three tests fail:
991 ;; - test_read_google
992 ;; - test_read_yahoo
993 ;; - test_month_range_union_tz_dateutil
994 #:tests? #f))
995 (propagated-inputs
996 `(("python-numpy" ,python-numpy)
997 ("python-pytz" ,python-pytz)
998 ("python-dateutil" ,python-dateutil-2)))
999 (native-inputs
1000 `(("python-nose" ,python-nose)
1001 ("python-setuptools" ,python-setuptools)))
1002 (home-page "http://pandas.pydata.org")
1003 (synopsis "Data structures for data analysis, time series, and statistics")
1004 (description
1005 "Pandas is a Python package providing fast, flexible, and expressive data
1006structures designed to make working with structured (tabular,
1007multidimensional, potentially heterogeneous) and time series data both easy
1008and intuitive. It aims to be the fundamental high-level building block for
1009doing practical, real world data analysis in Python.")
1010 (license bsd-3)))
1011
1012(define-public python2-pandas
3cbe7d5e
FB
1013 (let ((pandas (package-with-python2 python-pandas)))
1014 (package (inherit pandas)
1015 (propagated-inputs
1016 `(("python2-numpy" ,python2-numpy)
1017 ,@(alist-delete "python-numpy"
1018 (package-propagated-inputs pandas)))))))
d072efcb 1019
cafc3f5a
EB
1020(define-public python-tzlocal
1021 (package
1022 (name "python-tzlocal")
226d3331 1023 (version "1.2")
cafc3f5a
EB
1024 (source
1025 (origin
1026 (method url-fetch)
226d3331 1027 (uri (pypi-uri "tzlocal" version))
cafc3f5a
EB
1028 (sha256
1029 (base32
226d3331 1030 "12wsw2fl3adrqrwghasld57bhqdrzn0crblqrci1p5acd0ni53s3"))))
cafc3f5a 1031 (build-system python-build-system)
226d3331 1032 (propagated-inputs `(("python-pytz" ,python-pytz)))
cafc3f5a
EB
1033 (home-page "https://github.com/regebro/tzlocal")
1034 (synopsis
35b9e423 1035 "Local timezone information for Python")
cafc3f5a
EB
1036 (description
1037 "Tzlocal returns a tzinfo object with the local timezone information.
1038This module attempts to fix a glaring hole in pytz, that there is no way to
1039get the local timezone information, unless you know the zoneinfo name, and
1040under several distributions that's hard or impossible to figure out.")
1041 (license cc0)))
1042
be7134bf
RW
1043(define-public python-pysam
1044 (package
1045 (name "python-pysam")
1046 (version "0.8.1")
1047 (source
1048 (origin
1049 (method url-fetch)
1050 (uri (string-append "https://pypi.python.org/packages/source/p/pysam/pysam-"
1051 version ".tar.gz"))
1052 (sha256
1053 (base32
1054 "1fb6i6hbpzxaxb62kyyp5alaidwhj40f7c6gwbhr6njzlqd5l459"))))
1055 (build-system python-build-system)
1056 (arguments
1057 `(#:tests? #f ; tests are excluded in the manifest
1058 #:phases
1059 (alist-cons-before
1060 'build 'set-flags
1061 (lambda _
1062 (setenv "LDFLAGS" "-lncurses")
1063 (setenv "CFLAGS" "-D_CURSES_LIB=1"))
1064 %standard-phases)))
1065 (inputs
1066 `(("python-cython" ,python-cython)
1067 ("python-setuptools" ,python-setuptools)
1068 ("ncurses" ,ncurses)
1069 ("zlib" ,zlib)))
1070 (home-page "https://github.com/pysam-developers/pysam")
1071 (synopsis "Python bindings to the SAMtools C API")
1072 (description
1073 "Pysam is a Python module for reading and manipulating files in the
1074SAM/BAM format. Pysam is a lightweight wrapper of the SAMtools C API. It
1075also includes an interface for tabix.")
bd3fa666 1076 (license license:expat)))
be7134bf
RW
1077
1078(define-public python2-pysam
1079 (package-with-python2 python-pysam))
1d08c01f
AE
1080
1081(define-public python2-pysqlite
1082 (package
1083 (name "python2-pysqlite")
fe476868 1084 (version "2.8.1")
1d08c01f
AE
1085 (source
1086 (origin
1087 (method url-fetch)
fe476868 1088 (uri (pypi-uri "pysqlite" version))
1d08c01f
AE
1089 (sha256
1090 (base32
fe476868 1091 "0rm0zqyb363y6wljhfmbxs16jjv7p8nk1d8zgq9sdwj6js7y3jkm"))))
1d08c01f
AE
1092 (build-system python-build-system)
1093 (inputs
1094 `(("sqlite" ,sqlite)))
1095 (arguments
1096 `(#:python ,python-2 ; incompatible with Python 3
1097 #:tests? #f)) ; no test target
fe476868 1098 (home-page "http://github.com/ghaering/pysqlite")
7a03af70 1099 (synopsis "SQLite bindings for Python")
1d08c01f
AE
1100 (description
1101 "Pysqlite provides SQLite bindings for Python that comply to the
1102Database API 2.0T.")
ed0cdf83 1103 (license license:zlib)))
1d08c01f 1104
2875caf5
AE
1105
1106(define-public python2-mechanize
1107 (package
1108 (name "python2-mechanize")
1109 (version "0.2.5")
1110 (source
1111 (origin
1112 (method url-fetch)
1113 (uri (string-append "https://pypi.python.org/packages/source/m/mechanize/mechanize-"
1114 version ".tar.gz"))
1115 (sha256
1116 (base32
1117 "0rj7r166i1dyrq0ihm5rijfmvhs8a04im28lv05c0c3v206v4rrf"))))
1118 (build-system python-build-system)
1119 (inputs
1120 `(("python2-setuptools" ,python2-setuptools)))
1121 (arguments
1122 `(#:python ,python-2 ; apparently incompatible with Python 3
1123 #:tests? #f))
1124 ;; test fails with message
1125 ;; AttributeError: 'module' object has no attribute 'test_pullparser'
1126 ;; (python-3.3.2) or
1127 ;; AttributeError: 'module' object has no attribute 'test_urllib2_localnet'
1128 ;; (python-2.7.5).
1129 ;; The source code is from March 2011 and probably not up-to-date
1130 ;; with respect to python unit tests.
1131 (home-page "http://wwwsearch.sourceforge.net/mechanize/")
1132 (synopsis
1133 "Stateful programmatic web browsing in Python")
1134 (description
1135 "Mechanize implements stateful programmatic web browsing in Python,
1136after Andy Lester’s Perl module WWW::Mechanize.")
166191b3 1137 (license (non-copyleft "file://COPYING"
e881752c 1138 "See COPYING in the distribution."))))
2875caf5 1139
0352532e
AE
1140
1141(define-public python-simplejson
1142 (package
1143 (name "python-simplejson")
1144 (version "3.3.0")
1145 (source
1146 (origin
1147 (method url-fetch)
1148 (uri (string-append "https://pypi.python.org/packages/source/s/simplejson/simplejson-"
1149 version ".tar.gz"))
1150 (sha256
1151 (base32
1152 "07wsry5j44l5zzm74l4j2bvasiq8n5m32f31n2p7c68i5vc6p2ks"))))
1153 (build-system python-build-system)
1154 (home-page "http://simplejson.readthedocs.org/en/latest/")
1155 (synopsis
1156 "Json library for Python")
1157 (description
e881752c
AK
1158 "JSON (JavaScript Object Notation) is a subset of JavaScript
1159syntax (ECMA-262 3rd edition) used as a lightweight data interchange
1160format.
0352532e
AE
1161
1162Simplejson exposes an API familiar to users of the standard library marshal
1163and pickle modules. It is the externally maintained version of the json
1164library contained in Python 2.6, but maintains compatibility with Python 2.5
1165and (currently) has significant performance advantages, even without using
1166the optional C extension for speedups. Simplejson is also supported on
1167Python 3.3+.")
1168 (license x11)))
1169
1170(define-public python2-simplejson
1171 (package-with-python2 python-simplejson))
421a80a2
AE
1172
1173
1174(define-public python2-pyicu
1175 (package
1176 (name "python2-pyicu")
569ac046 1177 (version "1.8")
421a80a2
AE
1178 (source
1179 (origin
1180 (method url-fetch)
1181 (uri (string-append "https://pypi.python.org/packages/source/P/PyICU/PyICU-"
1182 version ".tar.gz"))
1183 (sha256
1184 (base32
569ac046 1185 "1y361x82lnh9k9srmdx3q92z5iag112z7r5fxm0n1sfwb349yjdw"))))
421a80a2
AE
1186 (build-system python-build-system)
1187 (inputs
1188 `(("icu4c" ,icu4c)))
1189 (arguments
1190 `(#:python ,python-2 ; Python 3 works also, but needs special care for
1191 ; linking with libpython3.3m
1192 #:tests? #f)) ; no check target
1193 (home-page "http://pyicu.osafoundation.org/")
9e771e3b 1194 (synopsis "Python extension wrapping the ICU C++ API")
421a80a2
AE
1195 (description
1196 "PyICU is a python extension wrapping the ICU C++ API.")
1197 (license x11)))
cc20a22a
LC
1198
1199(define-public python2-dogtail
1200 ;; Python 2 only, as it leads to "TabError: inconsistent use of tabs and
1201 ;; spaces in indentation" with Python 3.
1202 (package
1203 (name "python2-dogtail")
1204 (version "0.8.2")
1205 (source (origin
1206 (method url-fetch)
1207 (uri (string-append
1208 "https://fedorahosted.org/released/dogtail/dogtail-"
1209 version ".tar.gz"))
1210 (sha256
1211 (base32
1212 "1yc4cg7ip87z15gyd4wy2vzbywrjc52a3m8r8gqy2b50d65llcg1"))))
1213 (build-system python-build-system)
1214 (arguments `(#:python ,python-2
1215 #:tests? #f)) ; invalid command "test"
1216 (home-page "https://fedorahosted.org/dogtail/")
1217 (synopsis "GUI test tool and automation framework written in ​Python")
1218 (description
35b9e423 1219 "Dogtail is a GUI test tool and automation framework written in Python.
cc20a22a
LC
1220It uses Accessibility (a11y) technologies to communicate with desktop
1221applications. dogtail scripts are written in Python and executed like any
1222other Python program.")
1223 (license gpl2+)))
515e6878 1224
011b18c3
LC
1225(define-public python2-empy
1226 (package
1227 (name "python2-empy")
1228 (version "3.3")
1229 (source (origin
1230 (method url-fetch)
1231 (uri (string-append "http://www.alcyone.com/software/empy/empy-"
1232 version ".tar.gz"))
1233 (sha256
1234 (base32
1235 "01g8mmkfnvjdmlhsihwyx56lrg7r5m5d2fg6mnxsvy6g0dnl69f6"))))
1236 (build-system python-build-system)
1237 (arguments
1238 `(#:python ,python-2
1239 #:phases (alist-replace
1240 'check
1241 (lambda _
1242 (zero? (system* "./test.sh")))
1243 %standard-phases)))
1244 (home-page "http://www.alcyone.com/software/empy/")
1245 (synopsis "Templating system for Python")
1246 (description
1247 "EmPy is a system for embedding Python expressions and statements in
1248template text; it takes an EmPy source file, processes it, and produces
1249output. This is accomplished via expansions, which are special signals to the
1cd4027c 1250EmPy system and are set off by a special prefix (by default the at sign, @@).
011b18c3
LC
1251EmPy can expand arbitrary Python expressions and statements in this way, as
1252well as a variety of special forms. Textual data not explicitly delimited in
1253this way is sent unaffected to the output, allowing Python to be used in
1254effect as a markup language. Also supported are callbacks via hooks,
1255recording and playback via diversions, and dynamic, chainable filters. The
1256system is highly configurable via command line options and embedded
1257commands.")
1258 (license lgpl2.1+)))
1259
8deeda0c
LC
1260(define-public python2-element-tree
1261 (package
1262 (name "python2-element-tree")
1263 (version "1.2.6")
1264 (source (origin
1265 (method url-fetch)
1266 (uri (string-append
1267 "http://effbot.org/media/downloads/elementtree-"
1268 version "-20050316.tar.gz"))
1269 (sha256
1270 (base32
1271 "016bphqnlg0l4vslahhw4r0aanw95bpypy65r1i1acyb2wj5z7dj"))))
1272 (build-system python-build-system)
1273 (arguments
1274 `(#:python ,python-2 ; seems to be part of Python 3
1275 #:tests? #f)) ; no 'test' sub-command
1276 (synopsis "Toolkit for XML processing in Python")
1277 (description
1278 "ElementTree is a Python library supporting lightweight XML processing.")
1279 (home-page "http://effbot.org/zone/element-index.htm")
1280 (license (x11-style "http://docs.python.org/2/license.html"
1281 "Like \"CWI LICENSE AGREEMENT FOR PYTHON \
12820.9.0 THROUGH 1.2\"."))))
1283
1284(define-public python2-pybugz
1285 (package
1286 (name "python2-pybugz")
1287 (version "0.6.11")
1288 (source (origin
1289 (method url-fetch)
1290 (uri (string-append
1291 "http://bits.liquidx.net/projects/pybugz/pybugz-"
1292 version ".tar.gz"))
1293 (sha256
1294 (base32
6f194a1e
LC
1295 "17ni00p08gp5lkxlrrcnvi3x09fmajnlbz4da03qcgl9q21ym4jd"))
1296 (patches (map search-patch
1297 (list "pybugz-stty.patch"
1298 "pybugz-encode-error.patch")))))
8deeda0c
LC
1299 (build-system python-build-system)
1300 (arguments
1301 `(#:python ,python-2 ; SyntaxError with Python 3
1302 #:tests? #f)) ; no 'test' sub-command
1303 (inputs `(("element-tree" ,python2-element-tree)))
1304 (synopsis "Python and command-line interface to Bugzilla")
1305 (description
1306 "PyBugz is a Python library and command-line tool to query the Bugzilla
1307bug tracking system. It is meant as an aid to speed up interaction with the
1308bug tracker.")
1309 (home-page "http://www.liquidx.net/pybugz/")
1310 (license gpl2)))
1311
a480bc41
EB
1312(define-public python-enum34
1313 (package
1314 (name "python-enum34")
1315 (version "1.0")
1316 (source
1317 (origin
1318 (method url-fetch)
1319 (uri (string-append "https://pypi.python.org/packages/source/e/"
1320 "enum34/enum34-" version ".tar.gz"))
1321 (sha256
1322 (base32
1323 "0dg6mpg9n4g9diyrbnbb5vd9d1qw9f265zwhknqy0mxh0cvmjjrq"))))
1324 (build-system python-build-system)
1325 (inputs
1326 `(("python-setuptools" ,python-setuptools)))
1327 (arguments
1328 `(#:phases
1329 (alist-replace
1330 'check
1331 (lambda _ (zero? (system* "python" "enum/test_enum.py")))
1332 %standard-phases)))
1333 (home-page "https://pypi.python.org/pypi/enum34")
1334 (synopsis "Backported Python 3.4 Enum")
1335 (description
1336 "Enum34 is the new Python stdlib enum module available in Python 3.4
1337backported for previous versions of Python from 2.4 to 3.3.")
1338 (license bsd-3)))
1339
1340(define-public python-parse-type
1341 (package
1342 (name "python-parse-type")
1343 (version "0.3.4")
1344 (source
1345 (origin
1346 (method url-fetch)
1347 (uri (string-append "https://pypi.python.org/packages/source/p/"
1348 "parse_type/parse_type-" version ".tar.gz"))
1349 (sha256
1350 (base32
1351 "0iv1c34npr4iynwpgv1vkjx9rjd18a85ir8c01gc5f7wp8iv7l1x"))))
1352 (build-system python-build-system)
1353 (inputs
1354 `(("python-setuptools" ,python-setuptools)
1355 ("python-six" ,python-six)
1356 ("python-parse" ,python-parse)
1357 ("python-enum34" ,python-enum34))) ;required for python<3.4
1358 (arguments '(#:tests? #f)) ;TODO: tests require pytest
1359 (home-page "https://github.com/jenisys/parse_type")
1360 (synopsis "Extended parse module")
1361 (description
1362 "Parse_type extends the python parse module.")
1363 (license bsd-3)))
1364
1365(define-public python-parse
1366 (package
1367 (name "python-parse")
1368 (version "1.6.4")
1369 (source
1370 (origin
1371 (method url-fetch)
1372 (uri (string-append "https://pypi.python.org/packages/source/p/"
1373 "parse/parse-" version ".tar.gz"))
1374 (sha256
1375 (base32
1376 "0m30q64l6szl7s9mhvqy64w2fdhdn8lb91fmacjiwbv3479cmk57"))))
1377 (build-system python-build-system)
1378 (arguments
1379 `(#:phases
1380 (alist-replace
1381 'check
1382 (lambda _ (zero? (system* "python" "test_parse.py")))
1383 %standard-phases)))
1384 (home-page "https://github.com/r1chardj0n3s/parse")
1385 (synopsis "Parse strings")
1386 (description
1387 "Parse strings using a specification based on the Python format()
1388syntax.")
1389 (license x11)))
1390
1391
515e6878
LC
1392(define-public scons
1393 (package
1394 (name "scons")
a3f61425 1395 (version "2.3.4")
515e6878
LC
1396 (source (origin
1397 (method url-fetch)
1398 (uri (string-append "mirror://sourceforge/scons/scons-"
1399 version ".tar.gz"))
1400 (sha256
1401 (base32
a3f61425 1402 "0hdlci43wjz8maryj83mz04ir6rwcdrrzpd7cpzvdlzycqhdfmsb"))))
515e6878
LC
1403 (build-system python-build-system)
1404 (arguments
1405 ;; With Python 3.x, fails to build with a syntax error.
1406 `(#:python ,python-2
1407 #:tests? #f)) ; no 'python setup.py test' command
1408 (home-page "http://scons.org/")
1409 (synopsis "Software construction tool written in Python")
1410 (description
1411 "SCons is a software construction tool. Think of SCons as an improved,
1412cross-platform substitute for the classic Make utility with integrated
1413functionality similar to autoconf/automake and compiler caches such as ccache.
1414In short, SCons is an easier, more reliable and faster way to build
1415software.")
1416 (license x11)))
011b18c3 1417
c15a5c0e
DT
1418(define-public python-extras
1419 (package
1420 (name "python-extras")
1421 (version "0.0.3")
1422 (source
1423 (origin
1424 (method url-fetch)
1425 (uri (string-append
1426 "https://pypi.python.org/packages/source/e/extras/extras-"
1427 version ".tar.gz"))
1428 (sha256
1429 (base32
1430 "1h7zx4dfyclalg0fqnfjijpn0f793a9mx8sy3b27gd31nr6dhq3s"))))
1431 (build-system python-build-system)
1432 (inputs
1433 `(("python-setuptools" ,python-setuptools)))
1434 (arguments
1435 ;; error in setup.cfg: command 'test' has no such option 'buffer'
1436 '(#:tests? #f))
1437 (home-page "https://github.com/testing-cabal/extras")
1438 (synopsis "Useful extensions to the Python standard library")
1439 (description
1440 "Extras is a set of extensions to the Python standard library.")
bd3fa666 1441 (license license:expat)))
c15a5c0e
DT
1442
1443(define-public python2-extras
1444 (package-with-python2 python-extras))
1445
56ea0efd
DT
1446(define-public python-mimeparse
1447 (package
1448 (name "python-mimeparse")
1449 (version "0.1.4")
1450 (source
1451 (origin
1452 (method url-fetch)
1453 (uri (string-append
1454 "https://pypi.python.org/packages/source/p/python-mimeparse/python-mimeparse-"
1455 version ".tar.gz"))
1456 (sha256
1457 (base32
1458 "1hyxg09kaj02ri0rmwjqi86wk4nd1akvv7n0dx77azz76wga4s9w"))))
1459 (build-system python-build-system)
1460 (inputs
1461 `(("python-setuptools" ,python-setuptools)))
1462 (arguments
1463 '(#:tests? #f)) ; no setup.py test command
1464 (home-page
1465 "https://github.com/dbtsai/python-mimeparse")
9e771e3b 1466 (synopsis "Python library for parsing MIME types")
56ea0efd
DT
1467 (description
1468 "Mimeparse provides basic functions for parsing MIME type names and
1469matching them against a list of media-ranges.")
bd3fa666 1470 (license license:expat)))
56ea0efd
DT
1471
1472(define-public python2-mimeparse
1473 (package-with-python2 python-mimeparse))
1474
4435427e
DT
1475(define-public python-nose
1476 (package
1477 (name "python-nose")
f7cb9841 1478 (version "1.3.7")
4435427e
DT
1479 (source
1480 (origin
1481 (method url-fetch)
f7cb9841 1482 (uri (pypi-uri "nose" version))
4435427e
DT
1483 (sha256
1484 (base32
f7cb9841 1485 "164a43k7k2wsqqk1s6vavcdamvss4mz0vd6pwzv2h9n8rgwzxgzi"))))
4435427e
DT
1486 (build-system python-build-system)
1487 (inputs
1488 `(("python-setuptools" ,python-setuptools)))
1489 (arguments
1490 '(#:tests? #f)) ; FIXME: test suite fails
1491 (home-page "http://readthedocs.org/docs/nose/")
1492 (synopsis "Python testing library")
1493 (description
1494 "Nose extends the unittest library to make testing easier.")
1495 (license lgpl2.0+)))
1496
1497(define-public python2-nose
1498 (package-with-python2 python-nose))
1499
6cd9c356
DT
1500(define-public python-unittest2
1501 (package
1502 (name "python-unittest2")
1503 (version "0.5.1")
1504 (source
1505 (origin
1506 (method url-fetch)
1507 (uri (string-append
1508 "https://pypi.python.org/packages/source/u/unittest2py3k/unittest2py3k-"
1509 version ".tar.gz"))
1510 (sha256
1511 (base32
1512 "00yl6lskygcrddx5zspkhr0ibgvpknl4678kkm6s626539grq93q"))))
1513 (build-system python-build-system)
1514 (inputs
1515 `(("python-setuptools" ,python-setuptools)))
1516 (home-page "http://pypi.python.org/pypi/unittest2")
1517 (synopsis "Python unit testing library")
1518 (description
1519 "Unittest2 is a replacement for the unittest module in the Python
1520standard library.")
1521 (license psfl)))
1522
1523(define-public python2-unittest2
1524 (package (inherit python-unittest2)
1525 (name "python2-unittest2")
1526 (version "0.5.1")
1527 (source
1528 (origin
1529 (method url-fetch)
1530 (uri (string-append
1531 "https://pypi.python.org/packages/source/u/unittest2/unittest2-"
1532 version ".tar.gz"))
1533 (sha256
1534 (base32
1535 "0wbs4i4x3x7klr3v35ss6p9mcqz883i1xgcpkhvl7n2lyv6yhpda"))))
1536 (inputs
7957fe6c 1537 `(("python2-setuptools" ,python2-setuptools)))
6cd9c356
DT
1538 (arguments
1539 `(#:python ,python-2
1540 #:tests? #f)))) ; no setup.py test command
1541
542ad60f
DT
1542(define-public python-py
1543 (package
1544 (name "python-py")
71c8a804 1545 (version "1.4.31")
542ad60f
DT
1546 (source
1547 (origin
1548 (method url-fetch)
71c8a804 1549 (uri (pypi-uri "py" version))
542ad60f
DT
1550 (sha256
1551 (base32
71c8a804 1552 "0561gz2w3i825gyl42mcq14y3dcgkapfiv5zv9a2bz15qxiijl56"))))
542ad60f
DT
1553 (build-system python-build-system)
1554 (inputs
1555 `(("python-setuptools" ,python-setuptools)))
1556 (home-page "http://pylib.readthedocs.org/")
1557 (synopsis "Python library for parsing, I/O, instrospection, and logging")
1558 (description
1559 "Py is a Python library for file name parsing, .ini file parsing, I/O,
1560code introspection, and logging.")
bd3fa666 1561 (license license:expat)))
542ad60f
DT
1562
1563(define-public python2-py
1564 (package-with-python2 python-py))
1565
855d4761
DT
1566(define-public python-pytest
1567 (package
1568 (name "python-pytest")
1569 (version "2.6.1")
1570 (source
1571 (origin
1572 (method url-fetch)
1573 (uri (string-append
1574 "https://pypi.python.org/packages/source/p/pytest/pytest-"
1575 version ".tar.gz"))
1576 (sha256
1577 (base32
1578 "0g2w4p0n42wvz8rq4k6gnzpkakgz3g8sfanxk8jrsra9675snkcr"))
1579 (modules '((guix build utils)))
1580 (snippet
1581 ;; One of the tests involves the /usr directory, so it fails.
1582 '(substitute* "testing/test_argcomplete.py"
1583 (("def test_remove_dir_prefix\\(self\\):")
1584 "@pytest.mark.xfail\n def test_remove_dir_prefix(self):")))))
1585 (build-system python-build-system)
1586 (inputs
1587 `(("python-setuptools" ,python-setuptools)
1588 ("python-py" ,python-py)
1589 ("python-nose" ,python-nose)
1590 ("python-mock" ,python-mock)))
1591 (home-page "http://pytest.org")
1592 (synopsis "Python testing library")
1593 (description
1594 "Pytest is a testing tool that provides auto-discovery of test modules
1595and functions, detailed info on failing assert statements, modular fixtures,
1596and many external plugins.")
bd3fa666 1597 (license license:expat)))
855d4761
DT
1598
1599(define-public python2-pytest
1600 (package-with-python2 python-pytest))
1601
358c3d61
EF
1602(define-public python-pytest-cov
1603 (package
1604 (name "python-pytest-cov")
1605 (version "2.2.0")
1606 (source
1607 (origin
1608 (method url-fetch)
1609 (uri (pypi-uri "pytest-cov" version))
1610 (sha256
1611 (base32
1612 "1lf9jsmhqk5nc4w3kzwglmdzjvmi7ajvrsnwv826j3bn0wzx8c92"))))
10468636
EF
1613 (build-system python-build-system)
1614 (propagated-inputs
1615 `(("python-coverage" ,python-coverage)
1616 ("python-pytest" ,python-pytest)))
1617 (native-inputs
1618 `(("python-setuptools" ,python-setuptools)))
1619 (home-page "https://github.com/pytest-dev/pytest-cov")
1620 (synopsis "Pytest plugin for measuring coverage")
1621 (description
1622 "Pytest-cov produces coverage reports. It supports centralised testing and
1623distributed testing in both @code{load} and @code{each} modes. It also
1624supports coverage of subprocesses.")
358c3d61
EF
1625 (license license:expat)))
1626
1627(define-public python2-pytest-cov
1628 (package-with-python2 python-pytest-cov))
1629
6784f2e3
RW
1630(define-public python-pytest-runner
1631 (package
1632 (name "python-pytest-runner")
1633 (version "2.6.2")
1634 (source
1635 (origin
1636 (method url-fetch)
1637 (uri (string-append "https://pypi.python.org/packages/source/p/"
1638 "pytest-runner/pytest-runner-"
1639 version ".tar.gz"))
1640 (sha256
1641 (base32
1642 "1nwcqx0l3fv52kv8526wy8ypzghbq96c96di318d98d3wh7a8xg7"))))
1643 (build-system python-build-system)
1644 (arguments
1645 `(#:phases
1646 (modify-phases %standard-phases
1647 ;; The fancy way of setting the version with setuptools_scm does not
1648 ;; seem to work here.
1649 (add-after 'unpack 'set-version
1650 (lambda _
1651 (substitute* "docs/conf.py"
1652 (("version = setuptools_scm\\.get_version\\(root='\\.\\.')")
1653 (string-append "version = \"" ,version "\"")))
1654 #t)))))
1655 (native-inputs
1656 `(("python-pytest" ,python-pytest)
d50d097d 1657 ("python-setuptools" ,python-setuptools)
6784f2e3
RW
1658 ("python-setuptools-scm" ,python-setuptools-scm)))
1659 (home-page "https://bitbucket.org/pytest-dev/pytest-runner")
1660 (synopsis "Invoke py.test as a distutils command")
1661 (description
1662 "This package provides a @command{pytest-runner} command that
1663@file{setup.py} files can use to run tests.")
1664 (license license:expat)))
1665
1666(define-public python2-pytest-runner
1667 (package-with-python2 python-pytest-runner))
1668
84d24017
DT
1669(define-public python-scripttest
1670 (package
1671 (name "python-scripttest")
1672 (version "1.3")
1673 (source
1674 (origin
1675 (method url-fetch)
1676 (uri (string-append
1677 "https://pypi.python.org/packages/source/s/scripttest/scripttest-"
1678 version ".tar.gz"))
1679 (sha256
1680 (base32
1681 "0f4w84k8ck82syys7yg9maz93mqzc8p5ymis941x034v44jzq74m"))))
1682 (build-system python-build-system)
1683 (inputs
1684 `(("python-setuptools" ,python-setuptools)
1685 ("python-pytest" ,python-pytest)))
1686 (home-page "http://pythonpaste.org/scripttest/")
1687 (synopsis "Python library to test command-line scripts")
1688 (description "Scripttest is a Python helper library for testing
1689interactive command-line applications. With it you can run a script in a
1690subprocess and see the output as well as any file modifications.")
bd3fa666 1691 (license license:expat)))
84d24017
DT
1692
1693(define-public python2-scripttest
1694 (package-with-python2 python-scripttest))
1695
d8fa80e1
DT
1696(define-public python-testtools
1697 (package
1698 (name "python-testtools")
1699 (version "1.0.0")
1700 (source
1701 (origin
1702 (method url-fetch)
1703 (uri (string-append
1704 "https://pypi.python.org/packages/source/t/testtools/testtools-"
1705 version ".tar.gz"))
1706 (sha256
1707 (base32
1708 "1dyml28ykpl5jb9khdmcdvhy1cxqingys6qvj2k04fzlaj6z3bbx"))))
1709 (build-system python-build-system)
0e88cbf8
CR
1710 (propagated-inputs
1711 `(("python-mimeparse" ,python-mimeparse)))
d8fa80e1
DT
1712 (inputs
1713 `(("python-setuptools" ,python-setuptools)
d8fa80e1
DT
1714 ("python-extras" ,python-extras)))
1715 (home-page "https://github.com/testing-cabal/testtools")
1716 (synopsis
1717 "Extensions to the Python standard library unit testing framework")
1718 (description
1719 "Testtools extends the Python standard library unit testing framework to
1720provide matchers, more debugging information, and cross-Python
1721compatibility.")
1722 (license psfl)))
1723
1724(define-public python2-testtools
1725 (package-with-python2 python-testtools))
1726
5bf3afea
DT
1727(define-public python-testscenarios
1728 (package
1729 (name "python-testscenarios")
1730 (version "0.4")
1731 (source
1732 (origin
1733 (method url-fetch)
1734 (uri (string-append
1735 "https://pypi.python.org/packages/source/t/testscenarios/testscenarios-"
1736 version ".tar.gz"))
1737 (sha256
1738 (base32
1739 "1671jvrvqlmbnc42j7pc5y6vc37q44aiwrq0zic652pxyy2fxvjg"))))
1740 (build-system python-build-system)
1741 (inputs
1742 `(("python-setuptools" ,python-setuptools)
1743 ("python-testtools" ,python-testtools)
1744 ("python-mimeparse" ,python-mimeparse)))
1745 (home-page "https://launchpad.net/testscenarios")
1746 (synopsis "Pyunit extension for dependency injection")
1747 (description
1748 "Testscenarios provides clean dependency injection for Python unittest
1749style tests.")
1750 (license (list bsd-3 asl2.0)))) ; at the user's option
1751
1752(define-public python2-testscenarios
1753 (package-with-python2 python-testscenarios))
1754
dac79ecc
DT
1755(define-public python-testresources
1756 (package
1757 (name "python-testresources")
1758 (version "0.2.7")
1759 (source
1760 (origin
1761 (method url-fetch)
1762 (uri (string-append
1763 "https://pypi.python.org/packages/source/t/testresources/testresources-"
1764 version ".tar.gz"))
1765 (sha256
1766 (base32
1767 "0cbj3plbllyz42c4b5xxgwaa7mml54lakslrn4kkhinxhdri22md"))))
1768 (build-system python-build-system)
1769 (inputs
1770 `(("python-setuptools" ,python-setuptools)))
1771 (home-page "https://launchpad.net/testresources")
1772 (synopsis
1773 "Pyunit extension for managing test resources")
1774 (description
1775 "Testresources is an extension to Python's unittest to allow declarative
1776use of resources by test cases.")
1777 (license (list bsd-3 asl2.0)))) ; at the user's option
1778
1779(define-public python2-testresources
1780 (package-with-python2 python-testresources))
1781
070ab058
DT
1782(define-public python-subunit
1783 (package
1784 (name "python-subunit")
1785 (version "0.0.21")
1786 (source
1787 (origin
1788 (method url-fetch)
1789 (uri (string-append
1790 "https://pypi.python.org/packages/source/p/python-subunit/python-subunit-"
1791 version ".tar.gz"))
1792 (sha256
1793 (base32
1794 "1nkw9wfbvizmpajbj3in8ns07g7lwkiv8hip14jjlwk3cacls6jv"))))
1795 (build-system python-build-system)
1796 (inputs
1797 `(("python-setuptools" ,python-setuptools)
1798 ("python-testtools" ,python-testtools)
1799 ("python-mimeparse" ,python-mimeparse)
1800 ("python-testscenarios" ,python-testscenarios)))
1801 (home-page "http://launchpad.net/subunit")
1802 (synopsis "Python implementation of the subunit protocol")
1803 (description
1804 "Python-subunit is a Python implementation of the subunit test streaming
1805protocol.")
1806 (license (list bsd-3 asl2.0)))) ; at the user's option
1807
1808(define-public python2-subunit
1809 (package-with-python2 python-subunit))
1810
7787ef76
CR
1811;; Recent versions of python-fixtures need a recent version of python-pbr,
1812;; which needs a recent version of python-fixtures. To fix this circular
1813;; dependency, we keep old versions of python-fixtures and python-pbr to
1814;; bootstrap the whole thing:
1815;; - python-fixtures-0.3.16 is used to build python-pbr-0.11
1816;; - python-pbr-0.11 is used to build python-fixtures
1817;; - python-fixtures is used to build python-pbr
1818(define-public python-fixtures-0.3.16
cd49454b
DT
1819 (package
1820 (name "python-fixtures")
1821 (version "0.3.16")
1822 (source
1823 (origin
1824 (method url-fetch)
1825 (uri (string-append
1826 "https://pypi.python.org/packages/source/f/fixtures/fixtures-"
1827 version ".tar.gz"))
1828 (sha256
1829 (base32
1830 "0x9r2gwilcig5g54k60bxzg96zabizq1855lrprlb4zckalp9asc"))))
1831 (build-system python-build-system)
1832 (inputs
1833 `(("python-setuptools" ,python-setuptools)))
1834 (arguments
1835 '(#:tests? #f)) ; no setup.py test command
1836 (home-page "https://launchpad.net/python-fixtures")
1837 (synopsis "Python test fixture library")
1838 (description
1839 "Fixtures provides a way to create reusable state, useful when writing
1840Python tests.")
1841 (license (list bsd-3 asl2.0)))) ; at user's option
1842
7787ef76
CR
1843(define-public python2-fixtures-0.3.16
1844 (package-with-python2 python-fixtures-0.3.16))
1845
1846(define-public python-pbr-0.11
1847 (package
1848 (name "python-pbr")
1849 (version "0.11.0")
1850 (source
1851 (origin
1852 (method url-fetch)
1853 (uri (string-append
1854 "https://pypi.python.org/packages/source/p/pbr/pbr-"
1855 version ".tar.gz"))
1856 (sha256
1857 (base32
1858 "0v9gb7gyqf7q9s99l0nnjj9ww9b0jvyqlwm4d56pcyinxydddw6p"))))
1859 (build-system python-build-system)
1860 (arguments
1861 `(#:tests? #f)) ;; Most tests seem to use the Internet.
1862 (inputs
1863 `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16)
1864 ("python-pip" ,python-pip)
1865 ("python-setuptools" ,python-setuptools)))
1866 (home-page "https://launchpad.net/pbr")
1867 (synopsis "Change the default behavior of Python’s setuptools")
1868 (description
1869 "Python Build Reasonableness (PBR) is a library that injects some useful
1870and sensible default behaviors into your setuptools run.")
1871 (license asl2.0)))
1872
1873(define-public python2-pbr-0.11
1874 (package-with-python2 python-pbr-0.11))
1875
1876(define-public python-fixtures
1877 (package
1878 (name "python-fixtures")
13fcc6df 1879 (version "1.4.0")
7787ef76
CR
1880 (source
1881 (origin
1882 (method url-fetch)
13fcc6df 1883 (uri (pypi-uri "fixtures" version))
7787ef76
CR
1884 (sha256
1885 (base32
13fcc6df 1886 "0djxvdwm8s60dbfn7bhf40x6g818p3b3mlwijm1c3bqg7msn271y"))))
7787ef76
CR
1887 (build-system python-build-system)
1888 (propagated-inputs
1889 `(("python-six" ,python-six)
1890 ("python-pbr-0.11" ,python-pbr-0.11)))
1891 (inputs
1892 `(("python-pip" ,python-pip)
1893 ("python-setuptools" ,python-setuptools)
1894 ;; Tests
1895 ("python-testtools" ,python-testtools)))
1896 (arguments
1897 '(#:tests? #f)) ; no setup.py test command
1898 (home-page "https://launchpad.net/python-fixtures")
1899 (synopsis "Python test fixture library")
1900 (description
1901 "Fixtures provides a way to create reusable state, useful when writing
1902Python tests.")
1903 (license (list bsd-3 asl2.0)))) ; at user's option
1904
cd49454b
DT
1905(define-public python2-fixtures
1906 (package-with-python2 python-fixtures))
1907
b24a0c00
DT
1908(define-public python-testrepository
1909 (package
1910 (name "python-testrepository")
1911 (version "0.0.20")
1912 (source
1913 (origin
1914 (method url-fetch)
1915 (uri (string-append
1916 "https://pypi.python.org/packages/source/t/testrepository/testrepository-"
1917 version ".tar.gz"))
1918 (sha256
1919 (base32
1920 "1ssqb07c277010i6gzzkbdd46gd9mrj0bi0i8vn560n2k2y4j93m"))))
1921 (build-system python-build-system)
05de40c5 1922 (propagated-inputs
7787ef76 1923 `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16)
05de40c5 1924 ("python-testtools" ,python-testtools)))
b24a0c00
DT
1925 (inputs
1926 `(("python-setuptools" ,python-setuptools)
b24a0c00 1927 ("python-subunit" ,python-subunit)
b24a0c00
DT
1928 ("python-mimeparse" ,python-mimeparse)))
1929 (home-page "https://launchpad.net/testrepository")
1930 (synopsis "Database for Python test results")
1931 (description "Testrepository provides a database of test results which can
1932be used as part of a developer's workflow to check things such as what tests
1933have failed since the last commit or what tests are currently failing.")
1934 (license (list bsd-3 asl2.0)))) ; at user's option
1935
1936(define-public python2-testrepository
1937 (package-with-python2 python-testrepository))
1938
243a009a
DT
1939(define-public python-coverage
1940 (package
1941 (name "python-coverage")
82a3c582 1942 (version "4.0.3")
243a009a
DT
1943 (source
1944 (origin
1945 (method url-fetch)
82a3c582 1946 (uri (pypi-uri "coverage" version))
243a009a
DT
1947 (sha256
1948 (base32
82a3c582 1949 "0qjlja8ny4gcfp8abqfwdrvr8qw9kr69lkja0b4cqqbsdmdjgcc5"))))
243a009a
DT
1950 (build-system python-build-system)
1951 (inputs
1952 `(("python-setuptools" ,python-setuptools)))
1953 (home-page "http://nedbatchelder.com/code/coverage")
1954 (synopsis "Code coverage measurement for Python")
1955 (description
1956 "Coverage measures code coverage, typically during test execution. It
1957uses the code analysis tools and tracing hooks provided in the Python standard
1958library to determine which lines are executable, and which have been
1959executed.")
1960 (license bsd-3)))
1961
1962(define-public python2-coverage
1963 (package-with-python2 python-coverage))
1964
041358fb
DT
1965(define-public python-discover
1966 (package
1967 (name "python-discover")
1968 (version "0.4.0")
1969 (source
1970 (origin
1971 (method url-fetch)
1972 (uri (string-append
1973 "https://pypi.python.org/packages/source/d/discover/discover-"
1974 version ".tar.gz"))
1975 (sha256
1976 (base32
1977 "0y8d0zwiqar51kxj8lzmkvwc3b8kazb04gk5zcb4nzg5k68zmhq5"))))
1978 (build-system python-build-system)
1979 (inputs
1980 `(("python-setuptools" ,python-setuptools)))
1981 (home-page "http://pypi.python.org/pypi/discover/")
1982 (synopsis
1983 "Python test discovery for unittest")
1984 (description
1985 "Discover provides test discovery for unittest, a feature that has been
e881752c 1986backported from Python 2.7 for Python 2.4+.")
041358fb
DT
1987 (license bsd-3)))
1988
1989(define-public python2-discover
1990 (package-with-python2 python-discover))
1991
a480bc41
EB
1992(define-public behave
1993 (package
1994 (name "behave")
1995 (version "1.2.4")
1996 (source (origin
1997 (method url-fetch)
1998 (uri (string-append "https://pypi.python.org/packages/source/b/"
1999 name "/" name "-" version ".tar.gz"))
2000 (sha256
2001 (base32
2002 "1v2rfy8xnf0rk7cj4cgr7lam4015d458i7bg0xqs9czfv6njlm14"))))
2003 (build-system python-build-system)
2004 (inputs
2005 `(("python-setuptools" ,python-setuptools)
2006 ("python-six" ,python-six)
2007 ("python-enum43" ,python-enum34)
2008 ("python-parse" ,python-parse)
2009 ("python-parse-type" ,python-parse-type)))
2010 (arguments `(#:tests? #f)) ;TODO: tests require nose>=1.3 and
2011 ;PyHamcrest>=1.8
2012 (home-page "http://github.com/behave/behave")
2013 (synopsis "Python behavior-driven development")
2014 (description
2015 "Behave is a tool for behavior-driven development in python.
2016Behavior-driven development (or BDD) is an agile software development
2017technique that encourages collaboration between developers, QA and
2018non-technical or business participants in a software project. Behave uses
2019tests written in a natural language style, backed up by Python code.")
2020 (license x11)))
c7303d3c
DT
2021
2022(define-public python-exif-read
2023 (package
2024 (name "python-exif-read")
2a2d0981 2025 (version "2.1.2")
c7303d3c
DT
2026 (source (origin
2027 (method url-fetch)
2a2d0981 2028 (uri (pypi-uri "ExifRead" version))
c7303d3c
DT
2029 (sha256
2030 (base32
2a2d0981 2031 "1b90jf6m9vxh9nanhpyvqdq7hmfx5iggw1l8kq10jrs6xgr49qkr"))))
c7303d3c
DT
2032 (build-system python-build-system)
2033 (inputs
2034 `(("python-setuptools" ,python-setuptools)))
2035 (arguments `(#:tests? #f)) ; no tests
2036 (home-page "https://github.com/ianare/exif-py")
2037 (synopsis "Python library to extract EXIF data from image files")
2038 (description
2039 "ExifRead is a Python library to extract EXIF data from tiff and jpeg
2040files.")
2041 (license bsd-3)))
2042
2043(define-public python2-exif-read
2044 (package-with-python2 python-exif-read))
d5f89b22
DT
2045
2046(define-public python-pyld
2047 (package
2048 (name "python-pyld")
af1ab773 2049 (version "0.6.8")
d5f89b22
DT
2050 (source (origin
2051 (method url-fetch)
af1ab773 2052 (uri (pypi-uri "PyLD" version))
d5f89b22
DT
2053 (sha256
2054 (base32
af1ab773 2055 "0k881ffazpf8q1z8862g4bb3pzwpnz9whrci2mf311mvn1qbyqad"))))
d5f89b22
DT
2056 (build-system python-build-system)
2057 (inputs
2058 `(("python-setuptools" ,python-setuptools)))
2059 (arguments `(#:tests? #f)) ; no tests
2060 (home-page "http://github.com/digitalbazaar/pyld")
2061 (synopsis "Python implementation of the JSON-LD specification")
2062 (description
2063 "PyLD is an implementation of the JSON-LD specification.")
2064 (license bsd-3)))
2065
2066(define-public python2-pyld
2067 (package-with-python2 python-pyld))
3a1f9a68
DT
2068
2069(define-public python-certifi
2070 (package
2071 (name "python-certifi")
9a41f443 2072 (version "2015.11.20.1")
3a1f9a68
DT
2073 (source (origin
2074 (method url-fetch)
9a41f443 2075 (uri (pypi-uri "certifi" version))
3a1f9a68
DT
2076 (sha256
2077 (base32
9a41f443 2078 "05lgwf9rz1kn465azy2bpb3zmpnsn9gkypbhnjlclchv98ssgc1h"))))
3a1f9a68
DT
2079 (build-system python-build-system)
2080 (inputs
2081 `(("python-setuptools" ,python-setuptools)))
2082 (arguments `(#:tests? #f)) ; no tests
2083 (home-page "http://python-requests.org/")
2084 (synopsis "Python CA certificate bundle")
2085 (description
2086 "Certifi is a Python library that contains a CA certificate bundle, which
2087is used by the Requests library to verify HTTPS requests.")
2088 (license asl2.0)))
2089
2090(define-public python2-certifi
2091 (package-with-python2 python-certifi))
e6cfbd36 2092
12c270dd
RW
2093(define-public python-click
2094 (package
2095 (name "python-click")
5bd88cf1 2096 (version "6.2")
12c270dd
RW
2097 (source
2098 (origin
2099 (method url-fetch)
5bd88cf1 2100 (uri (pypi-uri "click" version))
12c270dd 2101 (sha256
5bd88cf1 2102 (base32 "10kavbisnk9m93jl2wi34pw7ryr2qbxshh2cysxwxd7bymqgz87v"))))
12c270dd
RW
2103 (build-system python-build-system)
2104 (native-inputs
2105 `(("python-setuptools" ,python-setuptools)))
2106 (home-page "http://click.pocoo.org")
2107 (synopsis "Command line library for Python")
2108 (description
2109 "Click is a Python package for creating command line interfaces in a
2110composable way with as little code as necessary. Its name stands for
2111\"Command Line Interface Creation Kit\". It's highly configurable but comes
2112with sensible defaults out of the box.")
2113 (license bsd-3)))
2114
2115(define-public python2-click
2116 (package-with-python2 python-click))
2117
addc808d
EF
2118(define-public python-wheel
2119 (package
2120 (name "python-wheel")
2121 (version "0.26.0")
e1ba0749
EF
2122 (source
2123 (origin
2124 (method url-fetch)
2125 (uri (pypi-uri "wheel" version))
2126 (sha256
2127 (base32
2128 "032k1ajijbqnv0z0k88bhf75mdimi18fcmm28mss90610lw3bbga"))))
2129 (build-system python-build-system)
2130 (native-inputs
2131 `(("python-setuptools" ,python-setuptools)
2132 ("python-jsonschema" ,python-jsonschema)
2133 ("python-pytest-cov" ,python-pytest-cov)))
2134 (home-page "https://bitbucket.org/pypa/wheel/")
2135 (synopsis "Format for built Python packages")
2136 (description
2137 "A wheel is a ZIP-format archive with a specially formatted filename and
2138the @code{.whl} extension. It is designed to contain all the files for a PEP
2139376 compatible install in a way that is very close to the on-disk format. Many
2140packages will be properly installed with only the @code{Unpack} step and the
2141unpacked archive preserves enough information to @code{Spread} (copy data and
2142scripts to their final locations) at any later time. Wheel files can be
2143installed with a newer @code{pip} or with wheel's own command line utility.")
2144 (license license:expat)))
addc808d
EF
2145
2146(define-public python2-wheel
264ae686
EF
2147 (let ((wheel (package-with-python2 python-wheel)))
2148 (package (inherit wheel)
2149 (native-inputs
2150 `(("python2-functools32" ,python2-functools32)
2151 ("python2-jsonschema" ,python2-jsonschema)
2152 ,@(alist-delete "python-jsonschema"
2153 (package-native-inputs wheel)))))))
addc808d 2154
ae641128 2155(define-public python-requests
e6cfbd36 2156 (package
ae641128 2157 (name "python-requests")
5d691657 2158 (version "2.8.1")
e6cfbd36
DT
2159 (source (origin
2160 (method url-fetch)
5d691657 2161 (uri (pypi-uri "requests" version))
e6cfbd36
DT
2162 (sha256
2163 (base32
5d691657 2164 "0ny2nr1sqr4hcn3903ghmh7w2yni8shlfv240a8c9p6wyidqvzl4"))))
e6cfbd36 2165 (build-system python-build-system)
5d691657
EF
2166 (native-inputs
2167 `(("python-setuptools" ,python-setuptools)))
2168 (propagated-inputs
2169 `(("python-py" ,python-py)
2170 ("python-pytest" ,python-pytest)
2171 ("python-pytest-cov" ,python-pytest-cov)
2172 ("python-wheel" ,python-wheel)))
e6cfbd36
DT
2173 (home-page "http://python-requests.org/")
2174 (synopsis "Python HTTP library")
2175 (description
2176 "Requests is a Python HTTP client library. It aims to be easier to use
2177than Python’s urllib2 library.")
2178 (license asl2.0)))
864b5211 2179
e9005180
DT
2180;; Some software requires an older version of Requests, notably Docker
2181;; Compose.
2182(define-public python-requests-2.7
2183 (package (inherit python-requests)
2184 (version "2.7.0")
2185 (source (origin
2186 (method url-fetch)
2187 (uri (pypi-uri "requests" version))
2188 (sha256
2189 (base32
2190 "0gdr9dxm24amxpbyqpbh3lbwxc2i42hnqv50sigx568qssv3v2ir"))))))
2191
ae641128 2192(define-public python2-requests
264ae686
EF
2193 (let ((requests (package-with-python2 python-requests)))
2194 (package (inherit requests)
2195 (propagated-inputs
2196 `(("python2-wheel" ,python2-wheel)
2197 ,@(alist-delete "python-wheel"
2198 (package-propagated-inputs requests)))))))
ae641128 2199
ea521b42
DT
2200(define-public python-vcversioner
2201 (package
2202 (name "python-vcversioner")
2203 (version "2.14.0.0")
2204 (source
2205 (origin
2206 (method url-fetch)
2207 (uri (pypi-uri "vcversioner" version))
2208 (sha256
2209 (base32
2210 "11ivq1bm7v0yb4nsfbv9m7g7lyjn112gbvpjnjz8nv1fx633dm5c"))))
2211 (build-system python-build-system)
2212 (inputs
2213 `(("python-setuptools" ,python-setuptools)))
2214 (synopsis "Python library for version number discovery")
2215 (description "Vcversioner is a Python library that inspects tagging
2216information in a variety of version control systems in order to discover
2217version numbers.")
2218 (home-page "https://github.com/habnabit/vcversioner")
2219 (license isc)))
2220
2221(define-public python2-vcversioner
2222 (package-with-python2 python-vcversioner))
ae641128 2223
864b5211
DT
2224(define-public python-jsonschema
2225 (package
2226 (name "python-jsonschema")
b3667afb 2227 (version "2.5.1")
864b5211
DT
2228 (source (origin
2229 (method url-fetch)
2230 (uri
2231 (string-append
2232 "https://pypi.python.org/packages/source/j/jsonschema/jsonschema-"
2233 version ".tar.gz"))
2234 (sha256
2235 (base32
b3667afb 2236 "0hddbqjm4jq63y8jf44nswina1crjs16l9snb6m3vvgyg31klrrn"))))
864b5211
DT
2237 (build-system python-build-system)
2238 (inputs
b3667afb
DT
2239 `(("python-setuptools" ,python-setuptools)
2240 ("python-vcversioner" ,python-vcversioner)))
864b5211
DT
2241 (home-page "http://github.com/Julian/jsonschema")
2242 (synopsis "Implementation of JSON Schema for Python")
2243 (description
2244 "Jsonschema is an implementation of JSON Schema for Python.")
bd3fa666 2245 (license license:expat)))
864b5211
DT
2246
2247(define-public python2-jsonschema
264ae686
EF
2248 (let ((jsonschema (package-with-python2 python-jsonschema)))
2249 (package (inherit jsonschema)
2250 (inputs
2251 `(("python2-functools32" ,python2-functools32)
2252 ,@(package-inputs jsonschema))))))
850189b8
DT
2253
2254(define-public python-unidecode
2255 (package
2256 (name "python-unidecode")
8925d4f3 2257 (version "0.04.18")
850189b8
DT
2258 (source (origin
2259 (method url-fetch)
8925d4f3 2260 (uri (pypi-uri "Unidecode" version))
850189b8
DT
2261 (sha256
2262 (base32
8925d4f3 2263 "12hhblqy1ajvidm38im4171x4arg83pfmziyn53nizp29p3m14gi"))))
850189b8
DT
2264 (build-system python-build-system)
2265 (inputs
2266 `(("python-setuptools" ,python-setuptools)))
2267 (home-page "https://pypi.python.org/pypi/Unidecode")
2268 (synopsis "ASCII transliterations of Unicode text")
2269 (description
2270 "Unidecode provides ASCII transliterations of Unicode text. Unidecode is
2271useful when integrating with legacy code that doesn't support Unicode, or for
2272ease of entry of non-Roman names on a US keyboard, or when constructing ASCII
2273machine identifiers from human-readable Unicode strings that should still be
2274somewhat intelligeble.")
2275 (license gpl2+)))
2276
2277(define-public python2-unidecode
2278 (package-with-python2 python-unidecode))
6d45fef4
DT
2279
2280(define-public python-pyjwt
2281 (package
2282 (name "python-pyjwt")
eb31d4b4 2283 (version "1.4.0")
6d45fef4
DT
2284 (source
2285 (origin
2286 (method url-fetch)
eb31d4b4 2287 (uri (pypi-uri "PyJWT" version))
6d45fef4
DT
2288 (sha256
2289 (base32
eb31d4b4 2290 "1556v2jppd8mjkkj66pxb5rcazm35jq81r233mdl8hfmz9n3icp1"))))
6d45fef4 2291 (build-system python-build-system)
eb31d4b4
EF
2292 (native-inputs
2293 `(("python-setuptools" ,python-setuptools)
2294 ("python-pytest-runner" ,python-pytest-runner)))
6d45fef4
DT
2295 (arguments
2296 '(#:tests? #f)) ; test suite doesn't work
2297 (home-page "http://github.com/progrium/pyjwt")
2298 (synopsis "JSON Web Token implementation in Python")
2299 (description
2300 "PyJWT is a JSON Web Token implementation written in Python.")
bd3fa666 2301 (license license:expat)))
6d45fef4
DT
2302
2303(define-public python2-pyjwt
2304 (package-with-python2 python-pyjwt))
2305
2cec1f6f
DT
2306(define-public python-oauthlib
2307 (package
2308 (name "python-oauthlib")
bde2171d 2309 (version "1.0.3")
2cec1f6f
DT
2310 (source (origin
2311 (method url-fetch)
bde2171d 2312 (uri (pypi-uri "oauthlib" version))
2cec1f6f
DT
2313 (sha256
2314 (base32
bde2171d 2315 "1bfrj70vdjxjw74khbyh6f0dksv7p5rh2346jnlrffyacd3gwjzg"))))
2cec1f6f 2316 (build-system python-build-system)
bde2171d 2317 (native-inputs
2cec1f6f 2318 `(("python-setuptools" ,python-setuptools)
bde2171d 2319 ("python-coverage", python-coverage)
2cec1f6f
DT
2320 ("python-nose" ,python-nose)
2321 ("python-mock" ,python-mock)))
bde2171d
EF
2322 (inputs
2323 `(("python-blinker" ,python-blinker)
2324 ("python-cryptography" ,python-cryptography)
2325 ("python-pyjwt" ,python-pyjwt)))
2cec1f6f
DT
2326 (home-page "https://github.com/idan/oauthlib")
2327 (synopsis "OAuth implementation for Python")
2328 (description
2329 "Oauthlib is a generic, spec-compliant, thorough implementation of the
2330OAuth request-signing logic.")
2331 (license bsd-3)))
2332
2333(define-public python2-oauthlib
2334 (let ((base (package-with-python2 python-oauthlib)))
2335 (package
2336 (inherit base)
2cec1f6f 2337 (inputs
0066de6f
EF
2338 `(("python2-unittest2" ,python2-unittest2)
2339 ("python2-cryptography" ,python2-cryptography)
2340 ,@(alist-delete "python-cryptography"
2341 (package-inputs base)))))))
ec5dbb5c
DT
2342
2343(define-public python-itsdangerous
2344 (package
2345 (name "python-itsdangerous")
2346 (version "0.24")
2347 (source
2348 (origin
2349 (method url-fetch)
2350 (uri (string-append
2351 "https://pypi.python.org/packages/source/i/itsdangerous/itsdangerous-"
2352 version ".tar.gz"))
2353 (sha256
2354 (base32
2355 "06856q6x675ly542ig0plbqcyab6ksfzijlyf1hzhgg3sgwgrcyb"))))
2356 (build-system python-build-system)
2357 (inputs
2358 `(("python-setuptools" ,python-setuptools)))
2359 (home-page "http://github.com/mitsuhiko/itsdangerous")
2360 (synopsis "Python library for passing data to/from untrusted environments")
2361 (description
2362 "Itsdangerous provides various helpers to pass trusted data to untrusted
2363environments and back.")
2364 (license bsd-3)))
2365
2366(define-public python2-itsdangerous
2367 (package-with-python2 python-itsdangerous))
5731cae3 2368
8d12be1e
RW
2369(define-public python-pyyaml
2370 (package
2371 (name "python-pyyaml")
2372 (version "3.11")
2373 (source
2374 (origin
2375 (method url-fetch)
2376 (uri (string-append
2377 "https://pypi.python.org/packages/source/P/PyYAML/PyYAML-"
2378 version ".tar.gz"))
2379 (sha256
2380 (base32
2381 "1s26125vfnskng58ym37xhwv8v0mm95b2cwbjfag8prfhy596v63"))))
2382 (build-system python-build-system)
2383 (inputs
2384 `(("libyaml" ,libyaml)))
2385 (native-inputs
2386 `(("python-setuptools" ,python-setuptools)))
2387 (home-page "http://pyyaml.org/wiki/PyYAML")
2388 (synopsis "YAML parser and emitter for Python")
2389 (description
2390 "PyYAML is a YAML parser and emitter for Python. PyYAML features a
2391complete YAML 1.1 parser, Unicode support, pickle support, capable extension
2392API, and sensible error messages. PyYAML supports standard YAML tags and
2393provides Python-specific tags that allow to represent an arbitrary Python
2394object.")
2395 (license license:expat)))
2396
2397(define-public python2-pyyaml
2398 (package-with-python2 python-pyyaml))
2399
5731cae3
DT
2400(define-public python-virtualenv
2401 (package
2402 (name "python-virtualenv")
17804240 2403 (version "13.1.2")
5731cae3
DT
2404 (source
2405 (origin
2406 (method url-fetch)
17804240 2407 (uri (pypi-uri "virtualenv" version))
5731cae3
DT
2408 (sha256
2409 (base32
17804240 2410 "1p732accxwqfjbdna39k8w8lp9gyw91vr4kzkhm8mgfxikqqxg5a"))))
5731cae3 2411 (build-system python-build-system)
17804240
EF
2412 (arguments
2413 `(#:phases
2414 (modify-phases %standard-phases
2415 (replace 'check
2416 (lambda _ (zero? (system* "py.test")))))))
5731cae3
DT
2417 (inputs
2418 `(("python-setuptools" ,python-setuptools)
2419 ("python-mock" ,python-mock)
17804240 2420 ("python-pytest" ,python-pytest)))
5731cae3
DT
2421 (home-page "https://virtualenv.pypa.io/")
2422 (synopsis "Virtual Python environment builder")
2423 (description
2424 "Virtualenv is a tool to create isolated Python environments.")
bd3fa666 2425 (license license:expat)))
5731cae3
DT
2426
2427(define-public python2-virtualenv
2428 (package-with-python2 python-virtualenv))
8176d4d5
DT
2429
2430(define-public python-markupsafe
2431 (package
2432 (name "python-markupsafe")
2433 (version "0.23")
2434 (source
2435 (origin
2436 (method url-fetch)
2437 (uri (string-append
2438 "https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-"
2439 version ".tar.gz"))
2440 (sha256
2441 (base32
2442 "1hvip33wva3fnmvfp9x5klqri7hpl1hkgqmjbss18nmrb7zimv54"))))
2443 (build-system python-build-system)
2444 (inputs
2445 `(("python-setuptools" ,python-setuptools)))
2446 (home-page "http://github.com/mitsuhiko/markupsafe")
2447 (synopsis "XML/HTML/XHTML markup safe string implementation for Python")
2448 (description
2449 "Markupsafe provides an XML/HTML/XHTML markup safe string implementation
2450for Python.")
2451 (license bsd-3)))
2452
2453(define-public python2-markupsafe
2454 (package-with-python2 python-markupsafe))
fe34f0d1
DT
2455
2456(define-public python-jinja2
2457 (package
2458 (name "python-jinja2")
e98149b3 2459 (version "2.8")
fe34f0d1
DT
2460 (source
2461 (origin
2462 (method url-fetch)
e98149b3 2463 (uri (pypi-uri "Jinja2" version))
fe34f0d1
DT
2464 (sha256
2465 (base32
e98149b3 2466 "1x0v41lp5m1pjix3l46zx02b7lqp2hflgpnxwkywxynvi3zz47xw"))))
fe34f0d1
DT
2467 (build-system python-build-system)
2468 (inputs
2469 `(("python-setuptools" ,python-setuptools)
2470 ("python-markupsafe" ,python-markupsafe)))
2471 (home-page "http://jinja.pocoo.org/")
2472 (synopsis "Python template engine")
2473 (description
2474 "Jinja2 is a small but fast and easy to use stand-alone template engine
2475written in pure Python.")
2476 (license bsd-3)))
2477
2478(define-public python2-jinja2
2479 (package-with-python2 python-jinja2))
3580ab8b 2480
f7d17ac7
EE
2481(define-public python-pystache
2482 (package
2483 (name "python-pystache")
2484 (version "0.5.4")
2485 (source (origin
2486 (method url-fetch)
2487 (uri (pypi-uri "pystache" version))
2488 (sha256
2489 (base32
2490 "0nmqsfmiw4arjxqkmf9z66ml950pcdjk6aq4gin4sywmzdjw5fzp"))))
2491 (build-system python-build-system)
2492 (native-inputs
2493 `(("python-setuptools" ,python-setuptools)))
2494 (home-page "http://defunkt.io/pystache/")
2495 (synopsis "Python logic-less template engine")
2496 (description
2497 "Pystache is a Python implementation of the framework agnostic,
2498logic-free templating system Mustache.")
2499 (license license:expat)))
2500
2501(define-public python2-pystache
2502 (package-with-python2 python-pystache))
2503
1285119b
RW
2504(define-public python-joblib
2505 (package
2506 (name "python-joblib")
2507 (version "0.9.0b4")
2508 (source (origin
2509 (method url-fetch)
2510 (uri (string-append "https://pypi.python.org/packages/source/"
2511 "j/joblib/joblib-" version ".tar.gz"))
2512 (sha256
2513 (base32
2514 "1dvw3f8jgj6h0fxkghbgyclvdzc7l0ig7n0vis70awb5kczb9bs3"))))
2515 (build-system python-build-system)
2516 (native-inputs
2517 `(("python-setuptools" ,python-setuptools)
2518 ("python-nose" ,python-nose)))
2519 (home-page "http://pythonhosted.org/joblib/")
2520 (synopsis "Using Python functions as pipeline jobs")
2521 (description
2522 "Joblib is a set of tools to provide lightweight pipelining in Python.
2523In particular, joblib offers: transparent disk-caching of the output values
2524and lazy re-evaluation (memoize pattern), easy simple parallel computing
2525logging and tracing of the execution.")
2526 (license bsd-3)))
2527
2528(define-public python2-joblib
2529 (package-with-python2 python-joblib))
2530
3580ab8b
DT
2531(define-public python-docutils
2532 (package
2533 (name "python-docutils")
2534 (version "0.12")
2535 (source
2536 (origin
2537 (method url-fetch)
2538 (uri (string-append
2539 "https://pypi.python.org/packages/source/d/docutils/docutils-"
2540 version ".tar.gz"))
2541 (sha256
2542 (base32
2543 "1ylnjnw1x4b2y7blr6x35ncdzn69k253kw4cdkv6asdb21w73ny7"))))
2544 (build-system python-build-system)
2545 (inputs
2546 `(("python-setuptools" ,python-setuptools)))
2547 (arguments
2548 '(#:tests? #f)) ; no setup.py test command
2549 (home-page "http://docutils.sourceforge.net/")
2550 (synopsis "Python Documentation Utilities")
2551 (description
2552 "Docutils is a modular system for processing documentation into useful
2553formats, such as HTML, XML, and LaTeX. For input Docutils supports
2554reStructuredText.")
2555 ;; Most of the source code is public domain, but some source files are
2556 ;; licensed under the PFSL, BSD 2-clause, and GPLv3+ licenses.
2557 (license (list public-domain psfl bsd-2 gpl3+))))
2558
2559(define-public python2-docutils
2560 (package-with-python2 python-docutils))
fb35b7c0
DT
2561
2562(define-public python-pygments
2563 (package
2564 (name "python-pygments")
9f442285 2565 (version "2.0.2")
fb35b7c0
DT
2566 (source
2567 (origin
2568 (method url-fetch)
9f442285 2569 (uri (pypi-uri "Pygments" version))
fb35b7c0
DT
2570 (sha256
2571 (base32
9f442285 2572 "0lagrwifsgn0s8bzqahpr87p7gd38xja8f06akscinp6hj89283k"))))
fb35b7c0
DT
2573 (build-system python-build-system)
2574 (inputs
2575 `(("python-setuptools" ,python-setuptools)))
2576 (home-page "http://pygments.org/")
2577 (synopsis "Syntax highlighting")
2578 (description
2579 "Pygments is a syntax highlighting package written in Python.")
2580 (license bsd-2)))
2581
2582(define-public python2-pygments
2583 (package-with-python2 python-pygments))
9dd6078d
DT
2584
2585(define-public python-sphinx
2586 (package
2587 (name "python-sphinx")
2588 (version "1.2.3")
2589 (source
2590 (origin
2591 (method url-fetch)
2592 (uri (string-append
2593 "https://pypi.python.org/packages/source/S/Sphinx/Sphinx-"
2594 version ".tar.gz"))
2595 (sha256
2596 (base32
2597 "011xizm3jnmf4cvs5i6kgf6c5nn046h79i8j0vd0f27yw9j3p4wl"))))
2598 (build-system python-build-system)
2599 (inputs
2600 `(("python-setuptools" ,python-setuptools)
2601 ("python-jinja2" ,python-jinja2)
2602 ("python-docutils" ,python-docutils)
2603 ("python-pygments" ,python-pygments)))
2604 (home-page "http://sphinx-doc.org/")
2605 (synopsis "Python documentation generator")
2606 (description "Sphinx is a tool that makes it easy to create documentation
2607for Python projects or other documents consisting of multiple reStructuredText
2608sources.")
2609 (license bsd-3)))
2610
2611(define-public python2-sphinx
2612 (package-with-python2 python-sphinx))
6888830b 2613
ad320b20
RW
2614(define-public python-sphinx-rtd-theme
2615 (package
2616 (name "python-sphinx-rtd-theme")
2617 (version "0.1.6")
2618 (source
2619 (origin
2620 (method url-fetch)
2621 (uri (string-append "https://pypi.python.org/packages/source/s/"
2622 "sphinx_rtd_theme/sphinx_rtd_theme-"
2623 version ".tar.gz"))
2624 (sha256
2625 (base32
2626 "19nw3rn7awplcdrz63kg1njqwkbymfg9lwn7l2grhdyhyr2gaa8g"))))
2627 (build-system python-build-system)
2628 (arguments
2629 `(;; With standard flags, the install phase attempts to create a zip'd
2630 ;; egg file, and fails with an error: 'ZIP does not support timestamps
2631 ;; before 1980'
2632 #:configure-flags '("--single-version-externally-managed"
2633 "--record=sphinx-rtd-theme.txt")))
2634 (native-inputs
2635 `(("python-setuptools" ,python-setuptools)))
2636 (inputs
2637 `(("python-docutils" ,python-docutils)
2638 ("python-sphinx" ,python-sphinx)))
2639 (home-page "https://github.com/snide/sphinx_rtd_theme/")
2640 (synopsis "ReadTheDocs.org theme for Sphinx")
2641 (description "A theme for Sphinx used by ReadTheDocs.org.")
bd3fa666 2642 (license license:expat)))
ad320b20
RW
2643
2644(define-public python2-sphinx-rtd-theme
2645 (package-with-python2 python-sphinx-rtd-theme))
2646
f4de5b3b
CAW
2647(define-public python-feedgenerator
2648 (package
2649 (name "python-feedgenerator")
2650 (version "20150710.97185b7")
2651 (source
2652 ;; Using the git checkout for now because license file not added till
2653 ;; https://github.com/dmdm/feedgenerator-py3k/commit/97185b7566c240c4bf5ed80db7d6c271204dab39
2654 (origin
2655 (method git-fetch)
2656 (uri (git-reference
2657 (url "https://github.com/dmdm/feedgenerator-py3k.git")
2658 (commit "97185b7566c240c4bf5ed80db7d6c271204dab39")))
2659 (sha256
2660 (base32
2661 "0dbd6apij5j1923ib905x0srgcyls4wlabqlwp4dzkwmksvnrr2a"))))
2662 (arguments
2663 `(;; With standard flags, the install phase attempts to create a zip'd
2664 ;; egg file, and fails with an error: 'ZIP does not support timestamps
2665 ;; before 1980'
2666 #:configure-flags '("--single-version-externally-managed"
2667 "--record=feedgenerator.txt")))
2668 (build-system python-build-system)
2669 (inputs
2670 `(("python-setuptools" ,python-setuptools)
2671 ("python-pytz" ,python-pytz)
2672 ("python-six" ,python-six)))
2673 (home-page
2674 "https://github.com/dmdm/feedgenerator-py3k.git")
2675 (synopsis
2676 "Standalone version of Django's Atom/RSS feed generator")
2677 (description
2678 "Feedgenerator-py3k is a standalone version of Django's feedgenerator,
2679which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
2680 (license bsd-3)))
2681
2682(define-public python2-feedgenerator
2683 (package-with-python2 python-feedgenerator))
2684
59ad30e3
CAW
2685(define-public python-blinker
2686 (package
2687 (name "python-blinker")
7fb9ff4d 2688 (version "1.4")
59ad30e3
CAW
2689 (source
2690 (origin
2691 (method url-fetch)
7fb9ff4d 2692 (uri (pypi-uri "blinker" version))
59ad30e3
CAW
2693 (sha256
2694 (base32
7fb9ff4d 2695 "1dpq0vb01p36jjwbhhd08ylvrnyvcc82yxx3mwjx6awrycjyw6j7"))))
59ad30e3
CAW
2696 (build-system python-build-system)
2697 (native-inputs
2698 `(("python-setuptools" ,python-setuptools)))
2699 ;; No "test" command supplied to setuptools, so unless there's another way
2700 ;; to run tests, we're skipping them!
2701 (arguments '(#:tests? #f))
2702 (home-page "http://pythonhosted.org/blinker/")
2703 (synopsis "Fast, simple object-to-object and broadcast signaling")
2704 (description
2705 "Blinker provides a fast dispatching system that allows any number of
2706interested parties to subscribe to events, or \"signals\".")
2707 (license license:expat)))
2708
2709(define-public python2-blinker
2710 (package-with-python2 python-blinker))
2711
b8050e71
CAW
2712(define-public pelican
2713 (package
2714 (name "pelican")
11f97c27 2715 (version "3.6.3")
b8050e71
CAW
2716 (source
2717 (origin
2718 (method url-fetch)
11f97c27 2719 (uri (pypi-uri "pelican" version))
b8050e71
CAW
2720 (sha256
2721 (base32
11f97c27 2722 "1hn94rb4q3zmcq16in055xikal4dba5hfx3zznq7warllcgc9f8k"))))
b8050e71
CAW
2723 (build-system python-build-system)
2724 (native-inputs
2725 `(("python-setuptools" ,python-setuptools)))
2726 (propagated-inputs
2727 `(("python-feedgenerator" ,python-feedgenerator)
2728 ("python-jinja2" ,python-jinja2)
2729 ("python-pygments" ,python-pygments)
2730 ("python-docutils" ,python-docutils)
2731 ("python-pytz" ,python-pytz)
2732 ("python-blinker" ,python-blinker)
2733 ("python-unidecode" ,python-unidecode)
2734 ("python-six" ,python-six)
2735 ("python-dateutil-2" ,python-dateutil-2)))
2736 (home-page "http://getpelican.com/")
2737 (arguments
2738 `(;; XXX Requires a lot more packages to do unit tests :P
2739 #:tests? #f
2740 #:phases (modify-phases %standard-phases
2741 (add-before
2742 'install 'adjust-requires
2743 ;; Since feedgenerator is installed from git, it doesn't
2744 ;; conform to the version requirements.
2745 ;;
2746 ;; We *do have* "feedgenerator >= 1.6", but strip off the
2747 ;; version requirement so setuptools doesn't get confused.
2748 (lambda _
2749 (substitute* "setup.py"
2750 (("['\"]feedgenerator.*?['\"]")
2751 "'feedgenerator'")))))))
2752 (synopsis "Python-based static site publishing system")
2753 (description
2754 "Pelican is a tool to generate a static blog from reStructuredText,
2755Markdown input files, and more. Pelican uses Jinja2 for templating
2756and is very extensible.")
2757 (license agpl3+)))
2758
240ca4aa
RW
2759(define-public python-scikit-learn
2760 (package
2761 (name "python-scikit-learn")
be0a4c26 2762 (version "0.16.1")
240ca4aa
RW
2763 (source
2764 (origin
2765 (method url-fetch)
2766 (uri (string-append
2767 "https://github.com/scikit-learn/scikit-learn/archive/"
2768 version ".tar.gz"))
2769 (sha256
2770 (base32
be0a4c26 2771 "140skabifgc7lvvj873pnzlwx0ni6q8qkrsyad2ccjb3h8rxzkih"))))
240ca4aa
RW
2772 (build-system python-build-system)
2773 (arguments
2774 `(#:phases
2775 (alist-cons-before
2f6b3d2e
RW
2776 'check 'set-HOME
2777 ;; some tests require access to "$HOME"
2778 (lambda _ (setenv "HOME" "/tmp"))
2779 ;; Tests can only be run after the library has been installed and not
2780 ;; within the source directory.
2781 (alist-cons-after
2782 'install 'check
2783 (lambda _
2784 (with-directory-excursion "/tmp"
2785 ;; With Python 3 one test of 3334 fails
2786 ;; (sklearn.tests.test_common.test_transformers); see
2787 ;; https://github.com/scikit-learn/scikit-learn/issues/3693
2788 (system* "nosetests" "-v" "sklearn")))
2789 (alist-delete 'check %standard-phases)))))
240ca4aa 2790 (inputs
2f6b3d2e 2791 `(("openblas" ,openblas)
240ca4aa
RW
2792 ("python-nose" ,python-nose)))
2793 (propagated-inputs
2794 `(("python-numpy" ,python-numpy)
2795 ("python-scipy" ,python-scipy)))
2796 (home-page "http://scikit-learn.org/")
2797 (synopsis "Machine Learning in Python")
2798 (description
2799 "Scikit-learn provides simple and efficient tools for data
2800mining and data analysis.")
2801 (license bsd-3)))
2802
2803(define-public python2-scikit-learn
2804 (let ((scikit (package-with-python2 python-scikit-learn)))
2805 (package (inherit scikit)
2806 (propagated-inputs
2807 `(("python2-numpy" ,python2-numpy)
2808 ("python2-scipy" ,python2-scipy)
2809 ,@(alist-delete
2810 "python-numpy"
2811 (alist-delete
2812 "python-scipy" (package-propagated-inputs scikit))))))))
2813
12f8f9bb
RW
2814(define-public python-scikit-image
2815 (package
2816 (name "python-scikit-image")
2817 (version "0.11.3")
2818 (source
2819 (origin
2820 (method url-fetch)
2821 (uri (string-append
2822 "https://pypi.python.org/packages/source/s/scikit-image/scikit-image-"
2823 version ".tar.gz"))
2824 (sha256
2825 (base32 "0jz416fqvpahqyffw8plmszzfj669w8wvf3y9clnr5lr6a7md3kn"))))
2826 (build-system python-build-system)
2827 (propagated-inputs
2828 `(("python-matplotlib" ,python-matplotlib)
2829 ("python-networkx" ,python-networkx)
2830 ("python-numpy" ,python-numpy)
2831 ("python-scipy" ,python-scipy)
2832 ("python-six" ,python-six)
2833 ("python-pillow" ,python-pillow)))
2834 (native-inputs
2835 `(("python-cython" ,python-cython)
2836 ("python-setuptools" ,python-setuptools)))
2837 (home-page "http://scikit-image.org/")
2838 (synopsis "Image processing in Python")
2839 (description
e881752c 2840 "Scikit-image is a collection of algorithms for image processing.")
12f8f9bb
RW
2841 (license bsd-3)))
2842
2843(define-public python2-scikit-image
2844 (let ((scikit-image (package-with-python2 python-scikit-image)))
2845 (package (inherit scikit-image)
2846 (native-inputs
2847 `(("python2-mock" ,python2-mock)
2848 ,@(package-native-inputs scikit-image)))
2849 (propagated-inputs
2850 `(("python2-pytz" ,python2-pytz)
d9bc0bf8
FB
2851 ("python2-matplotlib" ,python2-matplotlib)
2852 ("python2-numpy" ,python2-numpy)
2853 ("python2-scipy" ,python2-scipy)
2854 ,@(fold alist-delete (package-propagated-inputs scikit-image)
2855 '("python-matplotlib" "python-numpy" "python-scipy")))))))
12f8f9bb 2856
5394a6a6
RW
2857(define-public python-redis
2858 (package
2859 (name "python-redis")
2860 (version "2.10.3")
2861 (source
2862 (origin
2863 (method url-fetch)
2864 (uri (string-append
2865 "https://pypi.python.org/packages/source/r/redis/redis-"
2866 version ".tar.gz"))
2867 (sha256
2868 (base32 "1701qjwn4n05q90fdg4bsg96s27xf5s4hsb4gxhv3xk052q3gyx4"))))
2869 (build-system python-build-system)
2870 ;; Tests require a running Redis server
2871 (arguments '(#:tests? #f))
2872 (native-inputs
2873 `(("python-setuptools" ,python-setuptools)
2874 ("python-pytest" ,python-pytest)))
2875 (home-page "https://github.com/andymccurdy/redis-py")
2876 (synopsis "Redis Python client")
2877 (description
2878 "This package provides a Python interface to the Redis key-value store.")
2879 (license license:expat)))
2880
2881(define-public python2-redis
2882 (package-with-python2 python-redis))
2883
748cef5b
RW
2884(define-public python-rq
2885 (package
2886 (name "python-rq")
2887 (version "0.5.2")
2888 (source
2889 (origin
2890 (method url-fetch)
2891 (uri (string-append
2892 "https://pypi.python.org/packages/source/r/rq/rq-"
2893 version ".tar.gz"))
2894 (sha256
2895 (base32 "0b0z5hn8wkfg300hx7816csgv3bcfamlr29fi3yzgqmpqxwj3fix"))))
2896 (build-system python-build-system)
2897 (propagated-inputs
2898 `(("python-click" ,python-click)
2899 ("python-redis" ,python-redis)))
2900 (native-inputs
2901 `(("python-setuptools" ,python-setuptools)))
2902 (home-page "http://python-rq.org/")
2903 (synopsis "Simple job queues for Python")
2904 (description
2905 "RQ (Redis Queue) is a simple Python library for queueing jobs and
2906processing them in the background with workers. It is backed by Redis and it
2907is designed to have a low barrier to entry.")
2908 (license bsd-2)))
2909
2910(define-public python2-rq
2911 (package-with-python2 python-rq))
2912
6888830b
FB
2913(define-public python-cython
2914 (package
2915 (name "python-cython")
56918e26 2916 (version "0.23.4")
6888830b
FB
2917 (source
2918 (origin
2919 (method url-fetch)
56918e26 2920 (uri (pypi-uri "Cython" version))
6888830b
FB
2921 (sha256
2922 (base32
56918e26 2923 "13hdffhd37mx3gjby018xl179jaj957fy7kzi01crmimxvn2zi7y"))))
6888830b
FB
2924 (build-system python-build-system)
2925 ;; we need the full python package and not just the python-wrapper
2926 ;; because we need libpython3.3m.so
2927 (inputs
2928 `(("python" ,python)))
2929 (arguments
2930 `(#:phases
2931 (alist-cons-before
2932 'check 'set-HOME
2933 ;; some tests require access to "$HOME/.cython"
2934 (lambda* _ (setenv "HOME" "/tmp"))
2935 (alist-replace
2936 'check
2937 (lambda _ (zero? (system* "python" "runtests.py" "-vv")))
2938 %standard-phases))))
2939 (home-page "http://cython.org/")
2940 (synopsis "C extensions for Python")
2941 (description "Cython is an optimising static compiler for both the Python
2942programming language and the extended Cython programming language. It makes
2943writing C extensions for Python as easy as Python itself.")
48b311b1
LC
2944 (license asl2.0)
2945 (properties `((python2-variant . ,(delay python2-cython))))))
6888830b
FB
2946
2947(define-public python2-cython
48b311b1
LC
2948 (package (inherit (package-with-python2
2949 (strip-python2-variant python-cython)))
6888830b
FB
2950 (name "python2-cython")
2951 (inputs
2952 `(("python-2" ,python-2))))) ; this is not automatically changed
0da98533
FB
2953
2954;; This version of numpy is missing the documentation and is only used to
2955;; build matplotlib which is required to build numpy's documentation.
2956(define python-numpy-bootstrap
2957 (package
2958 (name "python-numpy-bootstrap")
2959 (version "1.9.1")
2960 (source
2961 (origin
2962 (method url-fetch)
2963 (uri (string-append "mirror://sourceforge/numpy"
2964 "/numpy-" version ".tar.gz"))
2965 (sha256
2966 (base32
2967 "070ybfvpgfmiz2hs94x445hvkh9dh52nyi0m8jp5kdihgvhbnx80"))))
2968 (build-system python-build-system)
2969 (inputs
2970 `(("python-nose" ,python-nose)
cba256f8
RW
2971 ("openblas" ,openblas)
2972 ("lapack" ,lapack)))
0da98533 2973 (native-inputs
19afbea1 2974 `(("gfortran" ,gfortran)))
0da98533
FB
2975 (arguments
2976 `(#:phases
2977 (alist-cons-before
2978 'build 'set-environment-variables
2979 (lambda* (#:key inputs #:allow-other-keys)
dbdfe515
RW
2980 (call-with-output-file "site.cfg"
2981 (lambda (port)
cba256f8
RW
2982 (format port
2983 "[openblas]
dbdfe515
RW
2984libraries = openblas
2985library_dirs = ~a/lib
2986include_dirs = ~a/include
cba256f8
RW
2987
2988[lapack]
2989lapack_libs = lapack
2990library_dirs = ~a/lib
2991include_dirs = ~a/include
2992"
2993 (assoc-ref inputs "openblas")
2994 (assoc-ref inputs "openblas")
2995 (assoc-ref inputs "lapack")
2996 (assoc-ref inputs "lapack"))))
dbdfe515
RW
2997 ;; Use "gcc" executable, not "cc".
2998 (substitute* "numpy/distutils/system_info.py"
2999 (("c = distutils\\.ccompiler\\.new_compiler\\(\\)")
3000 "c = distutils.ccompiler.new_compiler(); c.set_executables(compiler='gcc',compiler_so='gcc',linker_exe='gcc',linker_so='gcc -shared')"))
3001 #t)
6a843168
FB
3002 ;; Tests can only be run after the library has been installed and not
3003 ;; within the source directory.
3004 (alist-cons-after
3005 'install 'check
89b5c60e 3006 (lambda _
6a843168 3007 (with-directory-excursion "/tmp"
89b5c60e 3008 (zero? (system* "python" "-c"
6a843168 3009 "import numpy; numpy.test(verbose=2)"))))
89b5c60e
AE
3010 (alist-delete
3011 'check
6a843168 3012 %standard-phases)))))
0da98533
FB
3013 (home-page "http://www.numpy.org/")
3014 (synopsis "Fundamental package for scientific computing with Python")
3015 (description "NumPy is the fundamental package for scientific computing
e881752c 3016with Python. It contains among other things: a powerful N-dimensional array
0da98533
FB
3017object, sophisticated (broadcasting) functions, tools for integrating C/C++
3018and Fortran code, useful linear algebra, Fourier transform, and random number
3019capabilities.")
3020 (license bsd-3)))
3021
3022(define python2-numpy-bootstrap
3023 (package-with-python2 python-numpy-bootstrap))
15bfe6d6 3024
3a1bfe18
RW
3025(define-public python2-fastlmm
3026 (package
3027 (name "python2-fastlmm")
3028 (version "0.2.14")
3029 (source
3030 (origin
3031 (method url-fetch)
3032 (uri (string-append
3033 "https://pypi.python.org/packages/source/f/fastlmm"
3034 "/fastlmm-" version ".zip"))
3035 (sha256
3036 (base32
3037 "023sydkrc3yxad2bycar02jfswwlh4199kafzhf2bssyx2c3xa0l"))))
3038 (build-system python-build-system)
3039 (arguments
3040 `(#:python ,python-2)) ; only Python 2.7 is supported
3041 (propagated-inputs
3042 `(("python2-numpy" ,python2-numpy)
3043 ("python2-scipy" ,python2-scipy)
3044 ("python2-matplotlib" ,python2-matplotlib)
3045 ("python2-pandas" ,python2-pandas)
3046 ("python2-scikit-learn" ,python2-scikit-learn)
3047 ("python2-cython" ,python2-cython)
3048 ("python2-pysnptools" ,python2-pysnptools)))
3049 (native-inputs
3050 `(("unzip" ,unzip)
3051 ("python2-mock" ,python2-mock)
3052 ("python2-setuptools" ,python2-setuptools)))
3053 (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/fastlmm/")
3054 (synopsis "Perform genome-wide association studies on large data sets")
3055 (description
3056 "FaST-LMM, which stands for Factored Spectrally Transformed Linear Mixed
3057Models, is a program for performing both single-SNP and SNP-set genome-wide
3058association studies (GWAS) on extremely large data sets.")
3059 (license asl2.0)))
3060
2ee8869a
FB
3061(define-public python-numpy
3062 (package (inherit python-numpy-bootstrap)
3063 (name "python-numpy")
3064 (outputs '("out" "doc"))
89b5c60e 3065 (inputs
2ee8869a
FB
3066 `(("which" ,which)
3067 ("python-setuptools" ,python-setuptools)
3068 ("python-matplotlib" ,python-matplotlib)
3069 ("python-sphinx" ,python-sphinx)
3070 ("python-pyparsing" ,python-pyparsing)
3071 ("python-numpydoc" ,python-numpydoc)
3072 ,@(package-inputs python-numpy-bootstrap)))
3073 (native-inputs
3074 `(("pkg-config" ,pkg-config)
3075 ("texlive" ,texlive)
3076 ("texinfo" ,texinfo)
3077 ("perl" ,perl)
3078 ,@(package-native-inputs python-numpy-bootstrap)))
3079 (arguments
89b5c60e 3080 `(,@(substitute-keyword-arguments
2ee8869a
FB
3081 (package-arguments python-numpy-bootstrap)
3082 ((#:phases phases)
3083 `(alist-cons-after
3084 'install 'install-doc
3085 (lambda* (#:key outputs #:allow-other-keys)
3086 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
89b5c60e
AE
3087 (doc (string-append
3088 data "/doc/" ,name "-"
2ee8869a
FB
3089 ,(package-version python-numpy-bootstrap)))
3090 (info (string-append data "/info"))
3091 (html (string-append doc "/html"))
3092 (pyver ,(string-append "PYVER=")))
3093 (with-directory-excursion "doc"
3094 (mkdir-p html)
3095 (system* "make" "html" pyver)
3096 (system* "make" "latex" "PAPER=a4" pyver)
89b5c60e 3097 (system* "make" "-C" "build/latex"
2ee8869a
FB
3098 "all-pdf" "PAPER=a4" pyver)
3099 ;; FIXME: Generation of the info file fails.
3100 ;; (system* "make" "info" pyver)
3101 ;; (mkdir-p info)
3102 ;; (copy-file "build/texinfo/numpy.info"
3103 ;; (string-append info "/numpy.info"))
3104 (for-each (lambda (file)
3105 (copy-file (string-append "build/latex" file)
3106 (string-append doc file)))
3107 '("/numpy-ref.pdf" "/numpy-user.pdf"))
3108 (with-directory-excursion "build/html"
3109 (for-each (lambda (file)
3110 (let* ((dir (dirname file))
3111 (tgt-dir (string-append html "/" dir)))
3112 (unless (equal? "." dir)
3113 (mkdir-p tgt-dir))
96c46210 3114 (install-file file html)))
2ee8869a
FB
3115 (find-files "." ".*"))))))
3116 ,phases)))))))
3117
764c077b 3118(define-public python2-numpy
57b7b8cd 3119 (package-with-python2 python-numpy))
2ee8869a 3120
15bfe6d6
FB
3121(define-public python-pyparsing
3122 (package
3123 (name "python-pyparsing")
e0669289 3124 (version "2.0.3")
15bfe6d6
FB
3125 (source
3126 (origin
3127 (method url-fetch)
3128 (uri (string-append "mirror://sourceforge/pyparsing"
3129 "/pyparsing-" version ".tar.gz"))
3130 (sha256
3131 (base32
e0669289 3132 "0kw4py7gn45j93q8r7bzajfrjdc3xlsn2yzln41lf9zmrghjkrq6"))))
15bfe6d6
FB
3133 (build-system python-build-system)
3134 (outputs '("out" "doc"))
3135 (arguments
3136 `(#:tests? #f ; no test target
3137 #:modules ((guix build python-build-system)
3138 (guix build utils))
3139 #:phases
3140 (alist-cons-after
3141 'install 'install-doc
3142 (lambda* (#:key outputs #:allow-other-keys)
89b5c60e 3143 (let* ((doc (string-append (assoc-ref outputs "doc")
15bfe6d6
FB
3144 "/share/doc/" ,name "-" ,version))
3145 (html-doc (string-append doc "/html"))
3146 (examples (string-append doc "/examples")))
3147 (mkdir-p html-doc)
3148 (mkdir-p examples)
89b5c60e 3149 (for-each
15bfe6d6 3150 (lambda (dir tgt)
89b5c60e 3151 (map (lambda (file)
96c46210 3152 (install-file file tgt))
15bfe6d6
FB
3153 (find-files dir ".*")))
3154 (list "docs" "htmldoc" "examples")
3155 (list doc html-doc examples))))
3156 %standard-phases)))
3157 (home-page "http://pyparsing.wikispaces.com")
3158 (synopsis "Python parsing class library")
3159 (description
3160 "The pyparsing module is an alternative approach to creating and
3161executing simple grammars, vs. the traditional lex/yacc approach, or the use
3162of regular expressions. The pyparsing module provides a library of classes
3163that client code uses to construct the grammar directly in Python code.")
bd3fa666 3164 (license license:expat)))
15bfe6d6
FB
3165
3166(define-public python2-pyparsing
3167 (package-with-python2 python-pyparsing))
3168
ec00de35
FB
3169(define-public python-numpydoc
3170 (package
3171 (name "python-numpydoc")
3172 (version "0.5")
3173 (source
3174 (origin
3175 (method url-fetch)
89b5c60e 3176 (uri (string-append
ec00de35
FB
3177 "https://pypi.python.org/packages/source/n/numpydoc/numpydoc-"
3178 version ".tar.gz"))
3179 (sha256
3180 (base32
5e4d8f67
AE
3181 "0d4dnifaxkll50jx6czj05y8cb4ny60njd2wz299sj2jxfy51w4k"))
3182 (modules '((guix build utils)))
3183 (snippet
3184 '(begin
3185 ;; Drop a test requiring matplotlib, which we cannot add as an
3186 ;; input since it would create a circular dependency: Extend the
3187 ;; test for Python 3, where it is already dropped, to Python 2.
3188 (substitute* "numpydoc/tests/test_plot_directive.py"
3189 (("3") "2"))))))
ec00de35
FB
3190 (build-system python-build-system)
3191 (inputs
3192 `(("python-setuptools" ,python-setuptools)
3193 ("python-docutils" ,python-docutils)
3194 ("python-sphinx" ,python-sphinx)
3195 ("python-nose" ,python-nose)))
3196 (home-page "https://pypi.python.org/pypi/numpydoc")
3197 (synopsis
3198 "Numpy's Sphinx extensions")
3199 (description
3200 "Sphinx extension to support docstrings in Numpy format.")
3201 (license bsd-2)))
3202
3203(define-public python2-numpydoc
5e4d8f67 3204 (package-with-python2 python-numpydoc))
1c65314c 3205
1e656049
RW
3206(define-public python-numexpr
3207 (package
3208 (name "python-numexpr")
3209 (version "2.4.4")
3210 (source
3211 (origin
3212 (method url-fetch)
3213 (uri (string-append "https://pypi.python.org/packages/source/"
3214 "n/numexpr/numexpr-" version ".tar.gz"))
3215 (sha256
3216 (base32
3217 "0nsnff5312fm38w6dm34bw7ghfqqy8vl9gig0al963h4mz8zm8nz"))))
3218 (build-system python-build-system)
3219 (arguments `(#:tests? #f)) ; no tests included
3220 (propagated-inputs
3221 `(("python-numpy" ,python-numpy)))
3222 (home-page "https://github.com/pydata/numexpr")
3223 (synopsis "Fast numerical expression evaluator for NumPy")
3224 (description
3225 "Numexpr is a fast numerical expression evaluator for NumPy. With it,
3226expressions that operate on arrays are accelerated and use less memory than
3227doing the same calculation in Python. In addition, its multi-threaded
3228capabilities can make use of all your cores, which may accelerate
3229computations, most specially if they are not memory-bounded (e.g. those using
3230transcendental functions).")
3231 (license license:expat)))
3232
3233(define-public python2-numexpr
3234 (let ((numexpr (package-with-python2 python-numexpr)))
3235 (package (inherit numexpr)
3236 ;; Make sure to use special packages for Python 2 instead
3237 ;; of those automatically rewritten by package-with-python2.
3238 (propagated-inputs
3239 `(("python2-numpy" ,python2-numpy)
3240 ,@(alist-delete "python-numpy"
3241 (package-propagated-inputs numexpr)))))))
3242
1c65314c
FB
3243(define-public python-matplotlib
3244 (package
3245 (name "python-matplotlib")
1bbc659f 3246 (version "1.4.3")
1c65314c
FB
3247 (source
3248 (origin
3249 (method url-fetch)
3250 (uri (string-append "mirror://sourceforge/matplotlib"
3251 "/matplotlib-" version ".tar.gz"))
3252 (sha256
3253 (base32
1bbc659f
FB
3254 "1dn05cvd0g984lzhh72wa0z93psgwshbbg93fkab6slx5m3l95av"))
3255 (patches (list (search-patch "matplotlib-setupext-tk.patch")))))
1c65314c
FB
3256 (build-system python-build-system)
3257 (outputs '("out" "doc"))
25f9a068
FB
3258 (propagated-inputs ; the following packages are all needed at run time
3259 `(("python-pyparsing" ,python-pyparsing)
3260 ("python-pygobject" ,python-pygobject)
3261 ("gobject-introspection" ,gobject-introspection)
1bbc659f 3262 ("python-tkinter" ,python "tk")
25f9a068
FB
3263 ;; The 'gtk+' package (and 'gdk-pixbuf', 'atk' and 'pango' propagated
3264 ;; from 'gtk+') provides the required 'typelib' files used by
3265 ;; 'gobject-introspection'. The location of these files is set with the
3266 ;; help of the environment variable GI_TYPELIB_PATH. At build time this
3267 ;; is done automatically by a 'native-search-path' procedure. However,
3268 ;; at run-time the user must set this variable as follows:
3269 ;;
3270 ;; export GI_TYPELIB_PATH=~/.guix-profile/lib/girepository-1.0
25f9a068
FB
3271 ("gtk+" ,gtk+)
3272 ;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of
3273 ;; 'pycairo'. However, 'pygobject' makes use of a 'pycairo' 'context'
3274 ;; object. For this reason we need to import both libraries.
3275 ;; https://pythonhosted.org/cairocffi/cffi_api.html#converting-pycairo
3276 ("python-pycairo" ,python-pycairo)
3277 ("python-cairocffi" ,python-cairocffi)))
1c65314c
FB
3278 (inputs
3279 `(("python-setuptools" ,python-setuptools)
3280 ("python-dateutil" ,python-dateutil-2)
1c65314c
FB
3281 ("python-six" ,python-six)
3282 ("python-pytz" ,python-pytz)
3283 ("python-numpy" ,python-numpy-bootstrap)
3284 ("python-sphinx" ,python-sphinx)
3285 ("python-numpydoc" ,python-numpydoc)
3286 ("python-nose" ,python-nose)
3287 ("python-mock" ,python-mock)
3288 ("libpng" ,libpng)
3289 ("imagemagick" ,imagemagick)
3290 ("freetype" ,freetype)
25f9a068
FB
3291 ("cairo" ,cairo)
3292 ("glib" ,glib)
4e7a137a 3293 ("python-pillow" ,python-pillow)
1c65314c 3294 ;; FIXME: Add backends when available.
1c65314c
FB
3295 ;("python-wxpython" ,python-wxpython)
3296 ;("python-pyqt" ,python-pyqt)
1bbc659f
FB
3297 ("tcl" ,tcl)
3298 ("tk" ,tk)))
1c65314c
FB
3299 (native-inputs
3300 `(("pkg-config" ,pkg-config)
3301 ("texlive" ,texlive)
3302 ("texinfo" ,texinfo)))
3303 (arguments
3304 `(#:phases
25f9a068
FB
3305 (alist-cons-before
3306 'build 'configure-environment
3307 (lambda* (#:key outputs inputs #:allow-other-keys)
3308 (let ((cairo (assoc-ref inputs "cairo"))
3309 (gtk+ (assoc-ref inputs "gtk+")))
3310 ;; Setting these directories in the 'basedirlist' of 'setup.cfg'
3311 ;; has not effect.
25f9a068
FB
3312 (setenv "LD_LIBRARY_PATH"
3313 (string-append cairo "/lib:" gtk+ "/lib"))
3314 (setenv "HOME" (getcwd))
3315 (call-with-output-file "setup.cfg"
3316 (lambda (port)
1bbc659f
FB
3317 (format port "[directories]~%
3318basedirlist = ~a,~a~%
57b7b8cd 3319 [rc_options]~%
1bbc659f
FB
3320backend = TkAgg~%"
3321 (assoc-ref inputs "tcl")
3322 (assoc-ref inputs "tk"))))))
25f9a068
FB
3323 (alist-cons-after
3324 'install 'install-doc
3325 (lambda* (#:key outputs #:allow-other-keys)
3326 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3327 (doc (string-append data "/doc/" ,name "-" ,version))
3328 (info (string-append data "/info"))
3329 (html (string-append doc "/html")))
3330 (with-directory-excursion "doc"
25f9a068
FB
3331 ;; Produce pdf in 'A4' format.
3332 (substitute* (find-files "." "conf\\.py")
3333 (("latex_paper_size = 'letter'")
3334 "latex_paper_size = 'a4'"))
3335 (mkdir-p html)
3336 (mkdir-p info)
3337 ;; The doc recommends to run the 'html' target twice.
3338 (system* "python" "make.py" "html")
3339 (system* "python" "make.py" "html")
18b31516 3340 (copy-recursively "build/html" html)
25f9a068
FB
3341 (system* "python" "make.py" "latex")
3342 (system* "python" "make.py" "texinfo")
18b31516
FB
3343 (symlink (string-append html "/_images")
3344 (string-append info "/matplotlib-figures"))
3345 (with-directory-excursion "build/texinfo"
3346 (substitute* "matplotlib.texi"
3347 (("@image\\{([^,]*)" all file)
3348 (string-append "@image{matplotlib-figures/" file)))
3349 (symlink (string-append html "/_images")
3350 "./matplotlib-figures")
3351 (system* "makeinfo" "--no-split"
3352 "-o" "matplotlib.info" "matplotlib.texi"))
25f9a068
FB
3353 (copy-file "build/texinfo/matplotlib.info"
3354 (string-append info "/matplotlib.info"))
3355 (copy-file "build/latex/Matplotlib.pdf"
18b31516 3356 (string-append doc "/Matplotlib.pdf")))))
25f9a068 3357 %standard-phases))))
1c65314c
FB
3358 (home-page "http://matplotlib.org")
3359 (synopsis "2D plotting library for Python")
3360 (description
3361 "Matplotlib is a Python 2D plotting library which produces publication
3362quality figures in a variety of hardcopy formats and interactive environments
3363across platforms. Matplotlib can be used in Python scripts, the python and
3364ipython shell, web application servers, and six graphical user interface
3365toolkits.")
57b7b8cd
LC
3366 (license psfl)
3367 (properties `((python2-variant . ,(delay python2-matplotlib))))))
1c65314c 3368
764c077b 3369(define-public python2-matplotlib
57b7b8cd
LC
3370 (let ((matplotlib (package-with-python2
3371 (strip-python2-variant python-matplotlib))))
764c077b 3372 (package (inherit matplotlib)
88c26834
AE
3373 ;; Make sure to use special packages for Python 2 instead
3374 ;; of those automatically rewritten by package-with-python2.
89b5c60e 3375 (propagated-inputs
7ca0dbc3 3376 `(("python2-pycairo" ,python2-pycairo)
764c077b 3377 ("python2-pygobject-2" ,python2-pygobject-2)
1bbc659f
FB
3378 ("python2-tkinter" ,python-2 "tk")
3379 ,@(fold alist-delete (package-propagated-inputs matplotlib)
3380 '("python-pycairo" "python-pygobject" "python-tkinter")))))))
94914805 3381
0dde6232
RW
3382(define-public python2-pysnptools
3383 (package
3384 (name "python2-pysnptools")
3385 (version "0.2.13")
3386 (source
3387 (origin
3388 (method url-fetch)
3389 (uri (string-append
3390 "https://pypi.python.org/packages/source/p/pysnptools"
3391 "/pysnptools-" version ".zip"))
3392 (sha256
3393 (base32
3394 "1rzf5qvwfvd2pp84b14pb2gdvxdk5avnj7rb41ac8gndpkr9g6ib"))))
3395 (build-system python-build-system)
3396 (arguments
3397 `(#:python ,python-2)) ; only Python 2.7 is supported
3398 (propagated-inputs
3399 `(("python2-numpy" ,python2-numpy)
3400 ("python2-scipy" ,python2-scipy)
3401 ("python2-pandas" ,python2-pandas)
3402 ("python2-cython" ,python2-cython)))
3403 (native-inputs
3404 `(("unzip" ,unzip)
3405 ("python2-setuptools" ,python2-setuptools)))
3406 (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/")
3407 (synopsis "Library for reading and manipulating genetic data")
3408 (description
3409 "PySnpTools is a library for reading and manipulating genetic data. It
3410can, for example, efficiently read whole PLINK *.bed/bim/fam files or parts of
3411those files. It can also efficiently manipulate ranges of integers using set
3412operators such as union, intersection, and difference.")
3413 (license asl2.0)))
3414
c9b1b4f9
RW
3415(define-public python-rpy2
3416 (package
3417 (name "python-rpy2")
ec3bcbc7 3418 (version "2.7.6")
c9b1b4f9
RW
3419 (source
3420 (origin
3421 (method url-fetch)
ec3bcbc7 3422 (uri (pypi-uri "rpy2" version))
c9b1b4f9
RW
3423 (sha256
3424 (base32
ec3bcbc7 3425 "0nhan2qvrw7b7gg5zddwa22kybdv3x1g26vkd7q8lvnkgzrs4dga"))))
c9b1b4f9
RW
3426 (build-system python-build-system)
3427 (inputs
3428 `(("python-six" ,python-six)
3429 ("readline" ,readline)
3430 ("icu4c" ,icu4c)
3431 ("pcre" ,pcre)
3432 ("r" ,r)))
3433 (native-inputs
5ff6575b
RW
3434 `(("python-setuptools" ,python-setuptools)
3435 ("zlib" ,zlib)))
c9b1b4f9
RW
3436 (home-page "http://rpy.sourceforge.net/")
3437 (synopsis "Python interface to the R language")
3438 (description "rpy2 is a redesign and rewrite of rpy. It is providing a
3439low-level interface to R from Python, a proposed high-level interface,
3440including wrappers to graphical libraries, as well as R-like structures and
3441functions.")
3442 (license gpl3+)))
3443
3444(define-public python2-rpy2
3445 (let ((rpy2 (package-with-python2 python-rpy2)))
3446 (package (inherit rpy2)
3447 (native-inputs
3448 `(("python2-singledispatch" ,python2-singledispatch)
3449 ,@(package-native-inputs rpy2))))))
3450
bb986599
FB
3451(define-public python-scipy
3452 (package
3453 (name "python-scipy")
ba8a0824 3454 (version "0.16.0")
bb986599
FB
3455 (source
3456 (origin
3457 (method url-fetch)
3458 (uri (string-append "mirror://sourceforge/scipy"
da6ce3f1 3459 "/scipy-" version ".tar.xz"))
bb986599
FB
3460 (sha256
3461 (base32
ba8a0824 3462 "0wa0a4skpda3gx7lb12yn19nhbairlyxrvda2lz2bcawk3x5qzz2"))))
bb986599 3463 (build-system python-build-system)
dd86c0d1 3464 (propagated-inputs
bb986599
FB
3465 `(("python-numpy" ,python-numpy)
3466 ("python-matplotlib" ,python-matplotlib)
dd86c0d1
RW
3467 ("python-pyparsing" ,python-pyparsing)))
3468 (inputs
3469 `(("lapack" ,lapack)
719b01c1 3470 ("openblas" ,openblas)))
bb986599 3471 (native-inputs
dd86c0d1
RW
3472 `(("python-nose" ,python-nose)
3473 ("python-sphinx" ,python-sphinx)
5248d49e 3474 ("python-numpydoc" ,python-numpydoc)
dd86c0d1 3475 ("gfortran" ,gfortran)
bb986599
FB
3476 ("texlive" ,texlive)
3477 ("perl" ,perl)))
3478 (outputs '("out" "doc"))
3479 (arguments
3480 `(#:phases
3481 (alist-cons-before
719b01c1 3482 'build 'configure-openblas
bb986599 3483 (lambda* (#:key inputs #:allow-other-keys)
719b01c1
RW
3484 (call-with-output-file "site.cfg"
3485 (lambda (port)
3486 (format port
3487 "[blas]
3488libraries = openblas
3489library_dirs = ~a/lib
3490include_dirs = ~a/include
3491[atlas]
3492library_dirs = ~a/lib
3493atlas_libs = openblas
3494"
3495 (assoc-ref inputs "openblas")
3496 (assoc-ref inputs "openblas")
3497 (assoc-ref inputs "openblas"))))
3498 #t)
bb986599
FB
3499 (alist-cons-after
3500 'install 'install-doc
3501 (lambda* (#:key outputs #:allow-other-keys)
3502 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3503 (doc (string-append data "/doc/" ,name "-" ,version))
3504 (html (string-append doc "/html"))
3505 (pyver ,(string-append "PYVER=")))
3506 (with-directory-excursion "doc"
bb986599
FB
3507 ;; Fix generation of images for mathematical expressions.
3508 (substitute* (find-files "source" "conf\\.py")
3509 (("pngmath_use_preview = True")
3510 "pngmath_use_preview = False"))
3511 (mkdir-p html)
3512 (system* "make" "html" pyver)
3513 (system* "make" "latex" "PAPER=a4" pyver)
3514 (system* "make" "-C" "build/latex" "all-pdf" "PAPER=a4" pyver)
3515 (copy-file "build/latex/scipy-ref.pdf"
3516 (string-append doc "/scipy-ref.pdf"))
3517 (with-directory-excursion "build/html"
3518 (for-each (lambda (file)
3519 (let* ((dir (dirname file))
3520 (tgt-dir (string-append html "/" dir)))
96c46210 3521 (install-file file html)))
bb986599
FB
3522 (find-files "." ".*"))))))
3523 ;; Tests can only be run after the library has been installed and not
3524 ;; within the source directory.
3525 (alist-cons-after
3526 'install 'check
89b5c60e 3527 (lambda _
bb986599
FB
3528 (with-directory-excursion "/tmp"
3529 (zero? (system* "python" "-c" "import scipy; scipy.test()"))))
89b5c60e
AE
3530 (alist-delete
3531 'check
4f9ff21e
RW
3532 (alist-cons-after
3533 'unpack 'fix-tests
3534 (lambda _
3535 (substitute* "scipy/integrate/tests/test_quadpack.py"
3536 (("libm.so") "libm.so.6"))
3537 #t)
3538 %standard-phases)))))))
bb986599
FB
3539 (home-page "http://www.scipy.org/")
3540 (synopsis "The Scipy library provides efficient numerical routines")
3541 (description "The SciPy library is one of the core packages that make up
3542the SciPy stack. It provides many user-friendly and efficient numerical
3543routines such as routines for numerical integration and optimization.")
3544 (license bsd-3)))
3545
764c077b 3546(define-public python2-scipy
57b7b8cd 3547 (package-with-python2 python-scipy))
bb986599 3548
94914805
EB
3549(define-public python-sqlalchemy
3550 (package
3551 (name "python-sqlalchemy")
3552 (version "0.9.7")
3553 (source
3554 (origin
3555 (method url-fetch)
3556 (uri (string-append "https://pypi.python.org/packages/source/S/"
3557 "SQLAlchemy/SQLAlchemy-" version ".tar.gz"))
3558 (sha256
3559 (base32
3560 "059ayifj5l08v6vv56anhyibyllscn10dlzr2fcw68gz1hfjdzsz"))))
3561 (build-system python-build-system)
3562 (native-inputs
3563 `(("python-cython" ,python-cython) ;for c extensions
3564 ("python-pytest" ,python-pytest)
3565 ("python-mock" ,python-mock))) ;for tests
3566 (arguments
3567 `(#:phases (alist-replace
3568 'check
3569 (lambda _ (zero? (system* "py.test")))
3570 %standard-phases)))
3571 (home-page "http://www.sqlalchemy.org")
3572 (synopsis "Database abstraction library")
3573 (description
3574 "SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that
3575gives application developers the full power and flexibility of SQL. It
3576provides a full suite of well known enterprise-level persistence patterns,
3577designed for efficient and high-performing database access, adapted into a
3578simple and Pythonic domain language.")
3579 (license x11)))
3580
3581(define-public python2-sqlalchemy
3582 (package-with-python2 python-sqlalchemy))
c937562e 3583
1671c07c
EB
3584(define-public python-distutils-extra
3585 (package
3586 (name "python-distutils-extra")
3587 (version "2.38")
3588 (source
3589 (origin
3590 (method url-fetch)
3591 (uri (string-append "https://launchpad.net/python-distutils-extra/trunk/"
3592 version "/+download/python-distutils-extra-"
3593 version ".tar.gz"))
3594 (sha256
3595 (base32
3596 "0lx15kcbby9zisx33p2h5hgakgwh2bvh0ibag8z0px4j6ifhs41x"))))
3597 (build-system python-build-system)
3598 (native-inputs
3599 `(("python-setuptools" ,python-setuptools)))
3600 (home-page "https://launchpad.net/python-distutils-extra/")
3601 (synopsis "Enhancements to Python's distutils")
3602 (description
3603 "The python-distutils-extra module enables you to easily integrate
3604gettext support, themed icons, and scrollkeeper-based documentation into
3605Python's distutils.")
3606 (license gpl2)))
3607
3608(define-public python2-distutils-extra
3609 (package-with-python2 python-distutils-extra))
ea5456c8
EB
3610
3611(define-public python2-elib.intl
3612 (package
3613 (name "python2-elib.intl")
3614 (version "0.0.3")
3615 (source
3616 (origin
3617 ;; This project doesn't tag releases or publish tarballs, so we take
3618 ;; source from a (semi-arbitrary, i.e. latest as of now) git commit.
3619 (method git-fetch)
3620 (uri (git-reference
3621 (url "https://github.com/dieterv/elib.intl.git")
3622 (commit "d09997cfef")))
3623 (sha256
3624 (base32
3625 "0y7vzff9xgbnaay7m0va1arl6g68ncwrvbgwl7jqlclsahzzb09d"))))
3626 (build-system python-build-system)
3627 (native-inputs
3628 `(("python2-setuptools" ,python2-setuptools)))
3629 (arguments
3630 ;; incompatible with Python 3 (exception syntax)
3631 `(#:python ,python-2
3632 #:tests? #f
3633 ;; With standard flags, the install phase attempts to create a zip'd
3634 ;; egg file, and fails with an error: 'ZIP does not support timestamps
3635 ;; before 1980'
3636 #:configure-flags '("--single-version-externally-managed"
3637 "--record=elib.txt")))
3638 (home-page "https://github.com/dieterv/elib.intl")
3639 (synopsis "Enhanced internationalization for Python")
3640 (description
3641 "The elib.intl module provides enhanced internationalization (I18N)
3642services for your Python modules and applications.")
3643 (license lgpl3+)))
3644
c937562e
EB
3645(define-public python-pillow
3646 (package
3647 (name "python-pillow")
16095d27 3648 (version "3.1.1")
c937562e
EB
3649 (source
3650 (origin
3651 (method url-fetch)
f1d9231d 3652 (uri (pypi-uri "Pillow" version))
c937562e
EB
3653 (sha256
3654 (base32
16095d27 3655 "1zwzakr5v0skdh0azp5cd6fwzbll5305dsk33k5jk570vv6lqvs8"))))
c937562e
EB
3656 (build-system python-build-system)
3657 (native-inputs
3658 `(("python-setuptools" ,python-setuptools)
3659 ("python-nose" ,python-nose)))
3660 (inputs
5ff408d9
SB
3661 `(("freetype" ,freetype)
3662 ("lcms" ,lcms)
c937562e
EB
3663 ("zlib" ,zlib)
3664 ("libjpeg" ,libjpeg)
3665 ("openjpeg" ,openjpeg)
5ff408d9
SB
3666 ("libtiff" ,libtiff)
3667 ("libwebp" ,libwebp)))
c937562e
EB
3668 (propagated-inputs
3669 `(;; Used at runtime for pkg_resources
3670 ("python-setuptools" ,python-setuptools)))
3671 (arguments
e5358a6b
LC
3672 `(#:phases (modify-phases %standard-phases
3673 (add-before
3674 'install 'disable-egg-compression
3675 (lambda _
3676 ;; Leave the .egg uncompressed since compressing it would
3677 ;; prevent the GC from identifying run-time dependencies.
3678 ;; See <http://bugs.gnu.org/20765>.
3679 (let ((port (open-file "setup.cfg" "a")))
3680 (display "\n[easy_install]\nzip_ok = 0\n"
3681 port)
3682 (close-port port)
3683 #t)))
3684 (add-after
3685 'install 'check-installed
3686 (lambda _
3687 (begin
3688 (setenv "HOME" (getcwd))
3689 (and (zero? (system* "python" "selftest.py"
3690 "--installed"))
3691 (zero? (system* "python" "test-installed.py"))))))
3692 (delete 'check))))
c937562e
EB
3693 (home-page "https://pypi.python.org/pypi/Pillow")
3694 (synopsis "Fork of the Python Imaging Library")
3695 (description
3696 "The Python Imaging Library adds image processing capabilities to your
3697Python interpreter. This library provides extensive file format support, an
3698efficient internal representation, and fairly powerful image processing
3699capabilities. The core image library is designed for fast access to data
3700stored in a few basic pixel formats. It should provide a solid foundation for
3701a general image processing tool.")
3702 (license (x11-style
3703 "http://www.pythonware.com/products/pil/license.htm"
3704 "The PIL Software License"))))
3705
3706(define-public python2-pillow
3707 (package-with-python2 python-pillow))
bb986599 3708
a415f036
FB
3709(define-public python-pycparser
3710 (package
3711 (name "python-pycparser")
38eb6919 3712 (version "2.14")
a415f036
FB
3713 (source
3714 (origin
3715 (method url-fetch)
38eb6919 3716 (uri (pypi-uri "pycparser" version))
a415f036
FB
3717 (sha256
3718 (base32
38eb6919 3719 "0wvzyb6rxsfj3xcnpa4ynbh9qc7rrbk2277d5wqpphmx9akv8nbr"))))
a415f036
FB
3720 (outputs '("out" "doc"))
3721 (build-system python-build-system)
3722 (native-inputs
3723 `(("pkg-config" ,pkg-config)
3724 ("python-setuptools" ,python-setuptools)))
3725 (arguments
89b5c60e 3726 `(#:phases
a415f036
FB
3727 (alist-replace
3728 'check
3729 (lambda _
3730 (with-directory-excursion "tests"
3731 (zero? (system* "python" "all_tests.py"))))
3732 (alist-cons-after
3733 'install 'install-doc
3734 (lambda* (#:key outputs #:allow-other-keys)
3735 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3736 (doc (string-append data "/doc/" ,name "-" ,version))
3737 (examples (string-append doc "/examples")))
3738 (mkdir-p examples)
3739 (for-each (lambda (file)
3740 (copy-file (string-append "." file)
3741 (string-append doc file)))
3742 '("/README.rst" "/CHANGES" "/LICENSE"))
3743 (copy-recursively "examples" examples)))
3744 %standard-phases))))
3745 (home-page "https://github.com/eliben/pycparser")
3746 (synopsis "C parser in Python")
3747 (description
3748 "Pycparser is a complete parser of the C language, written in pure Python
3749using the PLY parsing library. It parses C code into an AST and can serve as
3750a front-end for C compilers or analysis tools.")
3751 (license bsd-3)))
3752
3753(define-public python2-pycparser
3754 (package-with-python2 python-pycparser))
57c3f716
FB
3755
3756(define-public python-cffi
3757 (package
3758 (name "python-cffi")
2d3a437c 3759 (version "1.4.2")
57c3f716
FB
3760 (source
3761 (origin
3762 (method url-fetch)
2d3a437c 3763 (uri (pypi-uri "cffi" version))
89b5c60e 3764 (sha256
2d3a437c 3765 (base32 "161rj52rzi3880lij17d6i9kvgkiwjilrqjs8405k8sf6ryif7cg"))))
57c3f716
FB
3766 (build-system python-build-system)
3767 (outputs '("out" "doc"))
3768 (inputs
3769 `(("libffi" ,libffi)))
3770 (propagated-inputs ; required at run-time
3771 `(("python-pycparser" ,python-pycparser)))
3772 (native-inputs
3773 `(("pkg-config" ,pkg-config)
3774 ("python-sphinx" ,python-sphinx)
4179f952 3775 ("python-pytest" ,python-pytest)
57c3f716
FB
3776 ("python-setuptools" ,python-setuptools)))
3777 (arguments
4179f952 3778 `(#:phases
57c3f716
FB
3779 (alist-cons-after
3780 'install 'install-doc
3781 (lambda* (#:key outputs #:allow-other-keys)
3782 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3783 (doc (string-append data "/doc/" ,name "-" ,version))
3784 (html (string-append doc "/html")))
3785 (with-directory-excursion "doc"
3786 (system* "make" "html")
3787 (mkdir-p html)
3788 (copy-recursively "build/html" html))
3789 (copy-file "LICENSE" (string-append doc "/LICENSE"))))
3790 %standard-phases)))
3791 (home-page "http://cffi.readthedocs.org")
3792 (synopsis "Foreign function interface for Python")
3793 (description
3794 "Foreign Function Interface for Python calling C code.")
bd3fa666 3795 (license license:expat)))
57c3f716
FB
3796
3797(define-public python2-cffi
3798 (package-with-python2 python-cffi))
6fa14469
FB
3799
3800(define-public python-xcffib
3801 (package
3802 (name "python-xcffib")
3803 (version "0.1.9")
3804 (source
3805 (origin
3806 (method url-fetch)
3807 (uri (string-append "https://pypi.python.org/packages/source/x/"
3808 "xcffib/xcffib-" version ".tar.gz"))
3809 (sha256
3810 (base32
3811 "0655hzxv57h1a9ja9kwp0ichbkhf3djw32k33d66xp0q37dq2y81"))))
3812 (build-system python-build-system)
3813 (inputs
3814 `(("libxcb" ,libxcb)
3815 ("python-six" ,python-six)))
3816 (native-inputs
3817 `(("python-setuptools" ,python-setuptools)))
3818 (propagated-inputs
3819 `(("python-cffi" ,python-cffi))) ; used at run time
3820 (arguments
89b5c60e 3821 `(#:phases
6fa14469
FB
3822 (alist-cons-after
3823 'install 'install-doc
3824 (lambda* (#:key outputs #:allow-other-keys)
3825 (let ((doc (string-append (assoc-ref outputs "out") "/share"
3826 "/doc/" ,name "-" ,version)))
3827 (mkdir-p doc)
3828 (copy-file "README.md"
3829 (string-append doc "/README.md"))))
3830 %standard-phases)))
3831 (home-page "https://github.com/tych0/xcffib")
3832 (synopsis "XCB Python bindings")
3833 (description
3834 "Xcffib is a replacement for xpyb, an XCB Python bindings. It adds
3835support for Python 3 and PyPy. It is based on cffi.")
bd3fa666 3836 (license license:expat)))
6fa14469
FB
3837
3838(define-public python2-xcffib
3839 (package-with-python2 python-xcffib))
3840
9e099723
FB
3841(define-public python-cairocffi
3842 (package
3843 (name "python-cairocffi")
3844 (version "0.6")
3845 (source
3846 (origin
3847 (method url-fetch)
3848 ;; The archive on pypi is missing the 'utils' directory!
3849 (uri (string-append "https://github.com/SimonSapin/cairocffi/archive/v"
3850 version ".tar.gz"))
f586c877 3851 (file-name (string-append name "-" version ".tar.gz"))
9e099723
FB
3852 (sha256
3853 (base32
3854 "03w5p62sp3nqiccx864sbq0jvh7946277jqx3rcc3dch5xwfvv51"))))
3855 (build-system python-build-system)
3856 (outputs '("out" "doc"))
3857 (inputs
3858 `(("gdk-pixbuf" ,gdk-pixbuf)
3859 ("cairo" ,cairo)))
3860 (native-inputs
3861 `(("pkg-config" ,pkg-config)
3862 ("python-sphinx" ,python-sphinx)
3863 ("python-docutils" ,python-docutils)
3864 ("python-setuptools" ,python-setuptools)))
3865 (propagated-inputs
3866 `(("python-xcffib" ,python-xcffib))) ; used at run time
3867 (arguments
89b5c60e 3868 `(#:phases
9e099723
FB
3869 (alist-cons-after
3870 'install 'install-doc
3871 (lambda* (#:key inputs outputs #:allow-other-keys)
3872 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3873 (doc (string-append data "/doc/" ,name "-" ,version))
3874 (html (string-append doc "/html")))
89b5c60e 3875 (setenv "LD_LIBRARY_PATH"
9e099723
FB
3876 (string-append (assoc-ref inputs "cairo") "/lib" ":"
3877 (assoc-ref inputs "gdk-pixbuf") "/lib"))
3878 (setenv "LANG" "en_US.UTF-8")
3879 (mkdir-p html)
3880 (for-each (lambda (file)
3881 (copy-file (string-append "." file)
3882 (string-append doc file)))
3883 '("/README.rst" "/CHANGES" "/LICENSE"))
3884 (system* "python" "setup.py" "build_sphinx")
3885 (copy-recursively "docs/_build/html" html)))
3886 %standard-phases)))
3887 (home-page "https://github.com/SimonSapin/cairocffi")
3888 (synopsis "Python bindings and object-oriented API for Cairo")
3889 (description
3890 "Cairocffi is a CFFI-based drop-in replacement for Pycairo, a set of
3891Python bindings and object-oriented API for cairo. Cairo is a 2D vector
3892graphics library with support for multiple backends including image buffers,
3893PNG, PostScript, PDF, and SVG file output.")
3894 (license bsd-3)))
3895
3896(define-public python2-cairocffi
3897 (package-with-python2 python-cairocffi))
3898
3cff95cb
RW
3899(define-public python-decorator
3900 (package
3901 (name "python-decorator")
e21338be 3902 (version "4.0.6")
3cff95cb
RW
3903 (source
3904 (origin
3905 (method url-fetch)
e21338be 3906 (uri (pypi-uri "decorator" version))
3cff95cb 3907 (sha256
e21338be 3908 (base32 "1710cwsbwr8fkiq59w2min7rwgdz7ly51yz8l8yh1zbpfxcm8qhw"))))
3cff95cb
RW
3909 (build-system python-build-system)
3910 (arguments '(#:tests? #f)) ; no test target
3911 (native-inputs
3912 `(("python-setuptools" ,python-setuptools)))
3913 (home-page "http://pypi.python.org/pypi/decorator/")
3914 (synopsis "Python module to simplify usage of decorators")
3915 (description
3916 "The aim of the decorator module is to simplify the usage of decorators
3917for the average programmer, and to popularize decorators usage giving examples
3918of useful decorators, such as memoize, tracing, redirecting_stdout, locked,
3919etc. The core of this module is a decorator factory.")
3920 (license license:expat)))
3921
3922(define-public python2-decorator
3923 (package-with-python2 python-decorator))
3924
2c0499ad
RW
3925(define-public python-drmaa
3926 (package
3927 (name "python-drmaa")
3928 (version "0.7.6")
3929 (source
3930 (origin
3931 (method url-fetch)
3932 (uri (string-append
3933 "https://pypi.python.org/packages/source/d/drmaa/drmaa-"
3934 version ".tar.gz"))
3935 (sha256
3936 (base32 "0bzl9f9g34dlhwf09i3fdv7dqqzf2iq0w7d6c2bafx1nlap8qfbh"))))
3937 (build-system python-build-system)
3938 ;; The test suite requires libdrmaa which is provided by the cluster
3939 ;; environment. At runtime the environment variable DRMAA_LIBRARY_PATH
3940 ;; should be set to the path of the libdrmaa library.
3941 (arguments '(#:tests? #f))
3942 (native-inputs
3943 `(("python-nose" ,python-nose)
3944 ("python-setuptools" ,python-setuptools)))
3945 (home-page "https://pypi.python.org/pypi/drmaa")
3946 (synopsis "Python bindings for the DRMAA library")
3947 (description
3948 "A Python package for Distributed Resource Management (DRM) job
3949submission and control. This package is an implementation of the DRMAA 1.0
3950Python language binding specification.")
3951 (license bsd-3)))
3952
3953(define-public python2-drmaa
3954 (package-with-python2 python-drmaa))
3955
d05c6da0
RW
3956(define-public python-gridmap
3957 (package
3958 (name "python-gridmap")
3959 (version "0.13.0")
3960 (source
3961 (origin
3962 (method url-fetch)
3963 (uri (string-append
3964 "https://github.com/pygridtools/gridmap/archive/v"
3965 version ".tar.gz"))
3966 (file-name (string-append name "-" version ".tar.gz"))
3967 (sha256
3968 (base32 "1gzjg2k6f14i1msm2b0ax8d9ds1hvk6qd5nlaivg8m4cxqp4cp1x"))))
3969 (build-system python-build-system)
3970 (inputs
3971 `(("python-psutil" ,python-psutil)
3972 ("python-drmaa" ,python-drmaa)
3973 ("python-pyzmq" ,python-pyzmq)))
3974 (native-inputs
3975 `(("python-setuptools" ,python-setuptools)))
3976 (home-page "https://github.com/pygridtools/gridmap")
3977 (synopsis "Create jobs on a cluster directly from Python")
3978 (description
3979 "Gridmap is a Python package to allow you to easily create jobs on the
3980cluster directly from Python. You can directly map Python functions onto the
3981cluster without needing to write any wrapper code yourself.")
3982 (license gpl3+)))
3983
3984(define-public python2-gridmap
3985 (package-with-python2 python-gridmap))
3986
cb6d5c54
RW
3987(define-public python-pexpect
3988 (package
3989 (name "python-pexpect")
3990 (version "3.3")
3991 (source
3992 (origin
3993 (method url-fetch)
3994 (uri (string-append "https://pypi.python.org/packages/source/p/"
3995 "pexpect/pexpect-" version ".tar.gz"))
3996 (sha256
3997 (base32 "1fp5gm976z7ghm8jw57463rj19cv06c8zw842prgyg788f6n3snz"))))
3998 (build-system python-build-system)
3999 (arguments
4000 `(#:phases
4001 (modify-phases %standard-phases
4002 (replace 'check (lambda _ (zero? (system* "nosetests")))))))
4003 (native-inputs
4004 `(("python-nose" ,python-nose)))
4005 (home-page "http://pexpect.readthedocs.org/")
4006 (synopsis "Controlling interactive console applications")
4007 (description
4008 "Pexpect is a pure Python module for spawning child applications;
4009controlling them; and responding to expected patterns in their output.
4010Pexpect works like Don Libes’ Expect. Pexpect allows your script to spawn a
4011child application and control it as if a human were typing commands.")
4012 (license isc)))
4013
4014(define-public python2-pexpect
4015 (package-with-python2 python-pexpect))
4016
229ad120
RW
4017(define-public python-setuptools-scm
4018 (package
4019 (name "python-setuptools-scm")
383af6b0 4020 (version "1.9.0")
229ad120
RW
4021 (source (origin
4022 (method url-fetch)
383af6b0 4023 (uri (pypi-uri "setuptools_scm" version))
229ad120
RW
4024 (sha256
4025 (base32
383af6b0 4026 "0y24bl893zk6nrklbvdrlmpkalf214zjn6k1xrglljd29rrn4wxi"))))
229ad120 4027 (build-system python-build-system)
383af6b0 4028 (native-inputs `(("python-setuptools" ,python-setuptools)))
229ad120
RW
4029 (home-page "https://github.com/pypa/setuptools_scm/")
4030 (synopsis "Manage Python package versions in SCM metadata")
4031 (description
383af6b0 4032 "Setuptools_scm handles managing your Python package versions in
229ad120
RW
4033@dfn{software configuration management} (SCM) metadata instead of declaring
4034them as the version argument or in a SCM managed file.")
4035 (license license:expat)))
4036
4037(define-public python2-setuptools-scm
4038 (package-with-python2 python-setuptools-scm))
4039
b74270ee
RW
4040(define-public python-pathpy
4041 (package
4042 (name "python-pathpy")
4043 (version "8.1.1")
4044 (source
4045 (origin
4046 (method url-fetch)
4047 (uri (string-append "https://pypi.python.org/packages/source/p/"
4048 "path.py/path.py-" version ".tar.gz"))
4049 (sha256
4050 (base32 "1p8s1l2vfkqhqxdhqlj0g1jjw4f1as2frr35sjcpjjpd5a89y41f"))))
4051 (build-system python-build-system)
4052 (propagated-inputs
4053 `(("python-appdirs" ,python-appdirs)))
4054 (native-inputs
553b709b
EF
4055 `(("python-setuptools" ,python-setuptools)
4056 ("python-setuptools-scm" ,python-setuptools-scm)
b74270ee
RW
4057 ("python-pytest" ,python-pytest)
4058 ("python-pytest-runner" ,python-pytest-runner)))
4059 (home-page "http://github.com/jaraco/path.py")
4060 (synopsis "Python module wrapper for built-in os.path")
4061 (description
4062 "@code{path.py} implements path objects as first-class entities, allowing
4063common operations on files to be invoked on those path objects directly.")
4064 (license license:expat)))
4065
4066(define-public python2-pathpy
4067 (package-with-python2 python-pathpy))
4068
0d34e01b
RW
4069(define-public python-pickleshare
4070 (package
4071 (name "python-pickleshare")
4072 (version "0.5")
4073 (source
4074 (origin
4075 (method url-fetch)
4076 (uri (string-append "https://pypi.python.org/packages/source/p/"
4077 "pickleshare/pickleshare-" version ".tar.gz"))
4078 (sha256
4079 (base32 "11ljr90j3p6qswdrbl7p4cjb2i93f6vn0vx9anzpshsx0d2mggn0"))))
4080 (build-system python-build-system)
4081 (propagated-inputs
4082 `(("python-pathpy" ,python-pathpy)))
b72a4410
EF
4083 (native-inputs
4084 `(("python-setuptools" ,python-setuptools)))
0d34e01b
RW
4085 (home-page "https://github.com/vivainio/pickleshare")
4086 (synopsis "Tiny key value database with concurrency support")
4087 (description
4088 "PickleShare is a small ‘shelve’-like datastore with concurrency support.
4089Like shelve, a PickleShareDB object acts like a normal dictionary. Unlike
4090shelve, many processes can access the database simultaneously. Changing a
4091value in database is immediately visible to other processes accessing the same
4092database. Concurrency is possible because the values are stored in separate
4093files. Hence the “database” is a directory where all files are governed by
4094PickleShare.")
4095 (license license:expat)))
4096
4097(define-public python2-pickleshare
4098 (package-with-python2 python-pickleshare))
4099
cd6e5189
RW
4100(define-public python-simplegeneric
4101 (package
4102 (name "python-simplegeneric")
4103 (version "0.8.1")
4104 (source
4105 (origin
4106 (method url-fetch)
4107 (uri (string-append "https://pypi.python.org/packages/source/s/"
4108 "simplegeneric/simplegeneric-" version ".zip"))
4109 (sha256
4110 (base32 "0wwi1c6md4vkbcsfsf8dklf3vr4mcdj4mpxkanwgb6jb1432x5yw"))))
4111 (build-system python-build-system)
4112 (native-inputs
69b96e5e
RW
4113 `(("python-setuptools" ,python-setuptools)
4114 ("unzip" ,unzip)))
cd6e5189
RW
4115 (home-page "http://cheeseshop.python.org/pypi/simplegeneric")
4116 (synopsis "Python module for simple generic functions")
4117 (description
4118 "The simplegeneric module lets you define simple single-dispatch generic
4119functions, akin to Python’s built-in generic functions like @code{len()},
4120@code{iter()} and so on. However, instead of using specially-named methods,
4121these generic functions use simple lookup tables, akin to those used by
4122e.g. @code{pickle.dump()} and other generic functions found in the Python
4123standard library.")
4124 (license zpl2.1)))
4125
4126(define-public python2-simplegeneric
4127 (package-with-python2 python-simplegeneric))
4128
ddc7d8ed
RW
4129(define-public python-ipython-genutils
4130 (package
4131 (name "python-ipython-genutils")
4132 (version "0.1.0")
4133 (source
4134 (origin
4135 (method url-fetch)
4136 (uri (string-append "https://pypi.python.org/packages/source/i/"
4137 "ipython_genutils/ipython_genutils-"
4138 version ".tar.gz"))
4139 (sha256
4140 (base32 "19l2pp1c64ansr89l3cqh19jdi2ixhssdzx0vz4n6r52a6i281is"))))
4141 (build-system python-build-system)
4142 (arguments `(#:tests? #f)) ; no tests
4143 (home-page "http://ipython.org")
4144 (synopsis "Vestigial utilities from IPython")
4145 (description
4146 "This package provides retired utilities from IPython.")
4147 (license bsd-3)))
4148
4149(define-public python2-ipython-genutils
4150 (package-with-python2 python-ipython-genutils))
4151
2b10eb48
RW
4152(define-public python-traitlets
4153 (package
4154 (name "python-traitlets")
4155 (version "4.0.0")
4156 (source
4157 (origin
4158 (method url-fetch)
4159 (uri (string-append "https://pypi.python.org/packages/source/t/"
4160 "traitlets/traitlets-" version ".tar.gz"))
4161 (sha256
4162 (base32
4163 "0fr3w2xwb46c591dp7zw02bgf4d21mjy9g6rhwc9bwd4ji50n50b"))))
4164 (build-system python-build-system)
4165 (arguments
4166 `(#:phases
4167 (modify-phases %standard-phases
4168 (replace 'check (lambda _ (zero? (system* "nosetests")))))))
4169 (propagated-inputs
4170 `(("python-ipython-genutils" ,python-ipython-genutils)
4171 ("python-decorator" ,python-decorator)))
4172 (native-inputs
4173 `(("python-nose" ,python-nose)))
4174 (home-page "http://ipython.org")
4175 (synopsis "Configuration system for Python applications")
4176 (description
4177 "Traitlets is a framework that lets Python classes have attributes with
4178type checking, dynamically calculated default values, and ‘on change’
4179callbacks. The package also includes a mechanism to use traitlets for
4180configuration, loading values from files or from command line arguments. This
4181is a distinct layer on top of traitlets, so you can use traitlets in your code
4182without using the configuration machinery.")
4183 (license bsd-3)))
4184
4185(define-public python2-traitlets
4186 (package-with-python2 python-traitlets))
4187
ae1ab9fe
FB
4188(define-public python-ipython
4189 (package
4190 (name "python-ipython")
3a0b1b9a 4191 (version "3.2.1")
ae1ab9fe
FB
4192 (source
4193 (origin
fceac880
FB
4194 (method url-fetch)
4195 (patches (list (search-patch "python-ipython-inputhook-ctype.patch")))
4196 (uri (string-append "https://pypi.python.org/packages/source/i/"
4197 "ipython/ipython-" version ".tar.gz"))
4198 (sha256
4199 (base32 "0xwin0sa9n0cabx4cq1ibf5ldsiw5dyimibla82kicz5gbpas4y9"))))
ae1ab9fe
FB
4200 (build-system python-build-system)
4201 (outputs '("out" "doc"))
3a0b1b9a
FB
4202 (propagated-inputs
4203 `(("python-pyzmq" ,python-pyzmq)
4204 ("python-terminado" ,python-terminado)))
ae1ab9fe
FB
4205 (inputs
4206 `(("readline" ,readline)
3a0b1b9a 4207 ("which" ,which)
ae1ab9fe 4208 ("python-matplotlib" ,python-matplotlib)
5d26e542 4209 ("python-numpy" ,python-numpy)
ae1ab9fe 4210 ("python-numpydoc" ,python-numpydoc)
3a0b1b9a
FB
4211 ("python-jinja2" ,python-jinja2)
4212 ("python-mistune" ,python-mistune)
4213 ("python-jsonschema" ,python-jsonschema)
4214 ("python-pygments" ,python-pygments)
4215 ("python-requests" ,python-requests) ;; for tests
ae1ab9fe
FB
4216 ("python-nose" ,python-nose)))
4217 (native-inputs
4218 `(("pkg-config" ,pkg-config)
4219 ("python-sphinx" ,python-sphinx)
4220 ("texlive" ,texlive)
4221 ("texinfo" ,texinfo)
4222 ("python-setuptools" ,python-setuptools)))
4223 (arguments
89b5c60e 4224 `(#:phases
3a0b1b9a
FB
4225 (modify-phases %standard-phases
4226 (add-after
4227 'install 'install-doc
4228 (lambda* (#:key inputs outputs #:allow-other-keys)
4229 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
4230 (doc (string-append data "/doc/" ,name "-" ,version))
4231 (html (string-append doc "/html"))
4232 (man1 (string-append data "/man/man1"))
4233 (info (string-append data "/info"))
4234 (examples (string-append doc "/examples")))
afd3d931 4235 (setenv "LANG" "en_US.utf8")
3a0b1b9a
FB
4236 (with-directory-excursion "docs"
4237 ;; FIXME: html and pdf fail to build
4238 ;; (system* "make" "html")
4239 ;; (system* "make" "pdf" "PAPER=a4")
4240 (system* "make" "info"))
4241 (copy-recursively "docs/man" man1)
4242 (copy-recursively "examples" examples)
4243 ;; (copy-recursively "docs/build/html" html)
4244 ;; (copy-file "docs/build/latex/ipython.pdf"
4245 ;; (string-append doc "/ipython.pdf"))
4246 (mkdir-p info)
4247 (copy-file "docs/build/texinfo/ipython.info"
4248 (string-append info "/ipython.info"))
4249 (copy-file "COPYING.rst" (string-append doc "/COPYING.rst")))))
4250 ;; Tests can only be run after the library has been installed and not
4251 ;; within the source directory.
4252 (delete 'check)
4253 (add-after
4254 'install 'check
4255 (lambda* (#:key outputs tests? #:allow-other-keys)
4256 (if tests?
4257 (with-directory-excursion "/tmp"
4258 (setenv "HOME" "/tmp/") ;; required by a test
4259 (zero? (system* (string-append (assoc-ref outputs "out")
4260 "/bin/iptest"))))
4261 #t)))
4262 (add-before
4263 'install 'fix-tests
4264 (lambda* (#:key inputs #:allow-other-keys)
4265 (substitute* "./IPython/utils/_process_posix.py"
4266 (("/usr/bin/env', 'which") (which "which")))
4267 (substitute* "./IPython/core/tests/test_inputtransformer.py"
4268 (("#!/usr/bin/env python")
4269 (string-append "#!" (which "python"))))
4270 ;; Disable 1 failing test
4271 (substitute* "./IPython/core/tests/test_magic.py"
4272 (("def test_dirops\\(\\):" all)
4273 (string-append "@dec.skipif(True)\n" all))))))))
ae1ab9fe
FB
4274 (home-page "http://ipython.org")
4275 (synopsis "IPython is a tool for interactive computing in Python")
4276 (description
4277 "IPython provides a rich architecture for interactive computing with:
4278Powerful interactive shells, a browser-based notebook, support for interactive
4279data visualization, embeddable interpreters and tools for parallel
4280computing.")
4281 (license bsd-3)))
4282
4283(define-public python2-ipython
4284 (let ((ipython (package-with-python2 python-ipython)))
3a0b1b9a
FB
4285 (package
4286 (inherit ipython)
4287 ;; FIXME: some tests are failing
4288 (arguments
4289 `(#:tests? #f ,@(package-arguments ipython)))
ae1ab9fe 4290 ;; Make sure we use custom python2-NAME packages.
3a0b1b9a 4291 ;; FIXME: add pyreadline once available.
667d90df
RW
4292 (propagated-inputs
4293 `(("python2-terminado" ,python2-terminado)
4294 ,@(alist-delete "python-terminado"
4295 (package-propagated-inputs ipython))))
89b5c60e 4296 (inputs
264ae686
EF
4297 `(("python2-jsonschema" ,python2-jsonschema)
4298 ("python2-mock" ,python2-mock)
3a0b1b9a 4299 ("python2-matplotlib" ,python2-matplotlib)
5587253a 4300 ("python2-numpy" ,python2-numpy)
264ae686 4301 ("python2-requests" ,python2-requests)
5587253a 4302 ,@(fold alist-delete (package-inputs ipython)
264ae686 4303 '("python-jsonschema" "python-matplotlib" "python-numpy" "python-requests")))))))
03411993
AE
4304
4305(define-public python-isodate
4306 (package
4307 (name "python-isodate")
4308 (version "0.5.1")
4309 (source
4310 (origin
4311 (method url-fetch)
4312 (uri (string-append
4313 "https://pypi.python.org/packages/source/i/isodate/isodate-"
4314 version
4315 ".tar.gz"))
4316 (sha256
4317 (base32
4318 "1yqjn0is0p64cmk9xhq4hc6q06jk86d60kg2jws58d78q0qysami"))))
4319 (build-system python-build-system)
4320 (inputs
4321 `(("python-setuptools" ,python-setuptools)))
4322 (home-page
4323 "http://cheeseshop.python.org/pypi/isodate")
4324 (synopsis
4325 "Python date parser and formatter")
4326 (description
4327 "Python-isodate is a python module for parsing and formatting
4328ISO 8601 dates, time and duration.")
4329 (license bsd-3)))
4330
4331(define-public python2-isodate
4332 (package-with-python2 python-isodate))
673ab897
AE
4333
4334(define-public python-html5lib
4335 (package
4336 (name "python-html5lib")
4337 (version "1.0b3")
4338 (source
4339 (origin
4340 (method url-fetch)
4341 (uri (string-append
4342 "https://pypi.python.org/packages/source/h/html5lib/html5lib-"
4343 version
4344 ".tar.gz"))
4345 (sha256
4346 (base32
4347 "1l5i6xzckzx4hnh9qzv9q3kyhkgjx2hsi2k9srgci3qizjmvp6ln"))))
4348 (build-system python-build-system)
3dd75476
AE
4349 (propagated-inputs
4350 `(("python-six" ,python-six))) ; required to "import html5lib"
673ab897
AE
4351 (inputs
4352 `(("python-setuptools" ,python-setuptools)))
4353 (arguments
4354 `(#:test-target "check"))
4355 (home-page
4356 "https://github.com/html5lib/html5lib-python")
4357 (synopsis
4358 "Python HTML parser based on the WHATWG HTML specifcation")
4359 (description
4360 "Html5lib is an HTML parser based on the WHATWG HTML specifcation
4361and written in Python.")
bd3fa666 4362 (license license:expat)))
673ab897
AE
4363
4364(define-public python2-html5lib
4365 (package-with-python2 python-html5lib))
e99f4211
MW
4366
4367(define-public python-urwid
4368 (package
4369 (name "python-urwid")
4370 (version "1.3.0")
4371 (source
4372 (origin
4373 (method url-fetch)
b97c1bfd 4374 (uri (pypi-uri "urwid" version))
e99f4211
MW
4375 (sha256
4376 (base32
4377 "18mb0yy94sjc434rd61m2sfnw27sa0nyrszpj5a9r9zh7fnlzw19"))))
4378 (build-system python-build-system)
b97c1bfd
LF
4379 (arguments
4380 `(#:phases
4381 (modify-phases %standard-phases
4382 ;; Disable failing test. Bug filed upstream:
4383 ;; https://github.com/wardi/urwid/issues/164
4384 ;; TODO: check again for python-urwid > 1.3.0 or python > 3.4.3.
4385 (add-after 'unpack 'disable-failing-test
4386 (lambda _
4387 (substitute* "urwid/tests/test_event_loops.py"
4388 (("test_remove_watch_file")
4389 "disable_remove_watch_file")))))))
e99f4211
MW
4390 (native-inputs `(("python-setuptools" ,python-setuptools)))
4391 (home-page "http://urwid.org")
4392 (synopsis "Console user interface library for Python")
4393 (description
4394 "Urwid is a curses-based UI/widget library for Python. It includes many
4395features useful for text console applications.")
4396 (license lgpl2.1+)))
4397
4398(define-public python2-urwid
4399 (package-with-python2 python-urwid))
d95a56c6
PAR
4400
4401(define-public python-dbus
4402 (package
4403 (name "python-dbus")
4404 (version "1.2.0")
4405 (source
4406 (origin
4407 (method url-fetch)
4408 (uri (string-append
4409 "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-"
4410 version ".tar.gz"))
4411 (sha256
4412 (base32 "1py62qir966lvdkngg0v8k1khsqxwk5m4s8nflpk1agk5f5nqb71"))))
4413 (build-system gnu-build-system)
6717c879
SB
4414 (arguments
4415 '(#:phases
4416 (modify-phases %standard-phases
4417 (add-before
4418 'check 'pre-check
4419 (lambda _
4420 ;; XXX: For the missing '/etc/machine-id'.
4421 (substitute* "test/run-test.sh"
4422 (("DBUS_FATAL_WARNINGS=1")
4423 "DBUS_FATAL_WARNINGS=0"))
4424 #t)))))
d95a56c6
PAR
4425 (native-inputs
4426 `(("pkg-config" ,pkg-config)))
4427 (inputs
4428 `(("python" ,python)
2e88d113 4429 ("dbus-glib" ,dbus-glib)))
d95a56c6
PAR
4430 (synopsis "Python bindings for D-bus")
4431 (description "python-dbus provides bindings for libdbus, the reference
4432implementation of D-Bus.")
4433 (home-page "http://www.freedesktop.org/wiki/Software/DBusBindings/")
bd3fa666 4434 (license license:expat)))
b52af02b
MW
4435
4436(define-public python2-dbus
4437 (package (inherit python-dbus)
4438 (name "python2-dbus")
4439 (inputs `(("python" ,python-2)
4440 ,@(alist-delete "python"
4441 (package-inputs python-dbus)
4442 equal?)))
4443 ;; FIXME: on Python 2, the test_utf8 fails with:
4444 ;; "ValueError: unichr() arg not in range(0x10000) (narrow Python build)"
4445 (arguments `(#:tests? #f))))
a6ac8332
AE
4446
4447(define-public python-apsw
4448 (package
4449 (name "python-apsw")
917708c2 4450 (version "3.9.2-r1")
a6ac8332
AE
4451 (source
4452 (origin
4453 (method url-fetch)
917708c2 4454 (uri (pypi-uri "apsw" version))
a6ac8332
AE
4455 (sha256
4456 (base32
917708c2 4457 "0w4jb0wpx785qw42r3h4fh7gl5w2968q48i7gygybsfxck8nzffs"))))
a6ac8332
AE
4458 (build-system python-build-system)
4459 (inputs
4460 `(("python-setuptools" ,python-setuptools)
4461 ("sqlite" ,sqlite)))
4462 (arguments
4463 `(#:phases
4464 ;; swap check and install phases
4465 (alist-cons-after
4466 'install 'check
4467 (assoc-ref %standard-phases 'check)
4468 (alist-delete
4469 'check
4470 %standard-phases))))
4471 (home-page "https://github.com/rogerbinns/apsw/")
4472 (synopsis "Another Python SQLite Wrapper")
4473 (description "APSW is a Python wrapper for the SQLite
4474embedded relational database engine. In contrast to other wrappers such as
4475pysqlite it focuses on being a minimal layer over SQLite attempting just to
4476translate the complete SQLite API into Python.")
abde5f37 4477 (license license:zlib)))
a6ac8332
AE
4478
4479(define-public python2-apsw
4480 (package-with-python2 python-apsw))
26b307e2
AE
4481
4482(define-public python-lxml
4483 (package
4484 (name "python-lxml")
4485 (version "3.4.2")
4486 (source
4487 (origin
4488 (method url-fetch)
4489 (uri (string-append
4490 "https://pypi.python.org/packages/source/l/lxml/lxml-"
4491 version
4492 ".tar.gz"))
4493 (sha256
4494 (base32
4495 "0pd23qz8vms1mgm41p96h4vac5y91igs4wr9640gnvxgk019kmf7"))))
4496 (build-system python-build-system)
4497 (inputs
4498 `(("libxml2" ,libxml2)
4499 ("libxslt" ,libxslt)
4500 ("python-setuptools" ,python-setuptools)))
4501 (home-page "http://lxml.de/")
4502 (synopsis
4503 "Python XML processing library")
4504 (description
4505 "The lxml XML toolkit is a Pythonic binding for the C libraries
4506libxml2 and libxslt.")
4507 (license bsd-3))) ; and a few more, see LICENSES.txt
4508
4509(define-public python2-lxml
4510 (package-with-python2 python-lxml))
4ed20663 4511
bec07a7c
AE
4512(define-public python2-pil
4513 (package
4514 (name "python2-pil")
4515 (version "1.1.7")
4516 (source
4517 (origin
4518 (method url-fetch)
4519 (uri (string-append
4520 "http://effbot.org/downloads/Imaging-"
4521 version ".tar.gz"))
4522 (sha256
4523 (base32
516277cb
AE
4524 "04aj80jhfbmxqzvmq40zfi4z3cw6vi01m3wkk6diz3lc971cfnw9"))
4525 (modules '((guix build utils)))
4526 (snippet
4527 ;; Adapt to newer freetype. As the package is unmaintained upstream,
4528 ;; there is no use in creating a patch and reporting it.
4529 '(substitute* "_imagingft.c"
4530 (("freetype/")
4531 "freetype2/")))))
bec07a7c
AE
4532 (build-system python-build-system)
4533 (inputs
4534 `(("freetype" ,freetype)
4535 ("libjpeg" ,libjpeg)
4536 ("libtiff" ,libtiff)
4537 ("python-setuptools" ,python-setuptools)
4538 ("zlib" ,zlib)))
4539 (arguments
4540 ;; Only the fork python-pillow works with Python 3.
4541 `(#:python ,python-2
4542 #:tests? #f ; no check target
4543 #:phases
4544 (alist-cons-before
4545 'build 'configure
4546 ;; According to README and setup.py, manual configuration is
4547 ;; the preferred way of "searching" for inputs.
4548 ;; lcms is not found, TCL_ROOT refers to the unavailable tkinter.
4549 (lambda* (#:key inputs #:allow-other-keys)
4550 (let ((jpeg (assoc-ref inputs "libjpeg"))
4551 (zlib (assoc-ref inputs "zlib"))
4552 (tiff (assoc-ref inputs "libtiff"))
4553 (freetype (assoc-ref inputs "freetype")))
4554 (substitute* "setup.py"
4555 (("JPEG_ROOT = None")
4556 (string-append "JPEG_ROOT = libinclude(\"" jpeg "\")"))
4557 (("ZLIB_ROOT = None")
4558 (string-append "ZLIB_ROOT = libinclude(\"" zlib "\")"))
4559 (("TIFF_ROOT = None")
4560 (string-append "TIFF_ROOT = libinclude(\"" tiff "\")"))
4561 (("FREETYPE_ROOT = None")
4562 (string-append "FREETYPE_ROOT = libinclude(\""
4563 freetype "\")")))))
4564 %standard-phases)))
4565 (home-page "http://www.pythonware.com/products/pil/")
4566 (synopsis "Python Imaging Library")
4567 (description "The Python Imaging Library (PIL) adds image processing
4568capabilities to the Python interpreter.")
4569 (license (x11-style
4570 "file://README"
4571 "See 'README' in the distribution."))))
092e86f5
AE
4572
4573(define-public python2-cssutils
4574 (package
4575 (name "python2-cssutils")
4576 (version "1.0")
4577 (source
4578 (origin
4579 (method url-fetch)
4580 (uri (string-append
4581 "https://pypi.python.org/packages/source/c/cssutils/cssutils-"
4582 version
4583 ".zip"))
4584 (sha256
4585 (base32
4586 "1bwim1353r4hqiir73sn4sc43y7ymh09qx0kly7vj048blppc125"))))
4587 (build-system python-build-system)
4588 (native-inputs
4589 `(("python2-mock" ,python2-mock) ; for the tests
4590 ("unzip" ,unzip))) ; for unpacking the source
4591 (inputs
4592 `(("python2-setuptools" ,python2-setuptools)))
4593 (arguments
4594 `(#:python ,python-2 ; Otherwise tests fail with a syntax error.
4595 #:tests? #f ; The tests apparently download an external URL.
da6dd842 4596 ))
092e86f5
AE
4597 (home-page "http://cthedot.de/cssutils/")
4598 (synopsis
4599 "CSS Cascading Style Sheets library for Python")
4600 (description
4601 "Cssutils is a Python package for parsing and building CSS
4602Cascading Style Sheets. Currently it provides a DOM only and no rendering
4603options.")
4604 (license lgpl3+)))
880ff77c
AE
4605
4606(define-public python-cssselect
4607 (package
4608 (name "python-cssselect")
4609 (version "0.9.1")
4610 (source
4611 (origin
4612 (method url-fetch)
4613 (uri (string-append
4614 "https://pypi.python.org/packages/source/c/cssselect/cssselect-"
4615 version
4616 ".tar.gz"))
4617 (sha256
4618 (base32
4619 "10h623qnp6dp1191jri7lvgmnd4yfkl36k9smqklp1qlf3iafd85"))))
4620 (build-system python-build-system)
4621 (inputs
4622 `(("python-setuptools" ,python-setuptools)))
4623 (arguments
4624 ;; tests fail with message
4625 ;; AttributeError: 'module' object has no attribute 'tests'
4626 `(#:tests? #f))
4627 (home-page
4628 "https://pythonhosted.org/cssselect/")
4629 (synopsis
4630 "CSS3 selector parser and translator to XPath 1.0")
4631 (description
4632 "Cssselect ia a Python module that parses CSS3 Selectors and translates
4633them to XPath 1.0 expressions. Such expressions can be used in lxml or
4634another XPath engine to find the matching elements in an XML or HTML document.")
4635 (license bsd-3)))
4636
4637(define-public python2-cssselect
4638 (package-with-python2 python-cssselect))
60357f99
AE
4639
4640(define-public python-netifaces
4641 (package
4642 (name "python-netifaces")
4643 (version "0.10.4")
4644 (source
4645 (origin
4646 (method url-fetch)
4647 (uri (string-append
4648 "https://pypi.python.org/packages/source/n/netifaces/netifaces-"
4649 version
4650 ".tar.gz"))
4651 (sha256
4652 (base32
4653 "1plw237a4zib4z8s62g0mrs8gm3kjfrp5sxh6bbk9nl3rdls2mln"))))
4654 (build-system python-build-system)
4655 (inputs
4656 `(("python-setuptools" ,python-setuptools)))
4657 (home-page
4658 "https://bitbucket.org/al45tair/netifaces")
4659 (synopsis
4660 "Python module for portable network interface information")
4661 (description
4662 "Netifaces is a Python module providing information on network
4663interfaces in an easy and portable manner.")
4664 (license license:expat)))
4665
4666(define-public python2-netifaces
4667 (package-with-python2 python-netifaces))
92cb152b 4668
32f77c04
RW
4669(define-public python-networkx
4670 (package
4671 (name "python-networkx")
4672 (version "1.9.1")
4673 (source
4674 (origin
4675 (method url-fetch)
4676 (uri (string-append
4677 "https://pypi.python.org/packages/source/n/networkx/networkx-"
4678 version ".tar.gz"))
4679 (sha256
4680 (base32 "0n8wy0yq1kmdq4wh68mlhwhkndvwzx48lg41a1z0sxxms0wfp033"))))
4681 (build-system python-build-system)
4682 ;; python-decorator is needed at runtime
4683 (propagated-inputs
4684 `(("python-decorator" ,python-decorator)))
4685 (native-inputs
4686 `(("python-setuptools" ,python-setuptools)
4687 ("python-nose" ,python-nose)))
4688 (home-page "http://networkx.github.io/")
4689 (synopsis "Python module for creating and manipulating graphs and networks")
4690 (description
4691 "NetworkX is a Python package for the creation, manipulation, and study
4692of the structure, dynamics, and functions of complex networks.")
4693 (license bsd-3)))
4694
4695(define-public python2-networkx
4696 (package-with-python2 python-networkx))
4697
92cb152b
RW
4698(define-public snakemake
4699 (package
4700 (name "snakemake")
4701 (version "3.2.1")
4702 (source
4703 (origin
4704 (method url-fetch)
4705 (uri (string-append
4706 "https://pypi.python.org/packages/source/s/snakemake/snakemake-"
4707 version ".tar.gz"))
4708 (sha256
4709 (base32 "0fi4b63sj60hvi7rfydvmz2icl4wj74djw5sn2gl8hxd02qw4b91"))))
4710 (build-system python-build-system)
4711 (inputs `(("python-setuptools" ,python-setuptools)))
4712 (home-page "https://bitbucket.org/johanneskoester/snakemake")
4713 (synopsis "Python-based execution environment for make-like workflows")
4714 (description
4715 "Snakemake aims to reduce the complexity of creating workflows by
4716providing a clean and modern domain specific specification language (DSL) in
4717Python style, together with a fast and comfortable execution environment.")
4718 (license license:expat)))
a1920bc9 4719
35de1fbd
RW
4720(define-public python-seaborn
4721 (package
4722 (name "python-seaborn")
4723 (version "0.5.1")
4724 (source
4725 (origin
4726 (method url-fetch)
4727 (uri (string-append
4728 "https://pypi.python.org/packages/source/s/seaborn/seaborn-"
4729 version ".tar.gz"))
4730 (sha256
4731 (base32 "1236abw18ijjglmv60q85ckqrvgf5qyy4zlq7nz5aqfg6q87z3wc"))))
4732 (build-system python-build-system)
4733 (propagated-inputs
4734 `(("python-pandas" ,python-pandas)
4735 ("python-matplotlib" ,python-matplotlib)
4736 ("python-scipy" ,python-scipy)))
4737 (native-inputs
4738 `(("python-setuptools" ,python-setuptools)))
4739 (home-page "http://stanford.edu/~mwaskom/software/seaborn/")
4740 (synopsis "Statistical data visualization")
4741 (description
4742 "Seaborn is a library for making attractive and informative statistical
4743graphics in Python. It is built on top of matplotlib and tightly integrated
4744with the PyData stack, including support for numpy and pandas data structures
4745and statistical routines from scipy and statsmodels.")
4746 (license bsd-3)))
4747
4748(define-public python2-seaborn
4749 (let ((seaborn (package-with-python2 python-seaborn)))
4750 (package (inherit seaborn)
4751 (propagated-inputs
4752 `(("python2-pytz" ,python2-pytz)
dab8ebd9
FB
4753 ("python2-pandas" ,python2-pandas)
4754 ("python2-matplotlib" ,python2-matplotlib)
4755 ("python2-scipy" ,python2-scipy))))))
35de1fbd 4756
90fc547f
RW
4757(define-public python-sympy
4758 (package
4759 (name "python-sympy")
4760 (version "0.7.6")
4761 (source
4762 (origin
4763 (method url-fetch)
4764 (uri (string-append
4765 "https://github.com/sympy/sympy/releases/download/sympy-"
4766 version "/sympy-" version ".tar.gz"))
4767 (sha256
4768 (base32 "19yp0gy4i7p4g6l3b8vaqkj9qj7yqb5kqy0qgbdagpzgkdz958yz"))))
4769 (build-system python-build-system)
4770 (native-inputs
4771 `(("python-setuptools" ,python-setuptools)))
4772 (home-page "http://www.sympy.org/")
4773 (synopsis "Python library for symbolic mathematics")
4774 (description
4775 "SymPy is a Python library for symbolic mathematics. It aims to become a
4776full-featured computer algebra system (CAS) while keeping the code as simple
4777as possible in order to be comprehensible and easily extensible.")
4778 (license bsd-3)))
4779
4780(define-public python2-sympy
4781 (package-with-python2 python-sympy))
4782
a1920bc9
FB
4783(define-public python-testlib
4784 (package
4785 (name "python-testlib")
4786 (version "0.6.5")
4787 (source
4788 (origin
4789 (method url-fetch)
4790 (uri (string-append
4791 "https://pypi.python.org/packages/source/t/testlib/testlib-"
4792 version ".zip"))
4793 (sha256
4794 (base32 "1mz26cxn4x8bbgv0rn0mvj2z05y31rkc8009nvdlb3lam5b4mj3y"))))
4795 (build-system python-build-system)
4796 (inputs
4797 `(("python-setuptools" ,python-setuptools)))
4798 (native-inputs
4799 `(("unzip" ,unzip)))
4800 (arguments
4801 `(#:phases
4802 (alist-replace
4803 'unpack
4804 (lambda* (#:key inputs outputs #:allow-other-keys)
4805 (let ((unzip (string-append (assoc-ref inputs "unzip")
4806 "/bin/unzip"))
4807 (source (assoc-ref inputs "source")))
4808 (and (zero? (system* unzip source))
4809 (chdir (string-append "testlib-" ,version)))))
4810 %standard-phases)))
4811 (synopsis "Python micro test suite harness")
4812 (description "A micro unittest suite harness for Python.")
4813 (home-page "https://github.com/trentm/testlib")
1cb9c006 4814 (license license:expat)))
a1920bc9
FB
4815
4816(define-public python2-testlib
4817 (package-with-python2 python-testlib))
db62afa5
LC
4818
4819(define-public python2-xlib
4820 (package
4821 (name "python2-xlib")
4822 (version "0.14")
4823 (source (origin
4824 (method url-fetch)
4825 (uri (string-append "mirror://sourceforge/python-xlib/"
4826 "python-xlib-" version ".tar.gz"))
4827 (sha256
4828 (base32
4829 "1sv0447j0rx8cgs3jhjl695p5pv13ihglcjlrrz1kq05lsvb0wa7"))))
4830 (build-system python-build-system)
4831 (arguments
4832 `(#:python ,python-2 ;Python 2 only
4833 #:tests? #f)) ;no tests
4834 (inputs
4835 `(("python-setuptools" ,python-setuptools)))
4836 (home-page "http://python-xlib.sourceforge.net/")
4837 (synopsis "Python X11 client library")
4838 (description
4839 "The Python X Library is intended to be a fully functional X client
4840library for Python programs. It is useful to implement low-level X clients.
4841It is written entirely in Python.")
4842 (license gpl2+)))
0234ca06
DT
4843
4844(define-public python-singledispatch
4845 (package
4846 (name "python-singledispatch")
4847 (version "3.4.0.3")
4848 (source
4849 (origin
4850 (method url-fetch)
4851 (uri (string-append
4852 "https://pypi.python.org/packages/source/s/singledispatch/"
4853 "singledispatch-" version ".tar.gz"))
4854 (sha256
4855 (base32
4856 "171b7ip0hsq5qm83np40h3phlr36ym18w0lay0a8v08kvy3sy1jv"))))
4857 (build-system python-build-system)
4858 (native-inputs
4859 `(("python-setuptools" ,python-setuptools)))
4860 (propagated-inputs
4861 `(("python-six" ,python-six)))
4862 (home-page
4863 "http://docs.python.org/3/library/functools.html#functools.singledispatch")
4864 (synopsis "Backport of singledispatch feature from Python 3.4")
4865 (description
4866 "This library brings functools.singledispatch from Python 3.4 to Python
48672.6-3.3.")
4868 (license license:expat)))
4869
4870(define-public python2-singledispatch
4871 (package-with-python2 python-singledispatch))
feaae484 4872
310d218f
RW
4873(define-public python-tornado
4874 (package
4875 (name "python-tornado")
4876 (version "4.1")
4877 (source
4878 (origin
4879 (method url-fetch)
4880 (uri (string-append
4881 "https://pypi.python.org/packages/source/t/tornado/"
4882 "tornado-" version ".tar.gz"))
4883 (sha256
4884 (base32 "0a12f00h277zbifibnj46wf14801f573irvf6hwkgja5vspd7awr"))))
4885 (build-system python-build-system)
4886 (inputs
4887 `(("python-certifi" ,python-certifi)))
4888 (native-inputs
4889 `(("python-setuptools" ,python-setuptools)))
f4a4a718 4890 (home-page "http://www.tornadoweb.org/")
310d218f
RW
4891 (synopsis "Python web framework and asynchronous networking library")
4892 (description
4893 "Tornado is a Python web framework and asynchronous networking library,
4894originally developed at FriendFeed. By using non-blocking network I/O,
4895Tornado can scale to tens of thousands of open connections, making it ideal
4896for long polling, WebSockets, and other applications that require a long-lived
4897connection to each user.")
4898 (license asl2.0)))
4899
4900(define-public python2-tornado
4901 (let ((tornado (package-with-python2 python-tornado)))
4902 (package (inherit tornado)
4903 (inputs
4904 `(("python2-backport-ssl-match-hostname"
4905 ,python2-backport-ssl-match-hostname)
4906 ,@(package-inputs tornado))))))
4907
feaae484
SB
4908(define-public python-waf
4909 (package
4910 (name "python-waf")
4911 (version "1.8.8")
4912 (source (origin
4913 (method url-fetch)
4914 (uri (string-append "https://waf.io/"
4915 "waf-" version ".tar.bz2"))
4916 (sha256
4917 (base32
4918 "0b5q307fgn6a5d8yjia2d1l4bk1q3ilvc0w8k4isfrrx2gbcw8wn"))))
4919 (build-system python-build-system)
4920 (arguments
4921 '(#:phases
4922 (modify-phases %standard-phases
4923 (replace 'build
4924 (lambda _
4925 (zero? (begin
4926 (system* "python" "waf-light" "configure")
4927 (system* "python" "waf-light" "build")))))
4928 (replace 'check
4929 (lambda _
4930 (zero? (system* "python" "waf" "--version"))))
4931 (replace 'install
4932 (lambda _
4933 (copy-file "waf" %output))))))
4934 (home-page "https://waf.io/")
4935 (synopsis "Python-based build system")
4936 (description
4937 "Waf is a Python-based framework for configuring, compiling and installing
4938applications.")
4939 (license bsd-3)))
4940
4941(define-public python2-waf
4942 (package-with-python2 python-waf))
45203542
RW
4943
4944(define-public python-pyzmq
4945 (package
4946 (name "python-pyzmq")
3655ee76 4947 (version "15.1.0")
45203542
RW
4948 (source
4949 (origin
4950 (method url-fetch)
3655ee76 4951 (uri (pypi-uri "pyzmq" version))
45203542 4952 (sha256
3655ee76 4953 (base32 "13fhwnlvsvxv72kfhqbpn6qi7msh8mc8377mpabv32skk2cjfnxx"))))
45203542
RW
4954 (build-system python-build-system)
4955 (arguments
4956 `(#:configure-flags
4957 (list (string-append "--zmq=" (assoc-ref %build-inputs "zeromq")))
4958 ;; FIXME: You must build pyzmq with 'python setup.py build_ext
4959 ;; --inplace' for 'python setup.py test' to work.
4960 #:tests? #f))
4961 (inputs
4962 `(("zeromq" ,zeromq)))
4963 (native-inputs
4964 `(("pkg-config" ,pkg-config)
4965 ("python-nose" ,python-nose)
4966 ("python-setuptools" ,python-setuptools)))
4967 (home-page "http://github.com/zeromq/pyzmq")
4968 (synopsis "Python bindings for 0MQ")
4969 (description
4970 "PyZMQ is the official Python binding for the ZeroMQ messaging library.")
4971 (license bsd-4)))
4972
4973(define-public python2-pyzmq
4974 (package-with-python2 python-pyzmq))
d889e6c4
CR
4975
4976(define-public python-pep8
4977 (package
4978 (name "python-pep8")
4979 (version "1.6.2")
4980 (source
4981 (origin
4982 (method url-fetch)
4983 (uri (string-append
4984 "https://pypi.python.org/packages/source/p/pep8/pep8-"
4985 version
4986 ".tar.gz"))
4987 (sha256
4988 (base32
4989 "1zybkcdw1sx84dvkfss96nhykqg9bc0cdpwpl4k9wlxm61bf7dxq"))))
4990 (build-system python-build-system)
4991 (inputs
4992 `(("python-setuptools" ,python-setuptools)))
4993 (home-page "http://pep8.readthedocs.org/")
4994 (synopsis "Python style guide checker")
4995 (description
4996 "This tools checks Python code against some of the style conventions in
4997PEP 8.")
4998 (license license:expat)))
4999
5000(define-public python2-pep8
5001 (package-with-python2 python-pep8))
e31d7f44
CR
5002
5003(define-public python-pyflakes
5004 (package
5005 (name "python-pyflakes")
2abc3972 5006 (version "1.0.0")
e31d7f44
CR
5007 (source
5008 (origin
5009 (method url-fetch)
2abc3972 5010 (uri (pypi-uri "pyflakes" version))
e31d7f44
CR
5011 (sha256
5012 (base32
2abc3972 5013 "0qs2sgqszq7wcplis8509wk2ygqcrwzbs1ghfj3svvivq2j377pk"))))
e31d7f44
CR
5014 (build-system python-build-system)
5015 (inputs
5016 `(("python-setuptools" ,python-setuptools)))
5017 (home-page
5018 "https://github.com/pyflakes/pyflakes")
5019 (synopsis "Passive checker of Python programs")
5020 (description
5021 "Pyflakes statically checks Python source code for common errors.")
5022 (license license:expat)))
a59e017c 5023
7261d9eb
CR
5024(define-public python2-pyflakes
5025 (package-with-python2 python-pyflakes))
5026
a59e017c
CR
5027(define-public python-mccabe
5028 (package
5029 (name "python-mccabe")
5030 (version "0.3.1")
5031 (source
5032 (origin
5033 (method url-fetch)
5034 (uri (string-append
5035 "https://pypi.python.org/packages/source/m/mccabe/mccabe-"
5036 version
5037 ".tar.gz"))
5038 (sha256
5039 (base32
5040 "05ix3vdv5hjk4irl97n2n3c4g1vqvz7dbmkzs13f3bx97bxsczjz"))))
5041 (build-system python-build-system)
5042 (inputs
5043 `(("python-setuptools" ,python-setuptools)))
5044 (home-page "https://github.com/flintwork/mccabe")
5045 (synopsis "McCabe checker, plugin for flake8")
5046 (description
5047 "This package provides a Flake8 plug-in to compute the McCabe cyclomatic
5048complexity of Python source code.")
7362371d 5049 (license license:expat)))
a59e017c
CR
5050
5051(define-public python2-mccabe
5052 (package-with-python2 python-mccabe))
e8df8f47 5053
7477fbb1
CR
5054(define-public python-mccabe-0.2.1
5055 (package (inherit python-mccabe)
5056 (version "0.2.1")
5057 (source
5058 (origin
5059 (method url-fetch)
5060 (uri (pypi-uri "mccabe" version))
5061 (sha256
5062 (base32
5063 "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs"))))))
5064
5065(define-public python2-mccabe-0.2.1
5066 (package-with-python2 python-mccabe-0.2.1))
5067
e8df8f47
CR
5068;; Flake8 2.4.1 requires an older version of pep8.
5069;; This should be removed ASAP.
5070(define-public python-pep8-1.5.7
5071 (package (inherit python-pep8)
5072 (version "1.5.7")
5073 (source
5074 (origin
5075 (method url-fetch)
5076 (uri (string-append
5077 "https://pypi.python.org/packages/source/p/pep8/pep8-"
5078 version
5079 ".tar.gz"))
5080 (sha256
5081 (base32
5082 "12b9bbdbwnspxgak14xg58c130x2n0blxzlms5jn2dszn8qj3d0m"))))))
5083
5084(define-public python2-pep8-1.5.7
5085 (package-with-python2 python-pep8-1.5.7))
5086
5087;; Flake8 2.4.1 requires an older version of pyflakes.
5088;; This should be removed ASAP.
5089(define-public python-pyflakes-0.8.1
5090 (package (inherit python-pyflakes)
5091 (version "0.8.1")
5092 (source
5093 (origin
5094 (method url-fetch)
5095 (uri (string-append
5096 "https://pypi.python.org/packages/source/p/pyflakes/pyflakes-"
5097 version
5098 ".tar.gz"))
5099 (sha256
5100 (base32
5101 "0sbpq6pqm1i9wqi41mlfrsc5rk92jv4mskvlyxmnhlbdnc80ma1z"))))))
5102
5103(define-public python2-pyflakes-0.8.1
7261d9eb 5104 (package-with-python2 python-pyflakes-0.8.1))
e8df8f47
CR
5105
5106(define-public python-flake8
5107 (package
5108 (name "python-flake8")
1b995533 5109 (version "2.5.1")
e8df8f47
CR
5110 (source
5111 (origin
5112 (method url-fetch)
1b995533 5113 (uri (pypi-uri "flake8" version))
e8df8f47
CR
5114 (sha256
5115 (base32
1b995533 5116 "00sn2g5ydriv5anbipcrprpv797kh4q8rfa75w3fc7v7n14fv2j4"))))
e8df8f47
CR
5117 (build-system python-build-system)
5118 (inputs
5119 `(("python-setuptools" ,python-setuptools)
5120 ("python-pep8" ,python-pep8-1.5.7)
5121 ("python-pyflakes" ,python-pyflakes-0.8.1)
5122 ("python-mccabe" ,python-mccabe)
5123 ("python-mock" ,python-mock)
5124 ("python-nose" ,python-nose)))
5125 (home-page "https://gitlab.com/pycqa/flake8")
5126 (synopsis
5127 "The modular source code checker: pep8, pyflakes and co")
5128 (description
5129 "Flake8 is a wrapper around PyFlakes, pep8 and python-mccabe.")
5130 (license license:expat)))
5131
5132(define-public python2-flake8
5133 (package-with-python2 python-flake8))
61b9ac53 5134
abf21efc
CR
5135;; This will only be needed by the python-hacking package and will not be
5136;; necessary once python-hacking > 0.10.2 is released.
5137(define-public python-flake8-2.2.4
5138 (package (inherit python-flake8)
5139 (inputs
5140 `(("python-setuptools" ,python-setuptools)
5141 ("python-pep8" ,python-pep8-1.5.7)
5142 ("python-pyflakes" ,python-pyflakes-0.8.1)
5143 ("python-mccabe" ,python-mccabe-0.2.1)
5144 ("python-mock" ,python-mock)
5145 ("python-nose" ,python-nose)))
5146 (version "2.2.4")
5147 (source
5148 (origin
5149 (method url-fetch)
5150 (uri (pypi-uri "flake8" version))
5151 (sha256
5152 (base32
5153 "1r9wsry4va45h1rck5hxd3vzsg2q3y6lnl6pym1bxvz8ry19jwx8"))))))
5154
5155(define-public python2-flake8-2.2.4
5156 (package-with-python2 python-flake8-2.2.4))
5157
61b9ac53
FB
5158(define-public python-mistune
5159 (package
5160 (name "python-mistune")
5161 (version "0.7")
5162 (source
5163 (origin
5164 (method url-fetch)
5165 (uri (string-append
5166 "https://pypi.python.org/packages/source/m/mistune/mistune-"
5167 version
5168 ".tar.gz"))
5169 (sha256
5170 (base32
5171 "17zqjp9m4d1w3jf2rbbq5xshcw24q1vlcv24gkgfqqyyymajxahx"))))
5172 (build-system python-build-system)
5173 (inputs
5174 `(("python-setuptools" ,python-setuptools)
5175 ("python-nose" ,python-nose)
5176 ("python-cython" ,python-cython)))
5177 (home-page "https://github.com/lepture/mistune")
5178 (synopsis "Markdown parser in pure Python")
5179 (description "This package provides a fast markdown parser in pure
5180Python.")
5181 (license bsd-3)))
5182
5183(define-public python2-mistune
5184 (package-with-python2 python-mistune))
6d992d07 5185
b9893908
EE
5186(define-public python-markdown
5187 (package
5188 (name "python-markdown")
5189 (version "2.6.5")
5190 (source
5191 (origin
5192 (method url-fetch)
5193 (uri (pypi-uri "Markdown" version))
5194 (sha256
5195 (base32
5196 "0q758a3fiiawr20b3hhjfs677cwj6xi284yb7xspcvv0fdicz54d"))))
5197 (build-system python-build-system)
5198 (arguments
5199 `(#:phases
5200 (modify-phases %standard-phases
5201 (replace 'check
5202 (lambda _
5203 (zero? (system* "python" "run-tests.py")))))))
5204 (native-inputs
5205 `(("python-nose" ,python-nose)
5206 ("python-pyyaml" ,python-pyyaml)))
5207 (home-page "https://pythonhosted.org/Markdown/")
5208 (synopsis "Python implementation of Markdown")
5209 (description
5210 "This package provides a Python implementation of John Gruber's
5211Markdown. The library features international input, various Markdown
5212extensions, and several HTML output formats. A command line wrapper
5213markdown_py is also provided to convert Markdown files to HTML.")
5214 (license bsd-3)))
5215
5216(define-public python2-markdown
5217 (package-with-python2 python-markdown))
5218
6d992d07
FB
5219(define-public python-ptyprocess
5220 (package
5221 (name "python-ptyprocess")
5222 (version "0.5")
5223 (source
5224 (origin
5225 (method url-fetch)
5226 (uri (string-append
5227 "https://pypi.python.org/packages/source/p/ptyprocess/ptyprocess-"
5228 version ".tar.gz"))
5229 (sha256
5230 (base32
5231 "0nggns5kikn32yyda2zrj1xdmh49pi3v0drggcdwljbv36r8zdyw"))))
5232 (build-system python-build-system)
5233 (inputs
5234 `(("python-setuptools" ,python-setuptools)
5235 ("python-nose" ,python-nose)))
5236 (arguments
5237 `(#:phases
5238 (modify-phases %standard-phases
5239 (replace 'check
5240 (lambda _
5241 (zero? (system* "nosetests")))))))
5242 (home-page "https://github.com/pexpect/ptyprocess")
5243 (synopsis "Run a subprocess in a pseudo terminal")
5244 (description
5245 "This package provides a Python library used to launch a subprocess in a
5246pseudo terminal (pty), and interact with both the process and its pty.")
5247 (license isc)))
5248
5249(define-public python2-ptyprocess
5250 (package-with-python2 python-ptyprocess))
4aadb1df
FB
5251
5252(define-public python-terminado
5253 (package
5254 (name "python-terminado")
5255 (version "0.5")
5256 (source
5257 (origin
5258 (method url-fetch)
5259 (uri (string-append
5260 "https://pypi.python.org/packages/source/t/terminado/terminado-"
5261 version ".tar.gz"))
5262 (sha256
5263 (base32
5264 "1dkmp1n8dj5v1jl9mfrq8lwyc7dsfrvcmz2bgkpg315sy7pr7s33"))))
5265 (build-system python-build-system)
5266 (propagated-inputs
5267 `(("python-tornado" ,python-tornado)
5268 ("python-ptyprocess" ,python-ptyprocess)))
5269 (inputs
5270 `(("python-setuptools" ,python-setuptools)
5271 ("python-nose" ,python-nose)))
5272 (arguments
5273 `(#:phases
5274 (modify-phases %standard-phases
5275 (replace 'check
5276 (lambda _
5277 (zero? (system* "nosetests")))))))
5278 (home-page "https://github.com/takluyver/terminado")
5279 (synopsis "Terminals served to term.js using Tornado websockets")
5280 (description "This package provides a Tornado websocket backend for the
5281term.js Javascript terminal emulator library.")
5282 (license bsd-2)))
5283
5284(define-public python2-terminado
5285 (let ((terminado (package-with-python2 python-terminado)))
5286 (package (inherit terminado)
5287 (propagated-inputs
5288 `(("python2-tornado" ,python2-tornado)
5289 ("python2-backport-ssl-match-hostname"
5290 ,python2-backport-ssl-match-hostname)
5291 ,@(alist-delete "python-tornado"
5292 (package-propagated-inputs terminado)))))))
5faa5ce4 5293
d582eaac
SB
5294(define-public python-fonttools
5295 (package
5296 (name "python-fonttools")
5297 (version "2.5")
5298 (source (origin
5299 (method url-fetch)
5300 (uri (string-append
5301 "https://pypi.python.org/packages/source/F/FontTools/"
5302 "fonttools-" version ".tar.gz"))
5303 (sha256
5304 (base32
5305 "08ay3x4ijarwhl60gqx2i9jzq6pxs20p4snc2d1q5jagh4rn39lb"))))
5306 (build-system python-build-system)
5307 (arguments '(#:test-target "check"))
5308 (propagated-inputs
5309 ;; XXX: module not found if setuptools is not available.
5310 `(("python-setuptools" ,python-setuptools)))
5311 (home-page "http://github.com/behdad/fonttools")
5312 (synopsis "Tools to manipulate font files")
5313 (description
5314 "FontTools/TTX is a library to manipulate font files from Python. It
5315supports reading and writinfg of TrueType/OpenType fonts, reading and writing
5316of AFM files, reading (and partially writing) of PS Type 1 fonts. The package
5317also contains a tool called “TTX” which converts TrueType/OpenType fonts to and
5318from an XML-based format.")
5319 (license (non-copyleft "file://LICENSE.txt"
5320 "See LICENSE.txt in the distribution."))))
5321
5322(define-public python2-fonttools
5323 (package-with-python2 python-fonttools))
75710da6 5324
5faa5ce4
RW
5325(define-public python-ly
5326 (package
5327 (name "python-ly")
5328 (version "0.9.2")
5329 (source
5330 (origin
5331 (method url-fetch)
5332 (uri (string-append
5333 "https://pypi.python.org/packages/source/p/python-ly/python-ly-"
5334 version ".tar.gz"))
5335 (sha256
5336 (base32
5337 "1bsjg4q9ihr8bfdclrcmb8yjcg8xm9dznh58f3zsyrkrjzwbhcd2"))))
5338 (build-system python-build-system)
5339 (native-inputs
5340 `(("python-setuptools" ,python-setuptools)))
5341 (synopsis "Tool and library for manipulating LilyPond files")
5342 (description "This package provides a Python library to parse, manipulate
5343or create documents in LilyPond format. A command line program ly is also
5344provided that can be used to do various manipulations with LilyPond files.")
5345 (home-page "https://pypi.python.org/pypi/python-ly")
5346 (license gpl2+)))
7e7b27d9
CR
5347
5348(define-public python-appdirs
5349 (package
5350 (name "python-appdirs")
5351 (version "1.4.0")
5352 (source
5353 (origin
5354 (method url-fetch)
5355 (uri (string-append
5356 "https://pypi.python.org/packages/source/a/appdirs/appdirs-"
5357 version
5358 ".tar.gz"))
5359 (sha256
5360 (base32
5361 "1iddva7v3fq0aqzsahkazxr7vpw28mqcrsy818z4wyiqnkplbhlg"))))
5362 (build-system python-build-system)
5363 (inputs
5364 `(("python-setuptools" ,python-setuptools)))
5365 (home-page "http://github.com/ActiveState/appdirs")
5366 (synopsis
5367 "Determine platform-specific dirs, e.g. a \"user data dir\"")
5368 (description
5369 "This module provides a portable way of finding out where user data
5370should be stored on various operating systems.")
5371 (license license:expat)))
5372
5373(define-public python2-appdirs
5374 (package-with-python2 python-appdirs))
89b2e0b0
LF
5375
5376(define-public python-llfuse
5377 (package
5378 (name "python-llfuse")
5379 (version "0.41")
5380 (source (origin
5381 (method url-fetch)
5382 (uri (string-append
5383 "https://bitbucket.org/nikratio/python-llfuse/downloads/"
5384 "llfuse-" version ".tar.bz2"))
5385 (sha256
5386 (base32
5387 "0yzy8ixpmxk00kdq6lx5vvwbs0n6s59qnja5q0js2ahbqyxiz2hb"))))
5388 (build-system python-build-system)
5389 (inputs
5390 `(("fuse" ,fuse)
5391 ("attr" ,attr)))
5392 (native-inputs
5393 `(("pkg-config" ,pkg-config)
5394 ("python-setuptools" ,python-setuptools)))
5395 (synopsis "Python bindings for FUSE")
5396 (description
5397 "Python-LLFUSE is a set of Python bindings for the low level FUSE API.")
5398 (home-page "https://bitbucket.org/nikratio/python-llfuse/")
5399 ;; Python-LLFUSE includes underscore.js, which is MIT (expat) licensed.
5400 ;; The rest of the package is licensed under LGPL2.0 or later.
5401 (license (list license:expat lgpl2.0+))))
5402
5403(define-public python2-llfuse
5404 (package-with-python2 python-llfuse))
641c9871
LF
5405
5406(define-public python-msgpack
5407 (package
5408 (name "python-msgpack")
5409 (version "0.4.6")
5410 (source (origin
5411 (method url-fetch)
5412 (uri (string-append
5413 "https://pypi.python.org/packages/source/m/"
5414 "msgpack-python/msgpack-python-" version ".tar.gz"))
5415 (sha256
5416 (base32
5417 "1527c76b6fn4zzkgfq5xvhh7x9a9686g7fjiz717rw5vklf5ik5z"))))
5418 (build-system python-build-system)
5419 (native-inputs
5420 `(("python-setuptools" ,python-setuptools)))
5421 (synopsis "MessagePack (de)serializer")
5422 (description "MessagePack is a fast, compact binary serialization format,
5423suitable for similar data to JSON. This package provides CPython bindings for
5424reading and writing MessagePack data.")
5425 (home-page "https://pypi.python.org/pypi/msgpack-python/")
5426 (license asl2.0)))
5427
5428(define-public python2-msgpack
5429 (package-with-python2 python-msgpack))
6e5e39f4
CR
5430
5431(define-public python-netaddr
5432 (package
5433 (name "python-netaddr")
5434 (version "0.7.18")
5435 (source
5436 (origin
5437 (method url-fetch)
5438 (uri (string-append
5439 "https://pypi.python.org/packages/source/n/netaddr/netaddr-"
5440 version
5441 ".tar.gz"))
5442 (sha256
5443 (base32
5444 "06dxjlbcicq7q3vqy8agq11ra01kvvd47j4mk6dmghjsyzyckxd1"))))
5445 (build-system python-build-system)
5446 (arguments `(#:tests? #f)) ;; No tests.
5447 (inputs
5448 `(("python-setuptools" ,python-setuptools)))
5449 (home-page "https://github.com/drkjam/netaddr/")
5450 (synopsis "Pythonic manipulation of network addresses")
5451 (description
5452 "A Python library for representing and manipulating IPv4, IPv6, CIDR, EUI
5453and MAC network addresses.")
5454 (license bsd-3)))
5455
5456(define-public python2-netaddr
5457 (package-with-python2 python-netaddr))
8c692a52
CR
5458
5459(define-public python-wrapt
5460 (package
5461 (name "python-wrapt")
5462 (version "1.10.5")
5463 (source
5464 (origin
5465 (method url-fetch)
5466 (uri (string-append
5467 "https://pypi.python.org/packages/source/w/wrapt/wrapt-"
5468 version
5469 ".tar.gz"))
5470 (sha256
5471 (base32
5472 "0cq8rlpzkxzk48b50yrfhzn1d1hrq4gjcdqlrgq4v5palgiv9jwr"))))
5473 (build-system python-build-system)
5474 (arguments
5475 ;; Tests are not included in the tarball, they are only available in the
5476 ;; git repository.
5477 `(#:tests? #f))
5478 (inputs
5479 `(("python-setuptools" ,python-setuptools)))
5480 (home-page "https://github.com/GrahamDumpleton/wrapt")
5481 (synopsis "Module for decorators, wrappers and monkey patching")
5482 (description
5483 "The aim of the wrapt module is to provide a transparent object proxy for
5484 Python, which can be used as the basis for the construction of function
5485 wrappers and decorator functions.")
5486 (license bsd-2)))
5487
5488(define-public python2-wrapt
5489 (package-with-python2 python-wrapt))
b85c85be
CR
5490
5491(define-public python-iso8601
5492 (package
5493 (name "python-iso8601")
5494 (version "0.1.10")
5495 (source
5496 (origin
5497 (method url-fetch)
5498 (uri (string-append
5499 "https://pypi.python.org/packages/source/i/iso8601/iso8601-"
5500 version
5501 ".tar.gz"))
5502 (sha256
5503 (base32
5504 "1qf01afxh7j4gja71vxv345if8avg6nnm0ry0zsk6j3030xgy4p7"))))
5505 (build-system python-build-system)
5506 (inputs
5507 `(("python-setuptools" ,python-setuptools)))
5508 (home-page "https://bitbucket.org/micktwomey/pyiso8601")
5509 (synopsis "Module to parse ISO 8601 dates")
5510 (description
5511 "This module parses the most common forms of ISO 8601 date strings (e.g.
5512@code{2007-01-14T20:34:22+00:00}) into @code{datetime} objects.")
5513 (license license:expat)))
5514
5515(define-public python2-iso8601
5516 (package-with-python2 python-iso8601))
5e412b63
CR
5517
5518(define-public python-monotonic
5519 (package
5520 (name "python-monotonic")
5521 (version "0.3")
5522 (source
5523 (origin
5524 (method url-fetch)
5525 (uri (string-append
5526 "https://pypi.python.org/packages/source/m/monotonic/monotonic-"
5527 version
5528 ".tar.gz"))
5529 (sha256
5530 (base32
5531 "0yz0bcbwx8r2c01czzfpbrxddynxyk9k95jj8h6sgcb7xmfvl998"))))
5532 (build-system python-build-system)
5533 (inputs
5534 `(("python-setuptools" ,python-setuptools)))
5535 (home-page "https://github.com/atdt/monotonic")
5536 (synopsis "Implementation of time.monotonic() for Python 2 & < 3.3")
5537 (description
5538 "This module provides a monotonic() function which returns the value (in
5539fractional seconds) of a clock which never goes backwards.")
5540 (license asl2.0)))
5541
5542(define-public python2-monotonic
5543 (package-with-python2 python-monotonic))
de34afac
CR
5544
5545(define-public python-webob
5546 (package
5547 (name "python-webob")
b8834c21 5548 (version "1.5.1")
de34afac
CR
5549 (source
5550 (origin
5551 (method url-fetch)
b8834c21 5552 (uri (pypi-uri "WebOb" version))
de34afac
CR
5553 (sha256
5554 (base32
b8834c21 5555 "02bhhzijfhv8hmi1i54d4b0v43liwhnywhflvxsv4x3zax9s3afq"))))
de34afac
CR
5556 (build-system python-build-system)
5557 (inputs
5558 `(("python-nose" ,python-nose)
5559 ("python-setuptools" ,python-setuptools)))
5560 (home-page "http://webob.org/")
5561 (synopsis "WSGI request and response object")
5562 (description
5563 "WebOb provides wrappers around the WSGI request environment, and an
5564object to help create WSGI responses.")
5565 (license license:expat)))
5566
5567(define-public python2-webob
5568 (package-with-python2 python-webob))
350ba0a3 5569
02a8a187
BW
5570(define-public python-xlrd
5571 (package
5572 (name "python-xlrd")
5573 (version "0.9.4")
5574 (source (origin
5575 (method url-fetch)
5576 (uri (string-append "https://pypi.python.org/packages/source/x/"
5577 "xlrd/xlrd-" version ".tar.gz"))
5578 (sha256
5579 (base32
5580 "0wpa55nvidmm5m2qr622dsh3cj46akdk0h3zjgzschcmydck73cf"))))
5581 (build-system python-build-system)
5582 (arguments
5583 `(#:phases
5584 (modify-phases %standard-phases
5585 ;; Current test in setup.py does not work as of 0.9.4, so use nose to
5586 ;; run tests instead for now.
5587 (replace 'check (lambda _ (zero? (system* "nosetests")))))))
5588 (native-inputs `(("python-nose" ,python-nose)
5589 ("python-setuptools" ,python-setuptools)))
5590 (home-page "http://www.python-excel.org/")
5591 (synopsis "Library for extracting data from Excel files")
5592 (description "This packages provides a library to extract data from
5593spreadsheets using Microsoft Excel® proprietary file formats @samp{.xls} and
5594@samp{.xlsx} (versions 2.0 onwards). It has support for Excel dates and is
5595Unicode-aware. It is not intended as an end-user tool.")
5596 (license bsd-3)))
5597
5598(define-public python2-xlrd
5599 (package-with-python2 python-xlrd))
5600
350ba0a3
CR
5601(define-public python-prettytable
5602 (package
5603 (name "python-prettytable")
5604 (version "0.7.2")
5605 (source
5606 (origin
5607 (method url-fetch)
5608 (uri (string-append
5609 "https://pypi.python.org/packages/source/P/PrettyTable/"
5610 "prettytable-" version ".tar.bz2"))
5611 (sha256
5612 (base32
5613 "0diwsicwmiq2cpzpxri7cyl5fmsvicafw6nfqf6p6p322dji2g45"))))
5614 (build-system python-build-system)
5615 (inputs
5616 `(("python-setuptools" ,python-setuptools)))
5617 (home-page "http://code.google.com/p/prettytable/")
5618 (synopsis "Display tabular data in an ASCII table format")
5619 (description
5620 "A library designed to represent tabular data in visually appealing ASCII
5621tables. PrettyTable allows for selection of which columns are to be printed,
5622independent alignment of columns (left or right justified or centred) and
5623printing of sub-tables by specifying a row range.")
5624 (license bsd-3)))
5625
5626(define-public python2-prettytable
5627 (package-with-python2 python-prettytable))
7a8ac75a
RW
5628
5629(define-public python-pyasn1
5630 (package
5631 (name "python-pyasn1")
5632 (version "0.1.8")
5633 (source
5634 (origin
5635 (method url-fetch)
5636 (uri (string-append "https://pypi.python.org/packages/source/p/"
5637 "pyasn1/pyasn1-" version ".tar.gz"))
5638 (sha256
5639 (base32
5640 "0iw31d9l0zwx35szkzq72hiw002wnqrlrsi9dpbrfngcl1ybwcsx"))))
5641 (build-system python-build-system)
5642 (home-page "http://pyasn1.sourceforge.net/")
5643 (synopsis "ASN.1 types and codecs")
5644 (description
5645 "This is an implementation of ASN.1 types and codecs in Python. It is
5646suitable for a wide range of protocols based on the ASN.1 specification.")
5647 (license bsd-2)))
5648
5649(define-public python2-pyasn1
5650 (package-with-python2 python-pyasn1))
9a49a535 5651
5988c299
EF
5652(define-public python-pyasn1-modules
5653 (package
5654 (name "python-pyasn1-modules")
5655 (version "0.0.8")
5656 (source
5657 (origin
5658 (method url-fetch)
5659 (uri (pypi-uri "pyasn1-modules" version))
5660 (sha256
5661 (base32
5662 "0drqgw81xd3fxdlg89kgd79zzrabvfncvkbybi2wr6w2y4s1jmhh"))))
5663 (build-system python-build-system)
5664 (native-inputs
5665 `(("python-setuptools" ,python-setuptools)))
5666 (propagated-inputs
5667 `(("python-pyasn1" ,python-pyasn1)))
5668 (home-page "http://sourceforge.net/projects/pyasn1/")
5669 (synopsis "ASN.1 codec implementations")
5670 (description
5671 "Pyasn1-modules is a collection of Python modules providing ASN.1 types and
5672implementations of ASN.1-based codecs and protocols.")
5673 (license bsd-3)))
5674
5675(define-public python2-pyasn1-modules
5676 (package-with-python2 python-pyasn1-modules))
5677
9a49a535
RW
5678(define-public python2-ipaddress
5679 (package
5680 (name "python2-ipaddress")
5681 (version "1.0.14")
5682 (source
5683 (origin
5684 (method url-fetch)
5685 (uri (string-append "https://pypi.python.org/packages/source/i/"
5686 "ipaddress/ipaddress-" version ".tar.gz"))
5687 (sha256
5688 (base32
5689 "0givid4963n57nsjibms2fc347zmcs188q1hw9al1dkc9kj4nvr2"))))
5690 (build-system python-build-system)
5691 (arguments
5692 `(#:tests? #f ; no tests
5693 #:python ,python-2))
5694 (home-page "https://github.com/phihag/ipaddress")
5695 (synopsis "IP address manipulation library")
5696 (description
5697 "This package provides a fast, lightweight IPv4/IPv6 manipulation library
5698in Python. This library is used to create, poke at, and manipulate IPv4 and
5699IPv6 addresses and networks. This is a port of the Python 3.3 ipaddress
5700module to older versions of Python.")
5701 (license psfl)))
3f00e078
RW
5702
5703(define-public python-idna
5704 (package
5705 (name "python-idna")
5706 (version "2.0")
5707 (source
5708 (origin
5709 (method url-fetch)
5710 (uri (string-append "https://pypi.python.org/packages/source/i/"
5711 "idna/idna-" version ".tar.gz"))
5712 (sha256
5713 (base32
5714 "0frxgmgi234lr9hylg62j69j4ik5zhg0wz05w5dhyacbjfnrl68n"))))
5715 (build-system python-build-system)
5716 (native-inputs
5717 `(("python-setuptools" ,python-setuptools)))
5718 (home-page "https://github.com/kjd/idna")
5719 (synopsis "Internationalized domain names in applications")
5720 (description
5721 "This is a library to support the Internationalised Domain Names in
5722Applications (IDNA) protocol as specified in RFC 5891. This version of the
5723protocol is often referred to as “IDNA2008” and can produce different results
5724from the earlier standard from 2003. The library is also intended to act as a
5725suitable drop-in replacement for the “encodings.idna” module that comes with
5726the Python standard library but currently only supports the older 2003
5727specification.")
5728 (license bsd-4)))
5729
5730(define-public python2-idna
5731 (package-with-python2 python-idna))
36ebf972
RW
5732
5733(define-public python-pretend
5734 (package
5735 (name "python-pretend")
5736 (version "1.0.8")
5737 (source
5738 (origin
5739 (method url-fetch)
5740 (uri (string-append "https://pypi.python.org/packages/source/p/"
5741 "pretend/pretend-" version ".tar.gz"))
5742 (sha256
5743 (base32
5744 "0r5r7ygz9m6d2bklflbl84cqhjkc2q12xgis8268ygjh30g2q3wk"))))
5745 (build-system python-build-system)
5746 (native-inputs
5747 `(("python-setuptools" ,python-setuptools)))
5748 (home-page "https://github.com/alex/pretend")
5749 (synopsis "Library for stubbing in Python")
5750 (description
5751 "Pretend is a library to make stubbing with Python easier. Stubbing is a
5752technique for writing tests. You may hear the term mixed up with mocks,
5753fakes, or doubles. Basically, a stub is an object that returns pre-canned
5754responses, rather than doing any computation.")
5755 (license bsd-3)))
5756
5757(define-public python2-pretend
5758 (package-with-python2 python-pretend))
aa759a51
RW
5759
5760(define-public python-cryptography-vectors
5761 (package
5762 (name "python-cryptography-vectors")
b39b33e8 5763 (version "1.2.2")
aa759a51
RW
5764 (source
5765 (origin
5766 (method url-fetch)
5767 (uri (string-append "https://pypi.python.org/packages/source/c/"
5768 "cryptography-vectors/cryptography_vectors-"
5769 version ".tar.gz"))
5770 (sha256
5771 (base32
b39b33e8 5772 "1zg47fzzn30mgkkbwrxqqcfq9crgabcmxyiy106n9404wbhfjkkl"))))
aa759a51
RW
5773 (build-system python-build-system)
5774 (native-inputs
5775 `(("python-setuptools" ,python-setuptools)))
5776 (home-page "https://github.com/pyca/cryptography")
5777 (synopsis "Test vectors for the cryptography package.")
5778 (description
5779 "This package contains test vectors for the cryptography package.")
5780 ;; Distributed under either BSD-3 or ASL2.0
5781 (license (list bsd-3 asl2.0))))
5782
5783(define-public python2-cryptography-vectors
5784 (package-with-python2 python-cryptography-vectors))
88b47cb0
RW
5785
5786(define-public python-cryptography
5787 (package
5788 (name "python-cryptography")
ce6c13ee 5789 (version "1.2.2")
88b47cb0
RW
5790 (source
5791 (origin
5792 (method url-fetch)
ce6c13ee 5793 (uri (pypi-uri "cryptography" version))
88b47cb0
RW
5794 (sha256
5795 (base32
ce6c13ee 5796 "0rvaha7ymgbqkzbxk7xmj67k5b3hbp8w8cn3m5z776vd22wrq89z"))))
88b47cb0
RW
5797 (build-system python-build-system)
5798 (inputs
5799 `(("openssl" ,openssl)))
5800 (propagated-inputs
5801 `(("python-cffi" ,python-cffi)
5802 ("python-six" ,python-six)
5803 ("python-pyasn1" ,python-pyasn1)
5804 ("python-enum34" ,python-enum34)
5805 ("python-idna" ,python-idna)
5806 ("python-iso8601" ,python-iso8601)))
5807 (native-inputs
5808 `(("python-cryptography-vectors" ,python-cryptography-vectors)
ce6c13ee 5809 ("python-hypothesis" ,python-hypothesis)
88b47cb0
RW
5810 ("python-setuptools" ,python-setuptools)
5811 ("python-pretend" ,python-pretend)
ce6c13ee
EF
5812 ("python-pyasn1" ,python-pyasn1)
5813 ("python-pyasn1-modules" ,python-pyasn1-modules)
88b47cb0
RW
5814 ("python-pytest" ,python-pytest)))
5815 (home-page "https://github.com/pyca/cryptography")
5816 (synopsis "Cryptographic recipes and primitives for Python")
5817 (description
5818 "cryptography is a package which provides cryptographic recipes and
5819primitives to Python developers. It aims to be the “cryptographic standard
5820library” for Python. The package includes both high level recipes, and low
5821level interfaces to common cryptographic algorithms such as symmetric ciphers,
5822message digests and key derivation functions.")
5823 ;; Distributed under either BSD-3 or ASL2.0
5824 (license (list bsd-3 asl2.0))))
5825
5826(define-public python2-cryptography
5827 (let ((crypto (package-with-python2 python-cryptography)))
5828 (package (inherit crypto)
5829 (propagated-inputs
5830 `(("python2-ipaddress" ,python2-ipaddress)
ce6c13ee
EF
5831 ("python2-backport-ssl-match-hostname"
5832 ,python2-backport-ssl-match-hostname)
88b47cb0 5833 ,@(package-propagated-inputs crypto))))))
5af999b8
RW
5834
5835(define-public python-pyopenssl
5836 (package
5837 (name "python-pyopenssl")
5838 (version "0.15.1")
5839 (source
5840 (origin
5841 (method url-fetch)
5842 (uri (string-append "https://pypi.python.org/packages/source/p/"
5843 "pyOpenSSL/pyOpenSSL-" version ".tar.gz"))
5844 (sha256
5845 (base32
5846 "0wnnq15rhj7fhdcd8ycwiw6r6g3w9f9lcy6cigg8226vsrq618ph"))))
5847 (build-system python-build-system)
5848 (arguments
5849 `(#:phases
5850 (modify-phases %standard-phases
5851 (add-after 'unpack 'fix-tests
5852 (lambda* (#:key inputs #:allow-other-keys)
5853 (substitute* "OpenSSL/test/test_ssl.py"
5854 (("client\\.connect\\(\\('verisign\\.com', 443\\)\\)")
5855 "return True")
5856 ;; FIXME: disable broken test
5857 (("test_set_tmp_ecdh") "disabled__set_tmp_ecdh"))
5858 (substitute* "OpenSSL/test/test_crypto.py"
5859 (("command = b\"openssl \"")
5860 (string-append "command = b\""
5861 (assoc-ref inputs "openssl")
5862 "/bin/openssl" " \""))
5863 ;; FIXME: disable four broken tests
5864 (("test_der") "disabled__der")
5865 (("test_digest") "disabled__digest")
5866 (("test_get_extension") "disabled__get_extension")
5867 (("test_extension_count") "disabled__extension_count"))
5868 #t)))))
5869 (propagated-inputs
5870 `(("python-cryptography" ,python-cryptography)
5871 ("python-six" ,python-six)))
5872 (inputs
5873 `(("openssl" ,openssl)))
5874 (native-inputs
5875 `(("python-setuptools" ,python-setuptools)))
5876 (home-page "https://github.com/pyca/pyopenssl")
5877 (synopsis "Python wrapper module around the OpenSSL library")
5878 (description
5879 "PyOpenSSL is a high-level wrapper around a subset of the OpenSSL
5880library.")
5881 (license asl2.0)))
5882
5883(define-public python2-pyopenssl
5884 (let ((pyopenssl (package-with-python2 python-pyopenssl)))
5885 (package (inherit pyopenssl)
5886 (propagated-inputs
5887 `(("python2-cryptography" ,python2-cryptography)
5888 ,@(alist-delete "python-cryptography"
5889 (package-propagated-inputs pyopenssl)))))))
643725a1
CR
5890
5891(define-public python-pip
5892 (package
5893 (name "python-pip")
6fb54e3b 5894 (version "8.0.2")
643725a1
CR
5895 (source
5896 (origin
5897 (method url-fetch)
6fb54e3b 5898 (uri (pypi-uri "pip" version))
643725a1
CR
5899 (sha256
5900 (base32
6fb54e3b 5901 "08cm8d4228fj0qnrysy3qv1a6022zr3dcs25amd14lgxil6vvx26"))))
643725a1
CR
5902 (build-system python-build-system)
5903 (inputs
5904 `(("python-setuptools" ,python-setuptools)
5905 ("python-virtualenv" ,python-virtualenv)
5906 ;; Tests
5907 ("python-mock" ,python-mock)
5908 ("python-pytest" ,python-pytest)
5909 ("python-scripttest" ,python-scripttest)))
5910 (home-page "https://pip.pypa.io/")
5911 (synopsis
5912 "Package manager for Python software")
5913 (description
5914 "Pip is a package manager for Python software, that finds packages on the
5915Python Package Index (PyPI).")
5916 (license license:expat)))
5917
5918(define-public python2-pip
5919 (package-with-python2 python-pip))
d8c4998f
LC
5920
5921(define-public python-tlsh
5922 (package
5923 (name "python-tlsh")
99b00dc7 5924 (version "3.4.4")
d8c4998f
LC
5925 (home-page "https://github.com/trendmicro/tlsh")
5926 (source (origin
99b00dc7
EF
5927 (method url-fetch)
5928 (uri (string-append "https://github.com/trendmicro/tlsh/archive/v"
5929 version ".tar.gz"))
d8c4998f
LC
5930 (sha256
5931 (base32
99b00dc7
EF
5932 "00bhzjqrlh7v538kbkbn8lgx976j1138al3sdhklaizqjvpwyk4r"))
5933 (file-name (string-append name "-" version ".tar.gz"))))
d8c4998f
LC
5934 (build-system cmake-build-system)
5935 (arguments
5936 '(#:out-of-source? #f
5937 #:phases (modify-phases %standard-phases
5938 (replace
5939 'install
5940 (lambda* (#:key outputs #:allow-other-keys)
5941 ;; Build and install the Python bindings. The underlying
5942 ;; C++ library is apparently not meant to be installed.
5943 (let ((out (assoc-ref outputs "out")))
5944 (with-directory-excursion "py_ext"
5945 (and (system* "python" "setup.py" "build")
5946 (system* "python" "setup.py" "install"
5947 (string-append "--prefix=" out))))))))))
5948 (inputs `(("python" ,python-wrapper))) ;for the bindings
5949 (synopsis "Fuzzy matching library for Python")
5950 (description
5951 "Trend Micro Locality Sensitive Hash (TLSH) is a fuzzy matching library.
5952Given a byte stream with a minimum length of 256 bytes, TLSH generates a hash
5953value which can be used for similarity comparisons. Similar objects have
5954similar hash values, which allows for the detection of similar objects by
5955comparing their hash values. The byte stream should have a sufficient amount
5956of complexity; for example, a byte stream of identical bytes will not generate
5957a hash value.")
5958 (license asl2.0)))
5959
5960(define-public python2-tlsh
5961 (package
5962 (inherit python-tlsh)
5963 (name "python2-tlsh")
5964 (inputs `(("python" ,python-2)))))
d96034ed
LC
5965
5966(define-public python-libarchive-c
5967 (package
5968 (name "python-libarchive-c")
03fd001c 5969 (version "2.2")
d96034ed
LC
5970 (source (origin
5971 (method url-fetch)
03fd001c 5972 (uri (pypi-uri "libarchive-c" version))
d96034ed
LC
5973 (sha256
5974 (base32
03fd001c 5975 "0z4r7v3dhd6b3120mav05ff08srih176r2rg5k8kn7mjd9pslm2x"))))
d96034ed
LC
5976 (build-system python-build-system)
5977 (arguments
5978 '(#:phases (modify-phases %standard-phases
5979 (add-before
5980 'build 'reference-libarchive
5981 (lambda* (#:key inputs #:allow-other-keys)
5982 ;; Retain the absolute file name of libarchive.so.
5983 (let ((libarchive (assoc-ref inputs "libarchive")))
5984 (substitute* "libarchive/ffi.py"
5985 (("find_library\\('archive'\\)")
5986 (string-append "'" libarchive
5987 "/lib/libarchive.so'"))))
5988
5989 ;; Do not make a compressed egg (see
5990 ;; <http://bugs.gnu.org/20765>).
5991 (let ((port (open-file "setup.cfg" "a")))
5992 (display "\n[easy_install]\nzip_ok = 0\n"
5993 port)
5994 (close-port port)
5995 #t))))))
5996 (inputs
5997 `(("python-setuptools" ,python-setuptools)
5998 ("libarchive" ,libarchive)))
5999 (home-page "https://github.com/Changaco/python-libarchive-c")
6000 (synopsis "Python interface to libarchive")
6001 (description
6002 "This package provides Python bindings to libarchive, a C library to
6003access possibly compressed archives in many different formats. It uses
6004Python's @code{ctypes} foreign function interface (FFI).")
6005 (license lgpl2.0+)))
6006
6007(define-public python2-libarchive-c
6008 (package-with-python2 python-libarchive-c))
5e1c9367
LC
6009
6010(define-public python-file
6011 (package
6012 (inherit file)
6013 (name "python-file")
6014 (build-system python-build-system)
6015 (arguments
6016 '(#:tests? #f ;no tests
6017 #:phases (modify-phases %standard-phases
6018 (add-before 'build 'change-directory
6019 (lambda _
6020 (chdir "python")
6021 #t))
6022 (add-before 'build 'set-library-file-name
6023 (lambda* (#:key inputs #:allow-other-keys)
6024 (let ((file (assoc-ref inputs "file")))
6025 (substitute* "magic.py"
6026 (("find_library\\('magic'\\)")
6027 (string-append "'" file "/lib/libmagic.so'")))
6028 #t))))))
6029 (inputs `(("file" ,file)))
6030 (self-native-input? #f)
6031 (synopsis "Python bindings to the libmagic file type guesser")))
6032
6033(define-public python2-file
6034 (package-with-python2 python-file))
85d4aeac
LC
6035
6036(define-public python-debian
6037 (package
6038 (name "python-debian")
6039 (version "0.1.23")
6040 (source
6041 (origin
6042 (method url-fetch)
6043 (uri (string-append
6044 "https://pypi.python.org/packages/source/p/python-debian/python-debian-"
6045 version ".tar.gz"))
6046 (sha256
6047 (base32
6048 "193faznwnjc3n5991wyzim6h9gyq1zxifmfrnpm3avgkh7ahyynh"))))
6049 (build-system python-build-system)
6050 (inputs
6051 `(("python-six" ,python-six)))
6052 (native-inputs
6053 `(("python-setuptools" ,python-setuptools)))
6054 (home-page "http://packages.debian.org/sid/python-debian")
6055 (synopsis "Debian package related modules")
6056 (description
5c7bdc9a
LC
6057 ;; XXX: Use @enumerate instead of @itemize to work around
6058 ;; <http://bugs.gnu.org/21772>.
85d4aeac
LC
6059 "This package provides Python modules that abstract many formats of
6060Debian-related files, such as:
6061
5c7bdc9a 6062@enumerate
85d4aeac
LC
6063@item Debtags information;
6064@item @file{debian/changelog} files;
6065@item packages files, pdiffs;
6066@item control files of single or multiple RFC822-style paragraphs---e.g.
6067 @file{debian/control}, @file{.changes}, @file{.dsc};
6068@item Raw @file{.deb} and @file{.ar} files, with (read-only) access to
6069 contained files and meta-information.
5c7bdc9a 6070@end enumerate\n")
85d4aeac
LC
6071
6072 ;; Modules are either GPLv2+ or GPLv3+.
6073 (license gpl3+)))
6074
6075(define-public python2-debian
6076 (package-with-python2 python-debian))
816a6538
LC
6077
6078(define-public python-chardet
6079 (package
6080 (name "python-chardet")
6081 (version "2.3.0")
6082 (source
6083 (origin
6084 (method url-fetch)
6085 (uri (string-append
6086 "https://pypi.python.org/packages/source/c/chardet/chardet-"
6087 version
6088 ".tar.gz"))
6089 (sha256
6090 (base32
6091 "1ak87ikcw34fivcgiz2xvi938dmclh078az65l9x3rmgljrkhgp5"))))
6092 (build-system python-build-system)
6093 (native-inputs
6094 `(("python-setuptools" ,python-setuptools)))
6095 (home-page "https://github.com/chardet/chardet")
6096 (synopsis "Universal encoding detector for Python 2 and 3")
6097 (description
6098 "This package provides @code{chardet}, a Python module that can
6099automatically detect a wide range of file encodings.")
6100 (license lgpl2.1+)))
6101
6102(define-public python2-chardet
6103 (package-with-python2 python-chardet))
2fc5f186 6104
1872f1bb
KM
6105(define-public python-docopt
6106 (package
6107 (name "python-docopt")
6108 (version "0.6.2")
6109 (source
6110 (origin
6111 (method url-fetch)
6112 ;; The release on PyPI does not include tests.
6113 (uri (string-append
6114 "https://github.com/docopt/docopt/archive/"
6115 version ".tar.gz"))
6116 (file-name (string-append name "-" version ".tar.gz"))
6117 (sha256
6118 (base32
6119 "16bf890xbdz3m30rsv2qacklh2rdn1zrfspfnwzx9g7vwz8yw4r1"))))
6120 (build-system python-build-system)
6121 (native-inputs
6122 `(("python-pytest" ,python-pytest)
6123 ("python-setuptools" ,python-setuptools)))
6124 (arguments
6125 `(#:phases (alist-replace
6126 'check
6127 (lambda _ (zero? (system* "py.test")))
6128 %standard-phases)))
6129 (home-page "http://docopt.org")
6130 (synopsis "Command-line interface description language for Python")
6131 (description "This library allows the user to define a command-line
6132interface from a program's help message rather than specifying it
6133programatically with command-line parsers like @code{getopt} and
6134@code{argparse}.")
6135 (license license:expat)))
6136
6137(define-public python2-docopt
6138 (package-with-python2 python-docopt))
6139
2fc5f186
LF
6140(define-public python-zope-event
6141 (package
6142 (name "python-zope-event")
6143 (version "4.1.0")
6144 (source
6145 (origin
6146 (method url-fetch)
6147 (uri (string-append "https://pypi.python.org/packages/source/z"
6148 "/zope.event/zope.event-" version ".tar.gz"))
6149 (sha256
6150 (base32
6151 "11p75zpfz3ffhz21nzx9wb23xs993ck5s6hkjcvhswwizni5jynw"))))
6152 (build-system python-build-system)
6153 (inputs
6154 `(("python-setuptools" ,python-setuptools)))
6155 (home-page "http://pypi.python.org/pypi/zope.event")
6156 (synopsis "Event publishing system for Python")
6157 (description "Zope.event provides an event publishing API, intended for
6158use by applications which are unaware of any subscribers to their events. It
6159is a simple event-dispatching system on which more sophisticated event
6160dispatching systems can be built.")
6161 (license zpl2.1)))
6162
6163(define-public python2-zope-event
6164 (package-with-python2 python-zope-event))
97abe268
LF
6165
6166(define-public python-zope-interface
6167 (package
6168 (name "python-zope-interface")
6169 (version "4.1.3")
6170 (source
6171 (origin
6172 (method url-fetch)
6173 (uri (string-append "https://pypi.python.org/packages/source/z"
6174 "/zope.interface/zope.interface-" version ".tar.gz"))
6175 (sha256
6176 (base32
6177 "0ks8h73b2g4bkad821qbv0wzjppdrwys33i7ka45ik3wxjg1l8if"))))
6178 (build-system python-build-system)
6179 (propagated-inputs
6180 `(("python-zope-event" ,python-zope-event)))
6181 (home-page "https://github.com/zopefoundation/zope.interface")
6182 (synopsis "Python implementation of the \"design by contract\"
6183methodology")
6184 (description "Zope.interface provides an implementation of \"object
6185interfaces\" for Python. Interfaces are a mechanism for labeling objects as
6186conforming to a given API or contract.")
6187 (license zpl2.1)))
6188
6189(define-public python2-zope-interface
6190 (package-with-python2 python-zope-interface))
81f2373c
LF
6191
6192(define-public python-zope-exceptions
6193 (package
6194 (name "python-zope-exceptions")
6195 (version "4.0.8")
6196 (source
6197 (origin
6198 (method url-fetch)
6199 (uri (string-append "https://pypi.python.org/packages/source/z"
6200 "/zope.exceptions/zope.exceptions-"
6201 version ".tar.gz"))
6202 (sha256
6203 (base32
6204 "0zwxaaa66sqxg5k7zcrvs0fbg9ym1njnxnr28dfmchzhwjvwnfzl"))))
6205 (build-system python-build-system)
6206 (arguments
6207 '(#:tests? #f)) ; circular dependency with zope.testrunner
6208 (propagated-inputs
6209 `(("python-zope-interface" ,python-zope-interface)))
6210 (home-page "http://cheeseshop.python.org/pypi/zope.exceptions")
6211 (synopsis "Zope exceptions")
6212 (description "Zope.exceptions provides general-purpose exception types
6213that have uses outside of the Zope framework.")
6214 (license zpl2.1)))
6215
6216(define-public python2-zope-exceptions
6217 (package-with-python2 python-zope-exceptions))
900e3c0e
LF
6218
6219(define-public python-zope-testing
6220 (package
6221 (name "python-zope-testing")
6222 (version "4.5.0")
6223 (source
6224 (origin
6225 (method url-fetch)
6226 (uri (string-append "https://pypi.python.org/packages/source/z"
6227 "/zope.testing/zope.testing-" version ".tar.gz"))
6228 (sha256
6229 (base32
6230 "1yvglxhzvhl45mndvn9gskx2ph30zz1bz7rrlyfs62fv2pvih90s"))))
6231 (build-system python-build-system)
6232 (native-inputs
6233 `(("python-zope-exceptions" ,python-zope-exceptions)))
6234 (propagated-inputs
6235 `(("python-zope-interface" ,python-zope-interface)))
6236 (home-page "http://pypi.python.org/pypi/zope.testing")
6237 (synopsis "Zope testing helpers")
6238 (description "Zope.testing provides a number of testing utilities for HTML
6239forms, HTTP servers, regular expressions, and more.")
6240 (license zpl2.1)))
6241
6242(define-public python2-zope-testing
6243 (package-with-python2 python-zope-testing))
01614c4f
LF
6244
6245(define-public python-zope-testrunner
6246 (package
6247 (name "python-zope-testrunner")
6248 (version "4.4.9")
6249 (source
6250 (origin
6251 (method url-fetch)
6252 (uri (string-append "https://pypi.python.org/packages/source/z"
6253 "/zope.testrunner/zope.testrunner-"
6254 version ".zip"))
6255 (sha256
6256 (base32
6257 "1r7iqknhh55y45f64mz5hghgvzx34h1i11k350s0avx6q8gznja1"))))
6258 (build-system python-build-system)
6259 (native-inputs
6260 `(("python-six" ,python-six)
6261 ("python-zope-exceptions" ,python-zope-exceptions)
6262 ("python-zope-testing" ,python-zope-testing)
6263 ("unzip" ,unzip)))
6264 (propagated-inputs
6265 `(("python-zope-interface" ,python-zope-interface)))
6266 (home-page "http://pypi.python.org/pypi/zope.testrunner")
6267 (synopsis "Zope testrunner script")
6268 (description "Zope.testrunner provides a script for running Python
6269tests.")
6270 (license zpl2.1)))
6271
6272(define-public python2-zope-testrunner
6273 (let ((base (package-with-python2 python-zope-testrunner)))
6274 (package
6275 (inherit base)
6276 (native-inputs
6277 (append (package-native-inputs base)
6278 `(("python2-subunit" ,python2-subunit)
6279 ("python2-mimeparse" ,python2-mimeparse)))))))
6a5c710c
LF
6280
6281(define-public python-zope-i18nmessageid
6282 (package
6283 (name "python-zope-i18nmessageid")
6284 (version "4.0.3")
6285 (source
6286 (origin
6287 (method url-fetch)
6288 (uri (string-append
6289 "https://pypi.python.org/packages/source/z"
6290 "/zope.i18nmessageid/zope.i18nmessageid-"
6291 version ".tar.gz"))
6292 (sha256
6293 (base32
6294 "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml"))))
6295 (build-system python-build-system)
6296 (inputs
6297 `(("python-setuptools" ,python-setuptools)))
6298 (home-page "http://pypi.python.org/pypi/zope.i18nmessageid")
6299 (synopsis "Message identifiers for internationalization")
6300 (description "Zope.i18nmessageid provides facilities for declaring
6301internationalized messages within program source text.")
6302 (license zpl2.1)))
6303
6304(define-public python2-zope-i18nmessageid
6305 (package-with-python2 python-zope-i18nmessageid))
71fb09f3
LF
6306
6307(define-public python-zope-schema
6308 (package
6309 (name "python-zope-schema")
6310 (version "4.4.2")
6311 (source
6312 (origin
6313 (method url-fetch)
6314 (uri (string-append "https://pypi.python.org/packages/source/z"
6315 "/zope.schema/zope.schema-" version ".tar.gz"))
6316 (sha256
6317 (base32
6318 "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank"))))
6319 (build-system python-build-system)
6320 (propagated-inputs
6321 `(("python-zope-event" ,python-zope-event)
6322 ("python-zope-interface" ,python-zope-interface)))
6323 (native-inputs
6324 `(("python-zope-testing" ,python-zope-testing)))
6325 (home-page "http://pypi.python.org/pypi/zope.schema")
6326 (synopsis "Zope data schemas")
6327 (description "Zope.scheme provides extensions to zope.interface for
6328defining data schemas.")
6329 (license zpl2.1)))
6330
6331(define-public python2-zope-schema
6332 (package-with-python2 python-zope-schema))
fbac9b17
LF
6333
6334(define-public python-zope-configuration
6335 (package
6336 (name "python-zope-configuration")
6337 (version "4.0.3")
6338 (source (origin
6339 (method url-fetch)
6340 (uri (string-append "https://pypi.python.org/packages/source/z"
6341 "/zope.configuration/zope.configuration-"
6342 version ".tar.gz"))
6343 (sha256
6344 (base32
6345 "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n"))))
6346 (build-system python-build-system)
6347 (propagated-inputs
6348 `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
6349 ("python-zope-schema" ,python-zope-schema)))
6350 (home-page "http://pypi.python.org/pypi/zope.configuration")
6351 (synopsis "Zope Configuration Markup Language")
6352 (description "Zope.configuration implements ZCML, the Zope Configuration
6353Markup Language.")
6354 (license zpl2.1)))
6355
6356(define-public python2-zope-configuration
6357 (package-with-python2 python-zope-configuration))
2ad52086
LF
6358
6359(define-public python-zope-proxy
6360 (package
6361 (name "python-zope-proxy")
6362 (version "4.1.6")
6363 (source
6364 (origin
6365 (method url-fetch)
6366 (uri (string-append "https://pypi.python.org/packages/source/z"
6367 "/zope.proxy/zope.proxy-" version ".tar.gz"))
6368 (sha256
6369 (base32
6370 "0pqwwmvm1prhwv1ziv9lp8iirz7xkwb6n2kyj36p2h0ppyyhjnm4"))))
6371 (build-system python-build-system)
6372 (propagated-inputs
6373 `(("python-zope-interface" ,python-zope-interface)))
6374 (home-page "http://pypi.python.org/pypi/zope.proxy")
6375 (synopsis "Generic, transparent proxies")
6376 (description "Zope.proxy provides generic, transparent proxies for Python.
6377Proxies are special objects which serve as mostly-transparent wrappers around
6378another object, intervening in the apparent behavior of the wrapped object
6379only when necessary to apply the policy (e.g., access checking, location
6380brokering, etc.) for which the proxy is responsible.")
6381 (license zpl2.1)))
6382
6383(define-public python2-zope-proxy
6384 (package-with-python2 python-zope-proxy))
f404b5ea
LF
6385
6386(define-public python-zope-location
6387 (package
6388 (name "python-zope-location")
6389 (version "4.0.3")
6390 (source
6391 (origin
6392 (method url-fetch)
6393 (uri (string-append "https://pypi.python.org/packages/source/z"
6394 "/zope.location/zope.location-" version ".tar.gz"))
6395 (sha256
6396 (base32
6397 "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74"))))
6398 (build-system python-build-system)
6399 (native-inputs
6400 `(("python-zope-proxy" ,python-zope-proxy)
6401 ("python-zope-schema" ,python-zope-schema)))
6402 (home-page "http://pypi.python.org/pypi/zope.location/")
6403 (synopsis "Zope location library")
6404 (description "Zope.location implements the concept of \"locations\" in
6405Zope3, which are are special objects that have a structural location.")
6406 (license zpl2.1)))
6407
6408(define-public python2-zope-location
6409 (package-with-python2 python-zope-location))
d4b77f36
LF
6410
6411(define-public python-zope-security
6412 (package
6413 (name "python-zope-security")
6414 (version "4.0.3")
6415 (source
6416 (origin
6417 (method url-fetch)
6418 (uri (string-append "https://pypi.python.org/packages/source/z"
6419 "/zope.security/zope.security-" version ".tar.gz"))
6420 (sha256
6421 (base32
6422 "14zmf684amc0x32kq05yxnhfqd1cmyhafkw05gn81rn90zjv6ssy"))))
6423 (build-system python-build-system)
6424 (propagated-inputs
6425 `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
6426 ("python-zope-component" ,python-zope-component)
6427 ("python-zope-location" ,python-zope-location)
6428 ("python-zope-proxy" ,python-zope-proxy)
6429 ("python-zope-schema" ,python-zope-schema)
6430 ("python-zope-testrunner" ,python-zope-testrunner)
6431 ("python-zope-testing" ,python-zope-testing)))
6432 (home-page "http://pypi.python.org/pypi/zope.security")
6433 (synopsis "Zope security framework")
6434 (description "Zope.security provides a generic mechanism to implement
6435security policies on Python objects.")
6436 (license zpl2.1)))
6437
6438(define-public python2-zope-security
04417662
EF
6439 (let ((zope-security (package-with-python2 python-zope-security)))
6440 (package (inherit zope-security)
6441 (propagated-inputs
6442 `(("python2-zope-testrunner" ,python2-zope-testrunner)
6443 ,@(alist-delete
6444 "python-zope-testrunner"
6445 (package-propagated-inputs zope-security)))))))
a6b61b27
LF
6446
6447(define-public python-zope-component
6448 (package
6449 (name "python-zope-component")
6450 (version "4.2.2")
6451 (source
6452 (origin
6453 (method url-fetch)
6454 (uri (string-append "https://pypi.python.org/packages/source/z"
6455 "/zope.component/zope.component-" version ".tar.gz"))
6456 (sha256
6457 (base32
6458 "06pqr8m5jv12xjyy5b59hh9anl61cxkzhw9mka33r3nxalmi2b18"))))
6459 (build-system python-build-system)
6460 (arguments
6461 ;; Skip tests due to circular dependency with python-zope-security.
6462 '(#:tests? #f))
6463 (native-inputs
6464 `(("python-zope-testing" ,python-zope-testing)))
6465 (propagated-inputs
6466 `(("python-zope-event" ,python-zope-event)
6467 ("python-zope-interface" ,python-zope-interface)
6468 ("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
6469 ("python-zope-configuration" ,python-zope-configuration)))
6470 (home-page "https://github.com/zopefoundation/zope.component")
6471 (synopsis "Zope Component Architecture")
6472 (description "Zope.component represents the core of the Zope Component
6473Architecture. Together with the zope.interface package, it provides
6474facilities for defining, registering and looking up components.")
6475 (license zpl2.1)))
6476
6477(define-public python2-zope-component
6478 (package-with-python2 python-zope-component))
3859ac12 6479
b5f218be
LF
6480(define-public python2-pythondialog
6481 (package
6482 (name "python2-pythondialog")
6483 (version "3.3.0")
6484 (source
6485 (origin
6486 (method url-fetch)
6487 (uri (string-append "https://pypi.python.org/packages/source/p/"
6488 "python2-pythondialog/python2-pythondialog-"
6489 version ".tar.gz"))
6490 (sha256
6491 (base32
6492 "1yhkagsh99bfi592ymczf8rnw8rk6n9hdqy3dd98m3yrx8zmjvry"))))
6493 (build-system python-build-system)
6494 (arguments
6495 `(#:phases
6496 (modify-phases %standard-phases
6497 (add-after 'unpack 'patch-path
6498 (lambda* (#:key inputs #:allow-other-keys)
6499 (let* ((dialog (assoc-ref inputs "dialog")))
6500 ;; Since this library really wants to grovel the search path, we
6501 ;; must hardcode dialog's store path into it.
6502 (substitute* "dialog.py"
6503 (("os.getenv\\(\"PATH\", \":/bin:/usr/bin\"\\)")
6504 (string-append "os.getenv(\"PATH\") + \":" dialog "/bin\"")))
6505 #t))))
6506 #:python ,python-2
6507 #:tests? #f)) ; no test suite
6508 (propagated-inputs
6509 `(("dialog" ,dialog)))
6510 (home-page "http://pythondialog.sourceforge.net/")
6511 (synopsis "Python interface to the UNIX dialog utility")
6512 (description "A Python wrapper for the dialog utility. Its purpose is to
6513provide an easy to use, pythonic and comprehensive Python interface to dialog.
6514This allows one to make simple text-mode user interfaces on Unix-like systems")
6515 (license lgpl2.1)))
6516
3859ac12
LF
6517(define-public python-pyrfc3339
6518 (package
6519 (name "python-pyrfc3339")
d9aa097b 6520 (version "1.0")
3859ac12
LF
6521 (source
6522 (origin
6523 (method url-fetch)
d9aa097b 6524 (uri (pypi-uri "pyRFC3339" version))
3859ac12
LF
6525 (sha256
6526 (base32
d9aa097b 6527 "0dgm4l9y8jiax5cp6yxjd2i27cq8h33sh81n1wfbmnmqb32cdywd"))))
3859ac12
LF
6528 (build-system python-build-system)
6529 (propagated-inputs
6530 `(("python-pytz" ,python-pytz)))
6531 (native-inputs
6532 `(("python-nose" ,python-nose)
6533 ("python-setuptools" ,python-setuptools)))
6534 (home-page "https://github.com/kurtraschke/pyRFC3339")
6535 (synopsis "Python timestamp library")
6536 (description "Python library for generating and parsing RFC 3339-compliant
6537timestamps.")
6538 (license license:expat)))
6539
6540(define-public python2-pyrfc3339
6541 (package-with-python2 python-pyrfc3339))
5eea2005
LF
6542
6543(define-public python-werkzeug
6544 (package
6545 (name "python-werkzeug")
6546 (version "0.11.2")
6547 (source
6548 (origin
6549 (method url-fetch)
6550 (uri (string-append "https://pypi.python.org/packages/source/W/Werkzeug"
6551 "/Werkzeug-" version ".tar.gz"))
6552 (file-name (string-append name "-" version ".tar.gz"))
6553 (sha256
6554 (base32
6555 "1gzwn1lkl90f3l1nzzxr7vjhm21qk8f837i8rvny5a209fcrhkzb"))))
6556 (build-system python-build-system)
6557 (native-inputs
6558 `(("python-pytest" ,python-pytest)))
6559 (home-page "http://werkzeug.pocoo.org/")
6560 (synopsis "Utilities for WSGI applications")
6561 (description "One of the most advanced WSGI utility modules. It includes a
6562powerful debugger, full-featured request and response objects, HTTP utilities to
6563handle entity tags, cache control headers, HTTP dates, cookie handling, file
6564uploads, a powerful URL routing system and a bunch of community-contributed
6565addon modules.")
6566 (license x11)))
6567
6568(define-public python2-werkzeug
6569 (package-with-python2 python-werkzeug))
99fffa8a
LF
6570
6571(define-public python-configobj
6572 (package
6573 (name "python-configobj")
6574 (version "5.0.6")
6575 (source (origin
6576 (method url-fetch)
6577 (uri (string-append
6578 "https://pypi.python.org/packages/source/c/configobj/"
6579 "configobj-" version ".tar.gz"))
6580 (sha256
6581 (base32
6582 "00h9rcmws03xvdlfni11yb60bz3kxfvsj6dg6nrpzj71f03nbxd2"))
6583 ;; Patch setup.py so it looks for python-setuptools, which is
6584 ;; required to parse the keyword 'install_requires' in setup.py.
6585 (patches (list (search-patch "python-configobj-setuptools.patch")))))
6586 (build-system python-build-system)
6587 (native-inputs
6588 `(("python-setuptools" ,python-setuptools)
6589 ("python-six" ,python-six)))
6590 (synopsis "Config file reading, writing and validation")
6591 (description "ConfigObj is a simple but powerful config file reader and
6592writer: an ini file round tripper. Its main feature is that it is very easy to
6593use, with a straightforward programmer’s interface and a simple syntax for
6594config files.")
6595 (home-page "https://github.com/DiffSK/configobj")
6596 (license bsd-3)))
6597
6598(define-public python2-configobj
6599 (package-with-python2 python-configobj))
79e8a291
LF
6600
6601(define-public python-configargparse
6602 (package
6603 (name "python-configargparse")
6604 (version "0.10.0")
6605 (source (origin
6606 (method url-fetch)
6607 (uri (string-append
6608 "https://pypi.python.org/packages/source/C/ConfigArgParse/"
6609 "ConfigArgParse-" version ".tar.gz"))
6610 (sha256
6611 (base32
6612 "19wh919gbdbzxzpagg52q3lm62yicm95ddlcx77dyjc1slyshl1v"))))
6613 (build-system python-build-system)
6614 (arguments
6615 ;; FIXME: Bug in test suite filed upstream:
6616 ;; https://github.com/bw2/ConfigArgParse/issues/32
6617 '(#:tests? #f))
6618 (synopsis "Replacement for argparse")
6619 (description "A drop-in replacement for argparse that allows options to also
6620be set via config files and/or environment variables.")
6621 (home-page "https://github.com/bw2/ConfigArgParse")
6622 (license license:expat)))
6623
6624(define-public python2-configargparse
6625 (package-with-python2 python-configargparse))
ab41f979
LF
6626
6627(define-public python-ndg-httpsclient
6628 (package
6629 (name "python-ndg-httpsclient")
6630 (version "0.4.0")
6631 (source (origin
6632 (method url-fetch)
6633 (uri (string-append
6634 "https://pypi.python.org/packages/source/n/ndg-httpsclient/"
6635 "ndg_httpsclient-" version ".tar.gz"))
6636 (sha256
6637 (base32
6638 "0x32ibixm3vv5m9xfk83xsqm8xcqw4dd0khbh6qbri6rxgymbhg8"))))
6639 (build-system python-build-system)
6640 (propagated-inputs
6641 `(("python-pyopenssl" ,python-pyopenssl)))
6642 (synopsis "HTTPS support for Python's httplib and urllib2")
6643 (description "This is a HTTPS client implementation for httplib and urllib2
6644based on PyOpenSSL. PyOpenSSL provides a more fully featured SSL implementation
6645over the default provided with Python and importantly enables full verification
6646of the SSL peer.")
6647 (home-page "https://github.com/cedadev/ndg_httpsclient/")
6648 (license bsd-3)))
6649
6650;; python2-openssl requires special care, so package-with-python2 is
6651;; insufficient.
6652(define-public python2-ndg-httpsclient
6653 (package (inherit python-ndg-httpsclient)
6654 (name "python2-ndg-httpsclient")
6655 (arguments `(#:python ,python-2))
6656 (propagated-inputs
6657 `(("python2-pyopenssl" ,python2-pyopenssl)))))
03f964a5
CM
6658
6659(define-public python-contextlib2
6660 (package
6661 (name "python-contextlib2")
6662 (version "0.4.0")
6663 (source
6664 (origin
6665 (method url-fetch)
6666 (uri (pypi-uri "contextlib2" version))
6667 (sha256
6668 (base32
6669 "0cmp131dlh0d0zvw0aza1zd13glvngzk8lb4avks0hm7yxwdr9am"))))
6670 (build-system python-build-system)
6671 (arguments
6672 `(#:phases
6673 (modify-phases %standard-phases
6674 (replace 'check
6675 (lambda _ (zero?
6676 (system*
6677 "python" "test_contextlib2.py", "-v")))))))
6678 (home-page "http://contextlib2.readthedocs.org/")
6679 (synopsis "Tools for decorators and context managers")
6680 (description "This module is primarily a backport of the Python
66813.2 contextlib to earlier Python versions. Like contextlib, it
6682provides utilities for common tasks involving decorators and context
6683managers. It also contains additional features that are not part of
6684the standard library.")
6685 (license psfl)))
6686
6687(define-public python2-contextlib2
6688 (package-with-python2 python-contextlib2))
210bf497
DT
6689
6690(define-public python-texttable
6691 (package
6692 (name "python-texttable")
6693 (version "0.8.4")
6694 (source
6695 (origin
6696 (method url-fetch)
6697 (uri (pypi-uri "texttable" version))
6698 (sha256
6699 (base32
6700 "0bkhs4dx9s6g7fpb969hygq56hyz4ncfamlynw72s0n6nqfbd1w5"))))
6701 (build-system python-build-system)
6702 (arguments '(#:tests? #f)) ; no tests
6703 (home-page "https://github.com/foutaise/texttable/")
6704 (synopsis "Python module for creating simple ASCII tables")
6705 (description "Texttable is a Python module for creating simple ASCII
6706tables.")
6707 (license lgpl2.1+)))
6708
6709(define-public python2-texttable
6710 (package-with-python2 python-texttable))
67c52bb3
DT
6711
6712(define-public python-websocket-client
6713 (package
6714 (name "python-websocket-client")
6715 (version "0.34.0")
6716 (source
6717 (origin
6718 (method url-fetch)
6719 (uri (string-append "https://pypi.python.org/packages/source/w"
6720 "/websocket-client/websocket_client-"
6721 version ".tar.gz"))
6722 (sha256
6723 (base32
6724 "1prdx6d49f1cff17kzj15bnz09palfdgc1m5dkq9jd4mr90n4ak8"))))
6725 (build-system python-build-system)
6726 (native-inputs
6727 `(("python-six" ,python-six))) ; for tests
6728 (inputs
6729 `(("python-setuptools" ,python-setuptools)))
6730 (home-page "https://github.com/liris/websocket-client")
6731 (synopsis "WebSocket client for Python")
6732 (description "The Websocket-client module provides the low level APIs for
6733WebSocket usage in Python programs.")
6734 (license lgpl2.1+)))
6735
6736(define-public python2-websocket-client
6737 (package-with-python2 python-websocket-client))
5c6eea2a
LF
6738
6739(define-public python-atomicwrites
6740 (package
6741 (name "python-atomicwrites")
6742 (version "0.1.8")
6743 (source (origin
6744 (method url-fetch)
6745 (uri (pypi-uri "atomicwrites" version))
6746 (sha256
6747 (base32
6748 "13nwk0gw0yb61pnf5vxs3fvhav6q3zrf08x9ggc93bnk5fsssx1j"))))
6749 (build-system python-build-system)
6750 (synopsis "Atomic file writes in Python")
6751 (description "Library for atomic file writes using platform dependent tools
6752for atomic filesystem operations.")
6753 (home-page "https://github.com/untitaker/python-atomicwrites")
6754 (license license:expat)))
561bb3cb
LF
6755
6756(define-public python-requests-toolbelt
6757 (package
6758 (name "python-requests-toolbelt")
6759 (version "0.5.0")
6760 (source (origin
6761 (method url-fetch)
6762 (uri (pypi-uri "requests-toolbelt" version))
6763 (sha256
6764 (base32
6765 "1kbms1s52dhb98vbpaprr15b0ijdbqp500lpfsyjccpd8cjkyngk"))))
6766 (build-system python-build-system)
6767 (propagated-inputs
6768 `(("python-requests" ,python-requests)))
6769 (synopsis "Extensions to python-requests")
6770 (description "This is a toolbelt of useful classes and functions to be used
6771with python-requests.")
6772 (home-page "https://github.com/sigmavirus24/requests-toolbelt")
6773 (license asl2.0)))
d1deb90b
LF
6774
6775(define-public python-click-threading
6776 (package
6777 (name "python-click-threading")
6778 (version "0.1.2")
6779 (source (origin
6780 (method url-fetch)
6781 (uri (pypi-uri "click-threading" version))
6782 (sha256
6783 (base32
6784 "0jmrv4334lfxa2ss53c06dafdwqbk1pb3ihd26izn5igw1bm8145"))))
6785 (build-system python-build-system)
6786 (propagated-inputs
6787 `(("python-click" ,python-click)))
6788 (synopsis "Utilities for multithreading in Click")
6789 (description "This package provides utilities for multithreading in Click
6790applications.")
6791 (home-page "https://github.com/click-contrib/click-threading")
6792 (license license:expat)))
7b17cab9
LF
6793
6794(define-public python-click-log
6795 (package
6796 (name "python-click-log")
6797 (version "0.1.1")
6798 (source (origin
6799 (method url-fetch)
6800 (uri (pypi-uri "click-log" version))
6801 (sha256
6802 (base32
6803 "1z3jdwjmwax159zrnyx830xa968rfqrpkm04ad5xqyh0269ydiqb"))))
6804 (build-system python-build-system)
6805 (propagated-inputs
6806 `(("python-click" ,python-click)))
6807 (synopsis "Logging for click applications")
6808 (description "This package provides a Python library for logging Click
6809applications.")
6810 (home-page "https://github.com/click-contrib/click-log")
6811 (license license:expat)))
7b3a4ee4
LF
6812
6813(define-public python-apipkg
6814 (package
6815 (name "python-apipkg")
6816 (version "1.4")
6817 (source (origin
6818 (method url-fetch)
6819 (uri (pypi-uri "apipkg" version))
6820 (sha256
6821 (base32
6822 "1iks5701qnp3dlr3q1d9qm68y2plp2m029irhpz92a44psfkjf1f"))))
6823 (build-system python-build-system)
6824 (native-inputs
6825 `(("unzip" ,unzip)))
6826 (propagated-inputs
6827 `(("python-pytest" ,python-pytest)))
6828 (synopsis "Namespace control and lazy-import mechanism")
6829 (description "With apipkg you can control the exported namespace of a Python
6830package and greatly reduce the number of imports for your users. It is a small
6831pure Python module that works on virtually all Python versions.")
6832 (home-page "https://bitbucket.org/hpk42/apipkg")
6833 (license license:expat)))
848964fe
LF
6834
6835(define-public python-execnet
6836 (package
6837 (name "python-execnet")
6838 (version "1.4.1")
6839 (source (origin
6840 (method url-fetch)
6841 (uri (pypi-uri "execnet" version))
6842 (sha256
6843 (base32
6844 "1rpk1vyclhg911p3hql0m0nrpq7q7mysxnaaw6vs29cpa6kx8vgn"))))
6845 (build-system python-build-system)
6846 (native-inputs
6847 `(("python-setuptools-scm" ,python-setuptools-scm)))
6848 (propagated-inputs
6849 `(("python-apipkg" ,python-apipkg)))
6850 (synopsis "Rapid multi-Python deployment")
6851 (description "Execnet provides a share-nothing model with
6852channel-send/receive communication for distributing execution across many
6853Python interpreters across version, platform and network barriers. It has a
6854minimal and fast API targetting the following uses:
6855@enumerate
6856@item distribute tasks to (many) local or remote CPUs
6857@item write and deploy hybrid multi-process applications
6858@item write scripts to administer multiple environments
6859@end enumerate")
6860 (home-page "http://codespeak.net/execnet/")
6861 (license license:expat)))
6720dbb4
LF
6862
6863;;; The software provided by this package was integrated into pytest 2.8.
6864(define-public python-pytest-cache
6865 (package
6866 (name "python-pytest-cache")
6867 (version "1.0")
6868 (source (origin
6869 (method url-fetch)
6870 (uri (pypi-uri "pytest-cache" version))
6871 (sha256
6872 (base32
6873 "1a873fihw4rhshc722j4h6j7g3nj7xpgsna9hhg3zn6ksknnhx5y"))))
6874 (build-system python-build-system)
6875 (propagated-inputs
6876 `(("python-execnet" ,python-execnet)))
6877 (synopsis "Py.test plugin with mechanisms for caching across test runs")
6878 (description "The pytest-cache plugin provides tools to rerun failures from
6879the last py.test invocation.")
6880 (home-page "https://bitbucket.org/hpk42/pytest-cache/")
6881 (license license:expat)))
d7e729fe
LF
6882
6883(define-public python-pytest-localserver
6884 (package
6885 (name "python-pytest-localserver")
6886 (version "0.3.4")
6887 (source (origin
6888 (method url-fetch)
6889 (uri (pypi-uri "pytest-localserver" version ".zip"))
6890 (sha256
6891 (base32
6892 "050q505a7gnsz7vqidw0w5dvxjb2flzi7z734agpjzmsl85c2bcx"))))
6893 (build-system python-build-system)
6894 (arguments
6895 `(#:phases (modify-phases %standard-phases
6896 (replace 'check
6897 (lambda _
6898 (zero? (system* "py.test" "--genscript=runtests.py"))
6899 (zero? (system* "py.test")))))))
6900 (native-inputs
6901 `(("unzip" ,unzip)))
6902 (propagated-inputs
6903 `(("python-pytest" ,python-pytest)
6904 ("python-requests" ,python-requests)
6905 ("python-six" ,python-six)
6906 ("python-werkzeug" ,python-werkzeug)))
6907 (synopsis "Py.test plugin to test server connections locally")
6908 (description "Pytest-localserver is a plugin for the pytest testing
6909framework which enables you to test server connections locally.")
6910 (home-page "https://pypi.python.org/pypi/pytest-localserver")
6911 (license license:expat)))
28cecbb7
LF
6912
6913(define-public python-wsgi-intercept
6914 (package
6915 (name "python-wsgi-intercept")
6916 (version "0.10.3")
6917 (source (origin
6918 (method url-fetch)
6919 (uri (pypi-uri "wsgi_intercept" version))
6920 (sha256
6921 (base32
6922 "0xyfchacywb1mql84270mcidsqc5ssyspd18yacjk82x2xc68h0r"))))
6923 (build-system python-build-system)
6924 (native-inputs
6925 `(("python-pytest" ,python-pytest)))
6926 (propagated-inputs
6927 `(("python-httplib2" ,python-httplib2)
6928 ("python-requests" ,python-requests)))
6929 (synopsis "Puts a WSGI application in place of a real URI for testing")
6930 (description "Wsgi_intercept installs a WSGI application in place of a real
6931URI for testing. Testing a WSGI application normally involves starting a
6932server at a local host and port, then pointing your test code to that address.
6933Instead, this library lets you intercept calls to any specific host/port
6934combination and redirect them into a WSGI application importable by your test
6935program. Thus, you can avoid spawning multiple processes or threads to test
6936your Web app.")
6937 (home-page "https://github.com/cdent/wsgi-intercept")
6938 (license license:expat)))
89b8a551
LF
6939
6940(define-public python-pytest-xprocess
6941 (package
6942 (name "python-pytest-xprocess")
6943 (version "0.9.1")
6944 (source (origin
6945 (method url-fetch)
6946 (uri (pypi-uri "pytest-xprocess" version))
6947 (sha256
6948 (base32
6949 "17zlql1xqw3ywcgwwbqmw633aly99lab12hm02asr8awvg5603pp"))))
6950 (build-system python-build-system)
6951 (propagated-inputs
6952 `(("python-pytest" ,python-pytest)
6953 ("python-pytest-cache" ,python-pytest-cache)
6954 ("python-psutil" ,python-psutil)))
6955 (synopsis "Pytest plugin to manage external processes across test runs")
6956 (description "Pytest-xprocess is an experimental py.test plugin for managing
6957processes across test runs.")
6958 (home-page "https://bitbucket.org/pytest-dev/pytest-xprocess")
6959 (license license:expat)))
5c299bf0
LF
6960
6961(define-public python-icalendar
6962 (package
6963 (name "python-icalendar")
6964 (version "3.9.1")
6965 (source (origin
6966 (method url-fetch)
6967 (uri (pypi-uri "icalendar" version))
6968 (sha256
6969 (base32
6970 "0fhrczdj3jxy5bvswphp3vys7vwv5c9bpwg7asykqwa3z6253q6q"))))
6971 (build-system python-build-system)
6972 (propagated-inputs
6973 `(("python-dateutil-2" ,python-dateutil-2)
6974 ("python-pytz" ,python-pytz)))
6975 (synopsis "Python library for parsing iCalendar files")
6976 (description "The icalendar package is a parser/generator of iCalendar
6977files for use with Python.")
6978 (home-page "https://github.com/collective/icalendar")
6979 (license bsd-2)))
6bbbb53e
LF
6980
6981(define-public python-sphinxcontrib-newsfeed
6982 (package
6983 (name "python-sphinxcontrib-newsfeed")
6984 (version "0.1.4")
6985 (source (origin
6986 (method url-fetch)
6987 (uri (pypi-uri "sphinxcontrib-newsfeed" version))
6988 (sha256
6989 (base32
6990 "1d7gam3mn8v4in4p16yn3v10vps7nnaz6ilw99j4klij39dqd37p"))))
6991 (build-system python-build-system)
6992 (propagated-inputs
6993 `(("python-docutils" ,python-docutils)
6994 ("python-sphinx" ,python-sphinx)))
6995 (synopsis "News Feed extension for Sphinx")
6996 (description "Sphinxcontrib-newsfeed is an extension for adding a simple
6997Blog, News or Announcements section to a Sphinx website.")
6998 (home-page "https://bitbucket.org/prometheus/sphinxcontrib-newsfeed")
6999 (license bsd-2)))
2216e15c
SB
7000
7001(define-public python-args
7002 (package
7003 (name "python-args")
7004 (version "0.1.0")
7005 (source (origin
7006 (method url-fetch)
7007 (uri (pypi-uri "args" version))
7008 (sha256
7009 (base32
7010 "057qzi46h5dmxdqknsbrssn78lmqjlnm624iqdhrnpk26zcbi1d7"))))
7011 (build-system python-build-system)
7012 (inputs
7013 `(("python-setuptools" ,python-setuptools)))
7014 (home-page "https://github.com/kennethreitz/args")
7015 (synopsis "Command-line argument parser")
7016 (description
7017 "This library provides a Python module to parse command-line arguments.")
7018 (license bsd-3)))
7019
7020(define-public python2-args
7021 (package-with-python2 python-args))
c06a3de9
SB
7022
7023(define-public python-clint
7024 (package
7025 (name "python-clint")
7026 (version "0.5.1")
7027 (source (origin
7028 (method url-fetch)
7029 (uri (pypi-uri "clint" version))
7030 (sha256
7031 (base32
7032 "1an5lkkqk1zha47198p42ji3m94xmzx1a03dn7866m87n4r4q8h5"))))
7033 (build-system python-build-system)
7034 (inputs
7035 `(("python-args" ,python-args)
7036 ("python-setuptools" ,python-setuptools)))
7037 (home-page "https://github.com/kennethreitz/clint")
7038 (synopsis "Command-line interface tools")
7039 (description
7040 "Clint is a Python module filled with a set of tools for developing
7041command-line applications, including tools for colored and indented
7042output, progress bar display, and pipes.")
7043 (license isc)))
7044
7045(define-public python2-clint
7046 (package-with-python2 python-clint))
4ecdeef8
SB
7047
7048(define-public python-astor
7049 (package
7050 (name "python-astor")
7051 (version "0.5")
7052 (source (origin
7053 (method url-fetch)
7054 (uri (pypi-uri "astor" version))
7055 (sha256
7056 (base32
7057 "1fdafq5hkis1fxqlmhw0sn44zp2ar46nxhbc22cvwg7hsd8z5gsa"))))
7058 (build-system python-build-system)
7059 (inputs
7060 `(("python-setuptools" ,python-setuptools)))
7061 (home-page "https://github.com/berkerpeksag/astor")
7062 (synopsis "Read and write Python ASTs")
7063 (description
7064 "Astor is designed to allow easy manipulation of Python source via the
7065Abstract Syntax Tree.")
7066 (license bsd-3)))
7067
7068(define-public python2-astor
7069 (package-with-python2 python-astor))
e224b7d0
SB
7070
7071(define-public python-rply
7072 (package
7073 (name "python-rply")
7074 (version "0.7.4")
7075 (source (origin
7076 (method url-fetch)
7077 (uri (pypi-uri "rply" version))
7078 (sha256
7079 (base32
7080 "12rp1d9ba7nvd5rhaxi6xzx1rm67r1k1ylsrkzhpwnphqpb06cvj"))))
7081 (build-system python-build-system)
7082 (inputs
7083 `(("python-appdirs" ,python-appdirs)
7084 ("python-setuptools" ,python-setuptools)))
7085 (home-page "https://github.com/alex/rply")
7086 (synopsis "Parser generator for Python")
7087 (description
7088 "This package provides a pure Python based parser generator, that also
7089works with RPython. It is a more-or-less direct port of David Bazzley's PLY,
7090with a new public API, and RPython support.")
7091 (license bsd-3)))
7092
7093(define-public python2-rply
7094 (package-with-python2 python-rply))
c3e919d7
SB
7095
7096(define-public python-hy
7097 (package
7098 (name "python-hy")
7099 (version "0.11.1")
7100 (source (origin
7101 (method url-fetch)
7102 (uri (pypi-uri "hy" version))
7103 (sha256
7104 (base32
7105 "1msqv747iz12r73mz4qvsmlwkddwjvrahlrk7ysrcz07h7dsscxs"))))
7106 (build-system python-build-system)
7107 (inputs
7108 `(("python-astor" ,python-astor)
7109 ("python-clint" ,python-clint)
7110 ("python-rply" ,python-rply)
7111 ("python-setuptools" ,python-setuptools)))
7112 (home-page "http://hylang.org/")
7113 (synopsis "Lisp frontend to Python")
7114 (description
7115 "Hy is a dialect of Lisp that's embedded in Python. Since Hy transforms
7116its Lisp code into the Python Abstract Syntax Tree, you have the whole world of
7117Python at your fingertips, in Lisp form.")
7118 (license license:expat)))
7119
7120(define-public python2-hy
7121 (package-with-python2 python-hy))
7a5b944e 7122
81f7f297
EF
7123(define-public python-rauth
7124 (package
7125 (name "python-rauth")
7126 (version "0.7.2")
7127 (source
7128 (origin
7129 (method url-fetch)
7130 (uri (pypi-uri "rauth" version))
7131 (sha256
7132 (base32
7133 "00pq7zw429hhza9c0qzxiqp77m653jv09z92nralnmzwdf6pzicf"))))
7134 (build-system python-build-system)
7135 (arguments
7136 `(#:test-target "check"))
7137 (native-inputs
7138 `(("python-setuptools" ,python-setuptools)))
7139 (propagated-inputs
7140 `(("python-requests" ,python-requests)))
7141 (home-page "https://github.com/litl/rauth")
7142 (synopsis "Python library for OAuth 1.0/a, 2.0, and Ofly")
7143 (description
7144 "Rauth is a Python library for OAuth 1.0/a, 2.0, and Ofly. It also
7145provides service wrappers for convenient connection initialization and
7146authenticated session objects providing things like keep-alive.")
7147 (license license:expat)))
7148
7149(define-public python2-rauth
7150 (let ((rauth (package-with-python2 python-rauth)))
7151 (package (inherit rauth)
264ae686 7152 (propagated-inputs `(("python2-requests" ,python2-requests)))
81f7f297
EF
7153 (native-inputs
7154 `(("python2-unittest2", python2-unittest2)
7155 ,@(package-native-inputs rauth))))))
7156
1abe448d
EF
7157(define-public python2-functools32
7158 (package
7159 (name "python2-functools32")
7160 (version "3.2.3-2")
7161 (source
7162 (origin
7163 (method url-fetch)
7164 (uri (pypi-uri "functools32" version))
7165 (sha256
7166 (base32
7167 "0v8ya0b58x47wp216n1zamimv4iw57cxz3xxhzix52jkw3xks9gn"))))
7168 (build-system python-build-system)
7169 (arguments
7170 `(#:python ,python-2
7171 #:tests? #f)) ; no test target
7172 (native-inputs
7173 `(("python2-setuptools" ,python2-setuptools)))
7174 (home-page "https://github.com/MiCHiLU/python-functools32")
7175 (synopsis
7176 "Backport of the functools module from Python 3.2.3")
7177 (description
7178 "This package is a backport of the @code{functools} module from Python
71793.2.3 for use with older versions of Python and PyPy.")
7180 (license license:expat)))
7181
7a5b944e
EF
7182(define-public python-futures
7183 (package
7184 (name "python-futures")
7185 (version "3.0.3")
7186 (source
7187 (origin
7188 (method url-fetch)
7189 (uri (pypi-uri "futures" version))
7190 (sha256
7191 (base32
7192 "1vcb34dqhzkhbq1957vdjszhhm5y3j9ba88dgwhqx2zynhmk9qig"))))
7193 (build-system python-build-system)
7194 (native-inputs
7195 `(("python-setuptools" ,python-setuptools)))
7196 (home-page "https://github.com/agronholm/pythonfutures")
7197 (synopsis
7198 "Backport of the concurrent.futures package from Python 3.2")
7199 (description
7200 "The concurrent.futures module provides a high-level interface for
7201asynchronously executing callables. This package backports the
7202concurrent.futures package from Python 3.2")
7203 (license bsd-3)))
7204
7205(define-public python2-futures
7206 (package-with-python2 python-futures))
c18f6368
EF
7207
7208(define-public python-urllib3
7209 (package
7210 (name "python-urllib3")
7211 (version "1.13.1")
7212 (source
7213 (origin
7214 (method url-fetch)
7215 (uri (pypi-uri "urllib3" version))
7216 (sha256
7217 (base32
7218 "10rrbr6c6k7j5dvfsyj4b2gsgxg9gggnn708qixf6ll57xqivfkf"))))
7219 (build-system python-build-system)
7220 (arguments `(#:tests? #f))
7221 (native-inputs
7222 `(("python-setuptools" ,python-setuptools)
7223 ;; some packages for tests
7224 ("python-nose" ,python-nose)
7225 ("python-mock" ,python-mock)
7226 ("python-tornado" ,python-tornado)))
7227 (propagated-inputs
7228 `(;; packages for https security
7229 ("python-certifi" ,python-certifi)
7230 ("python-ndg-httpsclient" ,python-ndg-httpsclient)
7231 ("python-pyasn1" ,python-pyasn1)
7232 ("python-pyopenssl" ,python-pyopenssl)))
7233 (home-page "http://urllib3.readthedocs.org/")
7234 (synopsis "HTTP library with thread-safe connection pooling")
7235 (description
7236 "Urllib3 supports features left out of urllib and urllib2 libraries. It
7237can reuse the same socket connection for multiple requests, it can POST files,
7238supports url redirection and retries, and also gzip and deflate decoding.")
7239 (license license:expat)))
7240
7241(define-public python2-urllib3
7242 (package-with-python2 python-urllib3))
2b2f2fc1
DT
7243
7244(define-public python-colorama
7245 (package
7246 (name "python-colorama")
7247 (version "0.3.3")
7248 (source
7249 (origin
7250 (method url-fetch)
7251 (uri (pypi-uri "colorama" version))
7252 (sha256
7253 (base32
7254 "1716z9pq1r5ys3nkg7wdrb3h2f9rmd0zdxpxzmx3bgwgf6xg48gb"))))
7255 (build-system python-build-system)
7256 (inputs
7257 `(("python-setuptools" ,python-setuptools)))
7258 (synopsis "colored terminal text rendering for Python")
7259 (description "Colorama is a Python library for rendering colored terminal
7260text.")
7261 (home-page "https://pypi.python.org/pypi/colorama")
7262 (license bsd-3)))
7263
7264(define-public python2-colorama
7265 (package-with-python2 python-colorama))
f5bcec6e
DT
7266
7267(define-public python-rsa
7268 (package
7269 (name "python-rsa")
7270 (version "3.2")
7271 (source
7272 (origin
7273 (method url-fetch)
7274 (uri (pypi-uri "rsa" version))
7275 (sha256
7276 (base32
7277 "0xwp929g7lvb1sghxfpqlxvgg96qcwqdbhh27sjplx30n3xp3wrh"))))
7278 (build-system python-build-system)
7279 (inputs
7280 `(("python-pyasn1" ,python-pyasn1)
7281 ("python-setuptools" ,python-setuptools)))
7282 (synopsis "Pure-Python RSA implementation")
7283 (description "Python-RSA is a pure-Python RSA implementation. It supports
7284encryption and decryption, signing and verifying signatures, and key
7285generation according to PKCS#1 version 1.5. It can be used as a Python
7286library as well as on the command line.")
7287 (home-page "http://stuvel.eu/rsa")
7288 (license asl2.0)))
7289
7290(define-public python2-rsa
7291 (package-with-python2 python-rsa))
c0aacfa5
DT
7292
7293(define-public python-pluggy
7294 (package
7295 (name "python-pluggy")
7296 (version "0.3.1")
7297 (source
7298 (origin
7299 (method url-fetch)
7300 (uri (pypi-uri "pluggy" version))
7301 (sha256
7302 (base32
7303 "18qfzfm40bgx672lkg8q9x5hdh76n7vax99aank7vh2nw21wg70m"))))
7304 (build-system python-build-system)
7305 (inputs
7306 `(("python-setuptools" ,python-setuptools)))
7307 (synopsis "Plugin and hook calling mechanism for Python")
7308 (description "Pluggy is an extraction of the plugin manager as used by
7309Pytest but stripped of Pytest specific details.")
7310 (home-page "https://pypi.python.org/pypi/pluggy")
7311 (license license:expat)))
7312
7313(define-public python2-pluggy
7314 (package-with-python2 python-pluggy))
a4af21ca
DT
7315
7316(define-public python-tox
7317 (package
7318 (name "python-tox")
7319 (version "2.3.1")
7320 (source
7321 (origin
7322 (method url-fetch)
7323 (uri (pypi-uri "tox" version))
7324 (sha256
7325 (base32
7326 "1vj73ar4rimq3fwy5r2z3jv4g9qbh8rmpmncsc00g0k310acqzxz"))))
7327 (build-system python-build-system)
7328 (arguments
7329 ;; FIXME: Tests require a newer version of pytest, but upgrading our
7330 ;; pytest breaks other packages.
7331 '(#:tests? #f))
7332 (inputs
7333 `(("python-setuptools" ,python-setuptools)
7334 ("python-pluggy" ,python-pluggy)
7335 ("python-py" ,python-py)
7336 ("python-virtualenv" ,python-virtualenv)
7337 ("python-pytest" ,python-pytest)))
7338 (home-page "http://tox.testrun.org/")
7339 (synopsis "Virtualenv-based automation of test activities")
7340 (description "Tox is a generic virtualenv management and test command line
7341tool. It can be used to check that a package installs correctly with
7342different Python versions and interpreters, or run tests in each type of
7343supported environment, or act as a frontend to continuous integration
7344servers.")
7345 (license license:expat)))
7346
7347(define-public python2-tox
7348 (package-with-python2 python-tox))
ba9da248
DT
7349
7350(define-public python-jmespath
7351 (package
7352 (name "python-jmespath")
7353 (version "0.9.0")
7354 (source
7355 (origin
7356 (method url-fetch)
7357 (uri (pypi-uri "jmespath" version))
7358 (sha256
7359 (base32
7360 "0g9xvl69y7nr3w7ag4fsp6sm4fqf6vrqjw7504x2hzrrsh3ampq8"))))
7361 (build-system python-build-system)
7362 (inputs
7363 `(("python-setuptools" ,python-setuptools)))
7364 (synopsis "JSON Matching Expressions")
7365 (description "JMESPath (pronounced “james path”) is a Python library that
7366allows one to declaratively specify how to extract elements from a JSON
7367document.")
7368 (home-page "https://github.com/jmespath/jmespath.py")
7369 (license license:expat)))
7370
7371(define-public python2-jmespath
7372 (package-with-python2 python-jmespath))
935fcd5c
DT
7373
7374(define-public python-botocore
7375 (package
7376 (name "python-botocore")
7377 (version "1.3.17")
7378 (source
7379 (origin
7380 (method url-fetch)
7381 (uri (pypi-uri "botocore" version))
7382 (sha256
7383 (base32
7384 "08vpvdixx1c1lfv6vzjig68bpiir7wfyhzf49ysxgvhbprg5ra0w"))))
7385 (build-system python-build-system)
7386 (inputs
7387 `(("python-dateutil" ,python-dateutil-2)
7388 ("python-docutils" ,python-docutils)
7389 ("python-mock" ,python-mock)
7390 ("python-nose" ,python-nose)
7391 ("python-setuptools" ,python-setuptools)
7392 ("python-tox" ,python-tox)
7393 ("python-wheel" ,python-wheel)
7394 ("python-jmespath" ,python-jmespath)))
7395 (home-page "https://github.com/boto/botocore")
7396 (synopsis "Low-level interface to AWS")
7397 (description "Botocore is a Python library that provides a low-level
7398interface to the Amazon Web Services (AWS) API.")
7399 (license asl2.0)))
7400
7401(define-public python2-botocore
7402 (package-with-python2 python-botocore))
f861b8b8
DT
7403
7404(define-public awscli
7405 (package
7406 (name "awscli")
7407 (version "1.9.17")
7408 (source
7409 (origin
7410 (method url-fetch)
7411 (uri (string-append
7412 "https://pypi.python.org/packages/source/a/awscli/awscli-"
7413 version ".tar.gz"))
7414 (sha256
7415 (base32
7416 "1nj7jqvlpq57hfhby1njsbf8303gapa3njc4dramr6p3ffzvfi2i"))))
7417 (build-system python-build-system)
7418 (inputs
7419 `(("python-colorama" ,python-colorama)
7420 ("python-docutils" ,python-docutils)
7421 ("python-mock" ,python-mock)
7422 ("python-nose" ,python-nose)
7423 ("python-rsa" ,python-rsa)
7424 ("python-setuptools" ,python-setuptools)
7425 ("python-sphinx" ,python-sphinx)
7426 ("python-tox" ,python-tox)
7427 ("python-wheel" ,python-wheel)
7428 ("python-botocore" ,python-botocore)))
7429 (home-page "http://aws.amazon.com/cli/")
7430 (synopsis "Command line client for AWS")
7431 (description "AWS CLI provides a unified command line interface to the
7432Amazon Web Services (AWS) API.")
7433 (license asl2.0)))
6a44697d
LF
7434
7435(define-public python-hypothesis
7436 (package
7437 (name "python-hypothesis")
7438 (version "2.0.0")
7439 (source (origin
7440 (method url-fetch)
7441 (uri (pypi-uri "hypothesis" version))
7442 (sha256
7443 (base32
7444 "1la6mfpvcn640gs2v35iv8b4sh6xdhp9j5ghay0jd86c9n4fkgxr"))))
7445 (build-system python-build-system)
7446 (native-inputs
7447 `(;; setuptools required for python-2 variant
7448 ("python-setuptools" ,python-setuptools)))
7449 (propagated-inputs
7450 `(("python-flake8" ,python-flake8)
7451 ("python-pytest" ,python-pytest)))
7452 (synopsis "Library for property based testing")
7453 (description "Hypothesis is a library for testing your Python code against a
7454much larger range of examples than you would ever want to write by hand. It’s
7455based on the Haskell library, Quickcheck, and is designed to integrate
7456seamlessly into your existing Python unit testing work flow.")
7457 (home-page "https://github.com/DRMacIver/hypothesis")
7458 (license mpl2.0)))
7459
7460(define-public python2-hypothesis
7461 (package-with-python2 python-hypothesis))
7517e73c
LF
7462
7463(define-public python-pytest-subtesthack
7464 (package
7465 (name "python-pytest-subtesthack")
7466 (version "0.1.1")
7467 (source (origin
7468 (method url-fetch)
7469 (uri (pypi-uri "pytest-subtesthack" version))
7470 (sha256
7471 (base32
7472 "15kzcr5pchf3id4ikdvlv752rc0j4d912n589l4rifp8qsj19l1x"))))
7473 (build-system python-build-system)
7474 (native-inputs
7475 `(;; setuptools required for python-2 variant
7476 ("python-setuptools" ,python-setuptools)))
7477 (propagated-inputs
7478 `(("python-pytest" ,python-pytest)))
7479 (synopsis "Set-up and tear-down fixtures for unit tests")
7480 (description "This plugin allows you to set up and tear down fixtures within
7481unit test functions that use @code{py.test}. This is useful for using
7482@command{hypothesis} inside py.test, as @command{hypothesis} will call the test
7483function multiple times, without setting up or tearing down fixture state as is
7484normally the case.")
7485 (home-page "https://github.com/untitaker/pytest-subtesthack/")
7486 (license unlicense)))
7487
7488(define-public python2-pytest-subtesthack
7489 (package-with-python2 python-pytest-subtesthack))
0bdc1671
CAW
7490
7491(define-public python2-xdo
7492 (package
7493 (name "python2-xdo")
7494 (version "0.2")
7495 (source (origin
7496 (method url-fetch)
7497 (uri (string-append
7498 "http://http.debian.net/debian/pool/main/p/python-xdo/"
7499 "python-xdo_" version ".orig.tar.gz"))
7500 (sha256
7501 (base32
7502 "1kl5c1p0dyxf62plnk6fl77ycfb4whwjms16r14dxx8kn90hlqz4"))))
7503 (build-system python-build-system)
7504 (arguments
7505 `(#:python ,python-2
7506 #:tests? #f)) ; no tests provided
7507 (inputs
7508 `(("xdotool" ,xdotool)
7509 ("libX11" ,libx11)))
7510 (home-page "https://tracker.debian.org/pkg/python-xdo")
7511 (synopsis "Python library for simulating X11 keyboard/mouse input")
7512 (description "Provides bindings to libxdo for manipulating X11 via simulated
7513input. (Note that this is mostly a legacy library; you may wish to look at
7514python-xdo for newer bindings.)")
7515 (license bsd-3)))
7516