gnu: python-parse: Fix failing test.
[jackhill/guix/guix.git] / gnu / packages / python.scm
CommitLineData
a01b6da7
NK
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
48b311b1 3;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
8e451885 4;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
e99f4211 5;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
a480bc41 6;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
da6ce3f1 7;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
e99f4211 8;;; Copyright © 2015 Omar Radwan <toxemicsquire4@gmail.com>
d95a56c6 9;;; Copyright © 2015 Pierre-Antoine Rault <par@rigelk.eu>
534db463 10;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
0bdc1671 11;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
345f0611 12;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
2b2f2fc1 13;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
6a44697d 14;;; Copyright © 2015, 2016 Leo Famulari <leo@famulari.name>
02a8a187 15;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com>
b9893908 16;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com>
264ae686 17;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
1872f1bb 18;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
daeeea71 19;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com>
b31fbea5 20;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
88bb4197 21;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
b8fdbca3 22;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
0de78c95 23;;; Copyright © 2016 Daniel Pimentel <d4n1@d4n1.org>
9250b0f3 24;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
47d0b292 25;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
42c4b246 26;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
6eb7af2a 27;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
3f641af0 28;;; Copyright © 2016 David Craven <david@craven.ch>
dddcb25c 29;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
4efb9c54 30;;; Copyright © 2016 Stefan Reichoer <stefan@xsteve.at>
b04a52a6 31;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
a01b6da7
NK
32;;;
33;;; This file is part of GNU Guix.
34;;;
35;;; GNU Guix is free software; you can redistribute it and/or modify it
36;;; under the terms of the GNU General Public License as published by
37;;; the Free Software Foundation; either version 3 of the License, or (at
38;;; your option) any later version.
39;;;
40;;; GNU Guix is distributed in the hope that it will be useful, but
41;;; WITHOUT ANY WARRANTY; without even the implied warranty of
42;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
43;;; GNU General Public License for more details.
44;;;
45;;; You should have received a copy of the GNU General Public License
46;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
47
1ffa7090 48(define-module (gnu packages python)
3f641af0 49 #:use-module ((guix licenses) #:prefix license:)
3fdc99da 50 #:use-module (gnu packages)
8e451885 51 #:use-module (gnu packages algebra)
d79a343b 52 #:use-module (gnu packages adns)
89b2e0b0 53 #:use-module (gnu packages attr)
d96034ed 54 #:use-module (gnu packages backup)
3969ca54 55 #:use-module (gnu packages bash)
1ffa7090 56 #:use-module (gnu packages compression)
4ed20663 57 #:use-module (gnu packages databases)
ddc63a56 58 #:use-module (gnu packages django)
5e1c9367 59 #:use-module (gnu packages file)
4ed20663 60 #:use-module (gnu packages fontutils)
4ed20663
AE
61 #:use-module (gnu packages gcc)
62 #:use-module (gnu packages ghostscript)
6eb7af2a 63 #:use-module (gnu packages gl)
4ed20663 64 #:use-module (gnu packages glib)
6eb7af2a 65 #:use-module (gnu packages gstreamer)
4ed20663 66 #:use-module (gnu packages gtk)
421a80a2 67 #:use-module (gnu packages icu4c)
c937562e 68 #:use-module (gnu packages image)
4ed20663 69 #:use-module (gnu packages imagemagick)
d79a343b 70 #:use-module (gnu packages libevent)
b10ab723 71 #:use-module (gnu packages libffi)
89b2e0b0 72 #:use-module (gnu packages linux)
0da98533 73 #:use-module (gnu packages maths)
4ed20663 74 #:use-module (gnu packages multiprecision)
45203542 75 #:use-module (gnu packages networking)
be7134bf 76 #:use-module (gnu packages ncurses)
b04a52a6 77 #:use-module (gnu packages openstack)
d488d5d6 78 #:use-module (gnu packages password-utils)
c9b1b4f9 79 #:use-module (gnu packages pcre)
4ed20663 80 #:use-module (gnu packages perl)
b10ab723 81 #:use-module (gnu packages pkg-config)
4ed20663 82 #:use-module (gnu packages readline)
6eb7af2a 83 #:use-module (gnu packages sdl)
c9b1b4f9 84 #:use-module (gnu packages statistics)
8f9ac901 85 #:use-module (gnu packages tex)
1c65314c 86 #:use-module (gnu packages texinfo)
cc2b77df 87 #:use-module (gnu packages tls)
e25f0174 88 #:use-module (gnu packages version-control)
8d12be1e 89 #:use-module (gnu packages web)
ce0614dd 90 #:use-module (gnu packages base)
26b307e2 91 #:use-module (gnu packages xml)
6fa14469 92 #:use-module (gnu packages xorg)
0bdc1671 93 #:use-module (gnu packages xdisorg)
4ed20663 94 #:use-module (gnu packages zip)
afa181ff 95 #:use-module (gnu packages tcl)
63bcec71 96 #:use-module (gnu packages bdw-gc)
a01b6da7
NK
97 #:use-module (guix packages)
98 #:use-module (guix download)
ea5456c8 99 #:use-module (guix git-download)
11bb85a1 100 #:use-module (guix utils)
acc26ff1 101 #:use-module (guix build-system gnu)
d8c4998f 102 #:use-module (guix build-system cmake)
898238b9 103 #:use-module (guix build-system python)
1c65314c
FB
104 #:use-module (guix build-system trivial)
105 #:use-module (srfi srfi-1))
a01b6da7 106
45848023 107(define-public python-2.7
a01b6da7
NK
108 (package
109 (name "python")
f0499100 110 (version "2.7.12")
a01b6da7
NK
111 (source
112 (origin
113 (method url-fetch)
9b43a0ff 114 (uri (string-append "https://www.python.org/ftp/python/"
a01b6da7
NK
115 version "/Python-" version ".tar.xz"))
116 (sha256
117 (base32
f0499100 118 "0y7rl603vmwlxm6ilkhc51rx2mfj14ckcz40xxgs0ljnvlhp30yp"))
c3052d6b
ML
119 (patches (search-patches "python-2.7-search-paths.patch"
120 "python-2-deterministic-build-info.patch"
121 "python-2.7-source-date-epoch.patch"))
10a42aa2
EF
122 (modules '((guix build utils)))
123 ;; suboptimal to delete failing tests here, but if we delete them in the
124 ;; arguments then we need to make sure to strip out that phase when it
125 ;; gets inherited by python and python-minimal.
126 (snippet
127 '(begin
128 (for-each delete-file
129 '("Lib/test/test_compileall.py"
f0499100 130 "Lib/test/test_ctypes.py" ; fails on mips64el
10a42aa2
EF
131 "Lib/test/test_distutils.py"
132 "Lib/test/test_import.py"
133 "Lib/test/test_shutil.py"
134 "Lib/test/test_socket.py"
1bb163b0 135 "Lib/test/test_subprocess.py"))
10a42aa2 136 #t))))
02f0c3b2
LC
137 (outputs '("out"
138 "tk")) ;tkinter; adds 50 MiB to the closure
a01b6da7 139 (build-system gnu-build-system)
3fdc99da 140 (arguments
10a42aa2 141 `(;; 356 tests OK.
e7e7a1eb
EF
142 ;; 6 tests failed:
143 ;; test_compileall test_distutils test_import test_shutil test_socket
144 ;; test_subprocess
145 ;; 39 tests skipped:
ff6f33cf
ED
146 ;; test_aepack test_al test_applesingle test_bsddb test_bsddb185
147 ;; test_bsddb3 test_cd test_cl test_codecmaps_cn test_codecmaps_hk
e7e7a1eb
EF
148 ;; test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_curses
149 ;; test_dl test_gdb test_gl test_imageop test_imgfile test_ioctl
150 ;; test_kqueue test_linuxaudiodev test_macos test_macostools
151 ;; test_msilib test_ossaudiodev test_scriptpackages test_smtpnet
152 ;; test_socketserver test_startfile test_sunaudiodev test_timeout
153 ;; test_tk test_ttk_guionly test_urllib2net test_urllibnet
154 ;; test_winreg test_winsound test_zipfile64
155 ;; 4 skips unexpected on linux2:
156 ;; test_bsddb test_bsddb3 test_gdb test_ioctl
af807dea 157 #:test-target "test"
3fdc99da 158 #:configure-flags
6a20289d
LC
159 (list "--enable-shared" ;allow embedding
160 "--with-system-ffi" ;build ctypes
161 (string-append "LDFLAGS=-Wl,-rpath="
162 (assoc-ref %outputs "out") "/lib"))
fd982732 163
d2cc9c7c
LC
164 #:modules ((ice-9 ftw) (ice-9 match)
165 (guix build utils) (guix build gnu-build-system))
fd982732 166 #:phases
46472ecd
MW
167 (modify-phases %standard-phases
168 (add-before
169 'configure 'patch-lib-shells
170 (lambda _
171 ;; Filter for existing files, since some may not exist in all
172 ;; versions of python that are built with this recipe.
173 (substitute* (filter file-exists?
174 '("Lib/subprocess.py"
175 "Lib/popen2.py"
176 "Lib/distutils/tests/test_spawn.py"
177 "Lib/test/test_subprocess.py"))
178 (("/bin/sh") (which "sh")))
dedc8320
LC
179
180 ;; Use zero as the timestamp in .pyc files so that builds are
181 ;; deterministic. TODO: Remove it when this variable is set in
182 ;; gnu-build-system.scm.
a665996f 183 (setenv "SOURCE_DATE_EPOCH" "1")
46472ecd 184 #t))
5b4e2791
LC
185 (add-before 'configure 'do-not-record-configure-flags
186 (lambda* (#:key configure-flags #:allow-other-keys)
187 ;; Remove configure flags from the installed '_sysconfigdata.py'
188 ;; and 'Makefile' so we don't end up keeping references to the
189 ;; build tools.
190 ;;
191 ;; Preserve at least '--with-system-ffi' since otherwise the
192 ;; thing tries to build libffi, fails, and we end up with a
193 ;; Python that lacks ctypes.
194 (substitute* "configure"
195 (("^CONFIG_ARGS=.*$")
196 (format #f "CONFIG_ARGS='~a'\n"
197 (if (member "--with-system-ffi" configure-flags)
198 "--with-system-ffi"
199 ""))))
200 #t))
46472ecd
MW
201 (add-before
202 'check 'pre-check
203 (lambda _
204 ;; 'Lib/test/test_site.py' needs a valid $HOME
205 (setenv "HOME" (getcwd))
206 #t))
207 (add-after
208 'unpack 'set-source-file-times-to-1980
209 ;; XXX One of the tests uses a ZIP library to pack up some of the
210 ;; source tree, and fails with "ZIP does not support timestamps
211 ;; before 1980". Work around this by setting the file times in the
212 ;; source tree to sometime in early 1980.
213 (lambda _
214 (let ((circa-1980 (* 10 366 24 60 60)))
215 (ftw "." (lambda (file stat flag)
216 (utime file circa-1980 circa-1980)
217 #t))
02f0c3b2 218 #t)))
9ffe61b0
LC
219 (add-after 'install 'remove-tests
220 ;; Remove 25 MiB of unneeded unit tests. Keep test_support.*
221 ;; because these files are used by some libraries out there.
222 (lambda* (#:key outputs #:allow-other-keys)
223 (let ((out (assoc-ref outputs "out")))
224 (match (scandir (string-append out "/lib")
225 (lambda (name)
226 (string-prefix? "python" name)))
227 ((pythonX.Y)
228 (let ((testdir (string-append out "/lib/" pythonX.Y
229 "/test")))
230 (with-directory-excursion testdir
231 (for-each delete-file-recursively
232 (scandir testdir
233 (match-lambda
234 ((or "." "..") #f)
235 (file
236 (not
237 (string-prefix? "test_support."
238 file))))))
239 (call-with-output-file "__init__.py" (const #t))
240 #t)))))))
216c283b
LC
241 (add-before 'strip 'make-libraries-writable
242 (lambda* (#:key outputs #:allow-other-keys)
243 ;; Make .so files writable so they can be stripped.
244 (let ((out (assoc-ref outputs "out")))
245 (for-each (lambda (file)
246 (chmod file #o755))
247 (find-files (string-append out "/lib")
248 "\\.so"))
249 #t)))
02f0c3b2
LC
250 (add-after 'install 'move-tk-inter
251 (lambda* (#:key outputs #:allow-other-keys)
252 ;; When Tkinter support is built move it to a separate output so
253 ;; that the main output doesn't contain a reference to Tcl/Tk.
254 (let ((out (assoc-ref outputs "out"))
255 (tk (assoc-ref outputs "tk")))
256 (when tk
257 (match (find-files out "tkinter.*\\.so")
258 ((tkinter.so)
259 ;; The .so is in OUT/lib/pythonX.Y/lib-dynload, but we
260 ;; want it under TK/lib/pythonX.Y/site-packages.
261 (let* ((len (string-length out))
262 (target (string-append
263 tk "/"
264 (string-drop
265 (dirname (dirname tkinter.so))
266 len)
267 "/site-packages")))
268 (install-file tkinter.so target)
269 (delete-file tkinter.so)))))
270 #t))))))
a01b6da7 271 (inputs
3fdc99da
CR
272 `(("bzip2" ,bzip2)
273 ("gdbm" ,gdbm)
b10ab723 274 ("libffi" ,libffi) ; for ctypes
b88e1b0a 275 ("sqlite" ,sqlite) ; for sqlite extension
a01b6da7 276 ("openssl" ,openssl)
3fdc99da 277 ("readline" ,readline)
afa181ff
LC
278 ("zlib" ,zlib)
279 ("tcl" ,tcl)
280 ("tk" ,tk))) ; for tkinter
b10ab723
CR
281 (native-inputs
282 `(("pkg-config" ,pkg-config)))
9be8d7c8
LC
283 (native-search-paths
284 (list (search-path-specification
285 (variable "PYTHONPATH")
af070955 286 (files '("lib/python2.7/site-packages")))))
f0499100 287 (home-page "https://www.python.org")
afa181ff 288 (synopsis "High-level, dynamically-typed programming language")
a01b6da7
NK
289 (description
290 "Python is a remarkably powerful dynamic programming language that
291is used in a wide variety of application domains. Some of its key
292distinguishing features include: clear, readable syntax; strong
293introspection capabilities; intuitive object orientation; natural
294expression of procedural code; full modularity, supporting hierarchical
295packages; exception-based error handling; and very high level dynamic
296data types.")
3f641af0 297 (license license:psfl)))
acc26ff1 298
45848023
HG
299;; Current 2.x version.
300(define-public python-2 python-2.7)
301
72df6680 302(define-public python-3.5
b24d1cfc 303 (package (inherit python-2)
72df6680 304 (version "3.5.2")
717003e3
LC
305 (source (origin
306 (method url-fetch)
307 (uri (string-append "https://www.python.org/ftp/python/"
308 version "/Python-" version ".tar.xz"))
fc1adab1
AK
309 (patches (search-patches
310 "python-fix-tests.patch"
72df6680 311 "python-3.5-fix-tests.patch"
fc1adab1
AK
312 "python-3-deterministic-build-info.patch"
313 "python-3-search-paths.patch"))
717003e3
LC
314 (patch-flags '("-p0"))
315 (sha256
316 (base32
72df6680 317 "0h6a5fr7ram2s483lh0pnmc4ncijb8llnpfdxdcl5dxr01hza400"))))
1f434457
MW
318 (arguments (substitute-keyword-arguments (package-arguments python-2)
319 ((#:tests? _) #t)))
1aebc0cb
AE
320 (native-search-paths
321 (list (search-path-specification
322 (variable "PYTHONPATH")
0e05d01e
SB
323 (files (list (string-append "lib/python"
324 (version-major+minor version)
325 "/site-packages"))))))))
f26a77ff 326
72df6680
LF
327(define-public python-3.4
328 (package (inherit python-3.5)
329 (version "3.4.5")
330 (source (origin
331 (method url-fetch)
332 (uri (string-append "https://www.python.org/ftp/python/"
333 version "/Python-" version ".tar.xz"))
334 (patches (search-patches
335 "python-fix-tests.patch"
336 "python-3.4-fix-tests.patch"
337 "python-3-deterministic-build-info.patch"
338 "python-3-search-paths.patch"))
339 (patch-flags '("-p0"))
340 (sha256
341 (base32
342 "12l9klp778wklxmckhghniy5hklss8r26995pyd00qbllk4b2r7f"))))))
343
45848023 344;; Current 3.x version.
72df6680 345(define-public python-3 python-3.5)
45848023
HG
346
347;; Current major version.
348(define-public python python-3)
349
95288fcc
LC
350;; Minimal variants of Python, mostly used to break the cycle between Tk and
351;; Python (Tk -> libxcb -> Python.)
352
353(define-public python2-minimal
354 (package (inherit python-2)
355 (name "python-minimal")
02f0c3b2 356 (outputs '("out"))
95288fcc
LC
357 (arguments
358 (substitute-keyword-arguments (package-arguments python-2)
c5a05e31
LC
359 ((#:configure-flags cf)
360 `(append ,cf '("--without-system-ffi")))))
95288fcc
LC
361 (inputs '()))) ;none of the optional dependencies
362
363(define-public python-minimal
898238b9 364 (package (inherit python)
95288fcc 365 (name "python-minimal")
02f0c3b2 366 (outputs '("out"))
95288fcc 367
d0b73960 368 ;; Build fails due to missing ctypes without libffi.
95288fcc
LC
369 ;; OpenSSL is a mandatory dependency of Python 3.x, for urllib;
370 ;; zlib is required by 'zipimport', used by pip.
d0b73960
CAW
371 (inputs `(("libffi" ,libffi)
372 ("openssl" ,openssl)
95288fcc
LC
373 ("zlib" ,zlib)))))
374
64cb064c
LC
375(define* (wrap-python3 python
376 #:optional
377 (name (string-append (package-name python) "-wrapper")))
898238b9 378 (package (inherit python)
95288fcc 379 (name name)
898238b9
AE
380 (source #f)
381 (build-system trivial-build-system)
02f0c3b2 382 (outputs '("out"))
3969ca54 383 (inputs `(("bash" ,bash)))
3c0f2329 384 (propagated-inputs `(("python" ,python)))
898238b9
AE
385 (arguments
386 `(#:modules ((guix build utils))
387 #:builder
388 (begin
389 (use-modules (guix build utils))
390 (let ((bin (string-append (assoc-ref %outputs "out") "/bin"))
391 (python (string-append (assoc-ref %build-inputs "python") "/bin/")))
392 (mkdir-p bin)
393 (for-each
394 (lambda (old new)
395 (symlink (string-append python old)
396 (string-append bin "/" new)))
3969ca54
SB
397 `("python3" ,"pydoc3" ,"idle3" ,"pip3")
398 `("python" ,"pydoc" ,"idle" ,"pip"))
399 ;; python-config outputs search paths based upon its location,
400 ;; use a bash wrapper to avoid changing its outputs.
401 (let ((bash (string-append (assoc-ref %build-inputs "bash")
402 "/bin/bash"))
403 (old (string-append python "python3-config"))
404 (new (string-append bin "/python-config")))
405 (with-output-to-file new
406 (lambda ()
407 (format #t "#!~a~%" bash)
408 (format #t "exec \"~a\" \"$@\"~%" old)
409 (chmod new #o755)
410 #t)))))))
0d56e3e1
LC
411 (synopsis "Wrapper for the Python 3 commands")
412 (description
413 "This package provides wrappers for the commands of Python@tie{}3.x such
414that they can be invoked under their usual name---e.g., @command{python}
415instead of @command{python3}.")))
416
95288fcc
LC
417(define-public python-wrapper (wrap-python3 python))
418(define-public python-minimal-wrapper (wrap-python3 python-minimal))
898238b9 419
aaf625b8
RW
420(define-public python-psutil
421 (package
422 (name "python-psutil")
88535a44 423 (version "4.3.0")
aaf625b8
RW
424 (source
425 (origin
426 (method url-fetch)
f56777be 427 (uri (pypi-uri "psutil" version))
aaf625b8
RW
428 (sha256
429 (base32
88535a44 430 "1w4r09fvn6kd80m5mx4ws1wz100brkaq6hzzpwrns8cgjzjpl6c6"))))
aaf625b8
RW
431 (build-system python-build-system)
432 (native-inputs
433 `(("python-setuptools" ,python-setuptools)))
88535a44 434 (home-page "https://www.github.com/giampaolo/psutil")
aaf625b8
RW
435 (synopsis "Library for retrieving information on running processes")
436 (description
437 "psutil (Python system and process utilities) is a library for retrieving
438information on running processes and system utilization (CPU, memory, disks,
439network) in Python. It is useful mainly for system monitoring, profiling and
440limiting process resources and management of running processes. It implements
441many functionalities offered by command line tools such as: ps, top, lsof,
442netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop, uptime,
443pidof, tty, taskset, pmap.")
3f641af0 444 (license license:bsd-3)))
aaf625b8
RW
445
446(define-public python2-psutil
447 (package-with-python2 python-psutil))
898238b9 448
f9da1d8a
ED
449(define-public python-passlib
450 (package
451 (name "python-passlib")
690e8c66 452 (version "1.6.5")
f9da1d8a
ED
453 (source
454 (origin
455 (method url-fetch)
690e8c66 456 (uri (pypi-uri "passlib" version))
f9da1d8a
ED
457 (sha256
458 (base32
690e8c66 459 "1z27wdxs5rj5xhhqfzvzn3yg682irkxw6dcs5jj7mcf97psk8gd8"))))
f9da1d8a
ED
460 (build-system python-build-system)
461 (native-inputs
462 `(("python-nose" ,python-nose)
463 ("python-setuptools" ,python-setuptools)))
464 (inputs
465 `(("python-py-bcrypt" ,python-py-bcrypt)))
466 (arguments
467 `(#:phases
468 (alist-cons-before
469 'check 'set-PYTHON_EGG_CACHE
470 ;; some tests require access to "$HOME/.cython"
471 (lambda* _ (setenv "PYTHON_EGG_CACHE" "/tmp"))
472 %standard-phases)))
473 (home-page "https://bitbucket.org/ecollins/passlib")
474 (synopsis
475 "Comprehensive password hashing framework")
476 (description
477 "Passlib is a password hashing library for Python 2 & 3, which provides
478cross-platform implementations of over 30 password hashing algorithms, as well
479as a framework for managing existing password hashes. It's designed to be
480useful for a wide range of tasks, from verifying a hash found in /etc/shadow,
481to providing full-strength password hashing for multi-user application.")
3f641af0 482 (license license:bsd-3)))
f9da1d8a
ED
483
484(define-public python2-passlib
485 (package-with-python2 python-passlib))
486
feb0d9c3
ED
487(define-public python-py-bcrypt
488 (package
489 (name "python-py-bcrypt")
490 (version "0.4")
491 (source
492 (origin
493 (method url-fetch)
494 (uri (string-append
495 "https://pypi.python.org/packages/source/p/py-bcrypt/py-bcrypt-"
496 version
497 ".tar.gz"))
498 (sha256
499 (base32
500 "0y6smdggwi5s72v6p1nn53dg6w05hna3d264cq6kas0lap73p8az"))))
501 (build-system python-build-system)
502 (native-inputs
503 `(("python-setuptools" ,python-setuptools)))
504 (home-page "https://code.google.com/p/py-bcrypt")
505 (synopsis
506 "Bcrypt password hashing and key derivation")
507 (description
508 "A python wrapper of OpenBSD's Blowfish password hashing code. This
509system hashes passwords using a version of Bruce Schneier's Blowfish block
510cipher with modifications designed to raise the cost of off-line password
511cracking and frustrate fast hardware implementation. The computation cost of
512the algorithm is parametised, so it can be increased as computers get faster.
513The intent is to make a compromise of a password database less likely to
514result in an attacker gaining knowledge of the plaintext passwords (e.g. using
515John the Ripper).")
516 ;; "sha2.c" is under BSD-3;
517 ;; "blowfish.c" and "bcrypt.c" are under BSD-4;
518 ;; the rest is under ISC.
3f641af0 519 (license (list license:isc license:bsd-3 license:bsd-4))))
feb0d9c3
ED
520
521(define-public python2-py-bcrypt
522 (package-with-python2 python-py-bcrypt))
523
524
429fdea1
ED
525(define-public python-paramiko
526 (package
527 (name "python-paramiko")
81b9bbbd 528 (version "1.16.0")
429fdea1
ED
529 (source
530 (origin
531 (method url-fetch)
81b9bbbd 532 (uri (pypi-uri "paramiko" version))
429fdea1
ED
533 (sha256
534 (base32
81b9bbbd 535 "14k8z7ndc3zk5xivnm4d8lncchx475ll5izpf8vmfbq7rp9yp5rj"))))
429fdea1
ED
536 (build-system python-build-system)
537 (native-inputs
538 `(("python-setuptools" ,python-setuptools)))
a3fc12da
CR
539 (propagated-inputs
540 `(("python-pycrypto" ,python-pycrypto)))
429fdea1 541 (inputs
a3fc12da 542 `(("python-ecdsa" ,python-ecdsa)))
429fdea1
ED
543 (home-page "http://www.paramiko.org/")
544 (synopsis "SSHv2 protocol library")
545 (description "Paramiko is a python implementation of the SSHv2 protocol,
546providing both client and server functionality. While it leverages a Python C
547extension for low level cryptography (PyCrypto), Paramiko itself is a pure
548Python interface around SSH networking concepts.")
3f641af0 549 (license license:lgpl2.1+)))
429fdea1
ED
550
551(define-public python2-paramiko
552 (package-with-python2 python-paramiko))
553
554
de73dbf6
ED
555(define-public python-httplib2
556 (package
557 (name "python-httplib2")
286f1bac 558 (version "0.9.2")
de73dbf6
ED
559 (source
560 (origin
561 (method url-fetch)
286f1bac 562 (uri (pypi-uri "httplib2" version))
de73dbf6
ED
563 (sha256
564 (base32
286f1bac 565 "126rsryvw9vhbf3qmsfw9lf4l4xm2srmgs439lgma4cpag4s3ay3"))))
de73dbf6
ED
566 (build-system python-build-system)
567 (native-inputs
568 `(("python-setuptools" ,python-setuptools)))
286f1bac 569 (home-page "https://github.com/jcgregorio/httplib2")
de73dbf6
ED
570 (synopsis "Comprehensive HTTP client library")
571 (description
572 "A comprehensive HTTP client library supporting many features left out of
573other HTTP libraries.")
574 (license license:expat)))
575
576(define-public python2-httplib2
577 (package-with-python2 python-httplib2))
578
67039875
ED
579(define-public python-ecdsa
580 (package
581 (name "python-ecdsa")
582 (version "0.13")
583 (source
584 (origin
585 (method url-fetch)
586 (uri (string-append
587 "https://pypi.python.org/packages/source/e/ecdsa/ecdsa-"
588 version
589 ".tar.gz"))
590 (sha256
591 (base32
592 "1yj31j0asmrx4an9xvsaj2icdmzy6pw0glfpqrrkrphwdpi1xkv4"))))
593 (build-system python-build-system)
594 (native-inputs
595 `(("python-setuptools" ,python-setuptools)))
596 (inputs
597 `(("openssl" ,openssl)))
598 (home-page
599 "http://github.com/warner/python-ecdsa")
600 (synopsis
601 "ECDSA cryptographic signature library (pure python)")
602 (description
603 "This is an easy-to-use implementation of ECDSA cryptography (Elliptic
604Curve Digital Signature Algorithm), implemented purely in Python. With this
605library, you can quickly create keypairs (signing key and verifying key), sign
606messages, and verify the signatures. The keys and signatures are very short,
607making them easy to handle and incorporate into other protocols.")
608 (license license:expat)))
609
610(define-public python2-ecdsa
611 (package-with-python2 python-ecdsa))
612
52323f32
ED
613(define-public python-ccm
614 (package
615 (name "python-ccm")
db5567f7 616 (version "2.1.6")
52323f32
ED
617 (source
618 (origin
619 (method url-fetch)
db5567f7 620 (uri (pypi-uri "ccm" version))
52323f32
ED
621 (sha256
622 (base32
db5567f7 623 "177dfxsmk3k4cih6fh6v8d91bh4nqx7ns6pc07w7m7i3cvdx3c8n"))))
52323f32
ED
624 (build-system python-build-system)
625 (native-inputs
626 `(("python-setuptools" ,python-setuptools)))
627 (inputs
628 `(("python-pyyaml" ,python-pyyaml)
629 ("python-six" ,python-six)))
630 (home-page "https://github.com/pcmanus/ccm")
631 (synopsis "Cassandra Cluster Manager")
632 (description "A script/library to create, launch and remove an Apache
633Cassandra cluster on localhost.")
3f641af0 634 (license license:asl2.0)))
52323f32
ED
635
636(define-public python2-ccm
637 (package-with-python2 python-ccm))
638
89114f39 639(define-public python-pytz
acc26ff1 640 (package
89114f39 641 (name "python-pytz")
61c9babb 642 (version "2016.3")
acc26ff1
CR
643 (source
644 (origin
645 (method url-fetch)
61c9babb 646 (uri (pypi-uri "pytz" version ".tar.bz2"))
acc26ff1
CR
647 (sha256
648 (base32
61c9babb 649 "1mjmrkk4vc5xzppw7fm0pli1nnbj57cvqv7jjv5whcmccyhxz4y1"))))
acc26ff1 650 (build-system python-build-system)
8498b8cf 651 (arguments `(#:tests? #f)) ; no test target
b01bbbcf 652 (home-page "http://pythonhosted.org/pytz")
9e771e3b 653 (synopsis "Python timezone library")
acc26ff1
CR
654 (description
655 "This library allows accurate and cross platform timezone calculations
656using Python 2.4 or higher and provides access to the Olson timezone database.")
b01bbbcf 657 (license license:expat)))
5ace6e2f 658
89114f39 659(define-public python2-pytz
11bb85a1 660 (package-with-python2 python-pytz))
89114f39 661
fc50e9c6 662
89114f39 663(define-public python-babel
5ace6e2f 664 (package
89114f39 665 (name "python-babel")
3f37db6b 666 (version "2.3.2")
5ace6e2f
CR
667 (source
668 (origin
669 (method url-fetch)
b850a6d8 670 (uri (pypi-uri "Babel" version))
5ace6e2f
CR
671 (sha256
672 (base32
3f37db6b 673 "0k43pi0p1dwpds2w0km3fw92wixzxv2vw7p09capxmjz5cfh23lw"))))
5ace6e2f
CR
674 (build-system python-build-system)
675 (inputs
e1804763
AE
676 `(("python-pytz" ,python-pytz)
677 ("python-setuptools" ,python-setuptools)))
8498b8cf 678 (arguments `(#:tests? #f)) ; no test target
e1804763 679 (home-page "http://babel.pocoo.org/")
5ace6e2f
CR
680 (synopsis
681 "Tools for internationalizing Python applications")
682 (description
683 "Babel is composed of two major parts:
684- tools to build and work with gettext message catalogs
685- a Python interface to the CLDR (Common Locale Data Repository), providing
686access to various locale display names, localized number and date formatting,
687etc. ")
3f641af0 688 (license license:bsd-3)))
89114f39
AE
689
690(define-public python2-babel
11bb85a1 691 (package-with-python2 python-babel))
73adf220 692
ed377cc6
RW
693(define-public python2-backport-ssl-match-hostname
694 (package
695 (name "python2-backport-ssl-match-hostname")
f2d06d46 696 (version "3.5.0.1")
ed377cc6
RW
697 (source
698 (origin
699 (method url-fetch)
700 (uri (string-append
701 "https://pypi.python.org/packages/source/b/"
702 "backports.ssl_match_hostname/backports.ssl_match_hostname-"
703 version ".tar.gz"))
704 (sha256
705 (base32
f2d06d46 706 "1wndipik52cyqy0677zdgp90i435pmvwd89cz98lm7ri0y3xjajh"))))
ed377cc6 707 (build-system python-build-system)
f2d06d46
EF
708 (arguments
709 `(#:python ,python-2
710 #:tests? #f)) ; no test target
ed377cc6
RW
711 (inputs
712 `(("python2-setuptools" ,python2-setuptools)))
f2d06d46
EF
713 (home-page "https://bitbucket.org/brandon/backports.ssl_match_hostname")
714 (synopsis "Backport of ssl.match_hostname() function from Python 3.5")
ed377cc6
RW
715 (description
716 "This backport brings the ssl.match_hostname() function to users of
717earlier versions of Python. The function checks the hostname in the
718certificate returned by the server to which a connection has been established,
719and verifies that it matches the intended target hostname.")
3f641af0 720 (license license:psfl)))
ed377cc6 721
ef5cbf9b
RW
722(define-public python-h5py
723 (package
724 (name "python-h5py")
fe147c41 725 (version "2.6.0")
ef5cbf9b
RW
726 (source
727 (origin
728 (method url-fetch)
fe147c41 729 (uri (pypi-uri "h5py" version))
ef5cbf9b
RW
730 (sha256
731 (base32
fe147c41 732 "0df46dg7i7xfking9lp221bfm8dbl974yvlrbi1w7r6m61ac7bxj"))))
ef5cbf9b 733 (build-system python-build-system)
797e1401
RW
734 (arguments
735 `(#:tests? #f ; no test target
736 #:phases
737 (modify-phases %standard-phases
738 (add-after 'unpack 'fix-hdf5-paths
739 (lambda* (#:key inputs #:allow-other-keys)
740 (let ((prefix (assoc-ref inputs "hdf5")))
741 (substitute* "setup_build.py"
742 (("\\['/opt/local/lib', '/usr/local/lib'\\]")
743 (string-append "['" prefix "/lib" "']"))
744 (("'/opt/local/include', '/usr/local/include'")
745 (string-append "'" prefix "/include" "'")))
746 (substitute* "setup_configure.py"
747 (("\\['/usr/local/lib', '/opt/local/lib'\\]")
748 (string-append "['" prefix "/lib" "']")))
749 #t))))))
3c4010b1
RW
750 (propagated-inputs
751 `(("python-numpy" ,python-numpy)))
ef5cbf9b 752 (inputs
fe147c41
EF
753 `(("hdf5" ,hdf5)
754 ("python-six" ,python-six)))
ef5cbf9b 755 (native-inputs
fe147c41
EF
756 `(("python-cython" ,python-cython)
757 ("python-pkgconfig" ,python-pkgconfig)))
ef5cbf9b
RW
758 (home-page "http://www.h5py.org/")
759 (synopsis "Read and write HDF5 files from Python")
760 (description
761 "The h5py package provides both a high- and low-level interface to the
762HDF5 library from Python. The low-level interface is intended to be a
763complete wrapping of the HDF5 API, while the high-level component supports
764access to HDF5 files, datasets and groups using established Python and NumPy
765concepts.")
3f641af0 766 (license license:bsd-3)
fe147c41 767 (properties `((python2-variant . ,(delay python2-h5py))))))
ef5cbf9b
RW
768
769(define-public python2-h5py
fe147c41 770 (package-with-python2 (strip-python2-variant python-h5py)))
ef5cbf9b 771
c1448c69
EB
772(define-public python-lockfile
773 (package
774 (name "python-lockfile")
692add53 775 (version "0.12.2")
c1448c69
EB
776 (source
777 (origin
778 (method url-fetch)
779 (uri (string-append "https://pypi.python.org/packages/source/l/lockfile/"
780 "lockfile-" version ".tar.gz"))
781 (sha256
782 (base32
692add53 783 "16gpx5hm73ah5n1079ng0vy381hl802v606npkx4x8nb0gg05vba"))))
c1448c69
EB
784 (build-system python-build-system)
785 (arguments '(#:test-target "check"))
692add53
BW
786 (native-inputs
787 `(("python-pbr" ,python-pbr)))
6a8f26a4 788 (home-page "https://launchpad.net/pylockfile")
c1448c69
EB
789 (synopsis "Platform-independent file locking module")
790 (description
791 "The lockfile package exports a LockFile class which provides a simple
792API for locking files.")
1804527a
BW
793 (license license:expat)
794 (properties `((python2-variant . ,(delay python2-lockfile))))))
c1448c69
EB
795
796(define-public python2-lockfile
1804527a
BW
797 (let ((base (package-with-python2 (strip-python2-variant python-lockfile))))
798 (package
692add53
BW
799 (inherit base)
800 (native-inputs `(("python2-setuptools" ,python2-setuptools)
801 ,@(package-native-inputs base))))))
c1448c69 802
5a1a4bf6
EB
803(define-public python-mock
804 (package
805 (name "python-mock")
806 (version "1.0.1")
807 (source
808 (origin
809 (method url-fetch)
810 (uri (string-append "https://pypi.python.org/packages/source/m/mock/"
811 "mock-" version ".tar.gz"))
812 (sha256
813 (base32
814 "0kzlsbki6q0awf89rc287f3aj8x431lrajf160a70z0ikhnxsfdq"))))
815 (build-system python-build-system)
816 (arguments '(#:test-target "check"))
07af3e5e 817 (home-page "http://code.google.com/p/mock/")
9e771e3b 818 (synopsis "Python mocking and patching library for testing")
5a1a4bf6
EB
819 (description
820 "Mock is a library for testing in Python. It allows you to replace parts
821of your system under test with mock objects and make assertions about how they
822have been used.")
bd3fa666 823 (license license:expat)))
5a1a4bf6
EB
824
825(define-public python2-mock
826 (package-with-python2 python-mock))
827
fc50e9c6 828
73adf220
AE
829(define-public python-setuptools
830 (package
831 (name "python-setuptools")
62a9a23b 832 (version "18.3.1")
73adf220
AE
833 (source
834 (origin
835 (method url-fetch)
836 (uri (string-append "https://pypi.python.org/packages/source/s/setuptools/setuptools-"
837 version ".tar.gz"))
838 (sha256
839 (base32
62a9a23b 840 "0kc7rbav00ks6iaw14p38y81q12fx0lpkhgf5m97xc04f5r318ig"))))
73adf220 841 (build-system python-build-system)
d3d656c5
AE
842 ;; FIXME: Tests require pytest, which itself relies on setuptools.
843 ;; One could bootstrap with an internal untested setuptools.
73adf220 844 (arguments
824af8ca 845 `(#:tests? #f))
73adf220
AE
846 (home-page "https://pypi.python.org/pypi/setuptools")
847 (synopsis
848 "Library designed to facilitate packaging Python projects")
849 (description
850 "Setuptools is a fully-featured, stable library designed to facilitate
851packaging Python projects, where packaging includes:
852Python package and module definitions,
853distribution package metadata,
854test hooks,
855project installation,
856platform-specific details,
857Python 3 support.")
3f641af0 858 (license license:psfl)))
73adf220
AE
859
860(define-public python2-setuptools
861 (package-with-python2 python-setuptools))
fc50e9c6
AE
862
863
cafc3f5a
EB
864(define-public python-pycrypto
865 (package
866 (name "python-pycrypto")
867 (version "2.6.1")
868 (source
869 (origin
870 (method url-fetch)
871 (uri (string-append "https://pypi.python.org/packages/source/p/"
872 "pycrypto/pycrypto-" version ".tar.gz"))
873 (sha256
874 (base32
875 "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj"))))
876 (build-system python-build-system)
877 (native-inputs
878 `(("python-setuptools" ,python-setuptools)))
879 (inputs
880 `(("python" ,python)
881 ("gmp" ,gmp)))
882 (arguments
883 `(#:phases
884 (alist-cons-before
885 'build 'set-build-env
886 ;; pycrypto runs an autoconf configure script behind the scenes
887 (lambda _
888 (setenv "CONFIG_SHELL" (which "bash")))
889 %standard-phases)))
890 (home-page "http://www.pycrypto.org/")
891 (synopsis "Cryptographic modules for Python")
892 (description
893 "Pycrypto is a collection of both secure hash functions (such as SHA256
894and RIPEMD160), and various encryption algorithms (AES, DES, RSA, ElGamal,
35b9e423 895etc.). The package is structured to make adding new modules easy.")
3f641af0 896 (license license:public-domain)))
cafc3f5a 897
345f0611 898(define-public python2-pycrypto
1c0059da
EF
899 (let ((pycrypto (package-with-python2 python-pycrypto)))
900 (package (inherit pycrypto)
901 (inputs
902 `(("python" ,python-2)
903 ,@(alist-delete
904 "python"
905 (package-inputs pycrypto)))))))
345f0611 906
cafc3f5a
EB
907(define-public python-keyring
908 (package
909 (name "python-keyring")
13f3ff35 910 (version "8.7")
cafc3f5a
EB
911 (source
912 (origin
913 (method url-fetch)
664e6c3a 914 (uri (pypi-uri "keyring" version))
cafc3f5a
EB
915 (sha256
916 (base32
13f3ff35 917 "0482rmi2x6p78wl2kz8qzyq21xz1sbbfwnv5x7dggar4vkwxhzfx"))))
cafc3f5a
EB
918 (build-system python-build-system)
919 (native-inputs
13f3ff35 920 `(("python-setuptools-scm" ,python-setuptools-scm)))
cafc3f5a
EB
921 (inputs
922 `(("python-pycrypto" ,python-pycrypto)))
923 (arguments
664e6c3a 924 `(#:tests? #f)) ;TODO: tests require pytest
190ba6c2 925 (home-page "https://github.com/jaraco/keyring")
cafc3f5a
EB
926 (synopsis "Store and access your passwords safely")
927 (description
928 "The Python keyring lib provides a easy way to access the system keyring
35b9e423 929service from python. It can be used in any application that needs safe
cafc3f5a
EB
930password storage.")
931 ;; "MIT" and PSF dual license
3f641af0 932 (license license:x11)
13f3ff35 933 (properties `((python2-variant . ,(delay python2-keyring))))))
cafc3f5a 934
d7af1069 935(define-public python2-keyring
13f3ff35
EF
936 (let ((base (package-with-python2 (strip-python2-variant python-keyring))))
937 (package
938 (inherit base)
939 (native-inputs `(("python2-setuptools" ,python2-setuptools)
940 ,@(package-native-inputs base))))))
d7af1069 941
a480bc41
EB
942(define-public python-six
943 (package
944 (name "python-six")
b6ab89ef 945 (version "1.10.0")
a480bc41
EB
946 (source
947 (origin
948 (method url-fetch)
b6ab89ef 949 (uri (pypi-uri "six" version))
a480bc41
EB
950 (sha256
951 (base32
b6ab89ef 952 "0snmb8xffb3vsma0z67i0h0w2g2dy0p3gsgh9gi4i0kgc5l8spqh"))))
a480bc41
EB
953 (build-system python-build-system)
954 (inputs
955 `(("python-setuptools" ,python-setuptools)))
956 (home-page "http://pypi.python.org/pypi/six/")
957 (synopsis "Python 2 and 3 compatibility utilities")
958 (description
35b9e423 959 "Six is a Python 2 and 3 compatibility library. It provides utility
a480bc41
EB
960functions for smoothing over the differences between the Python versions with
961the goal of writing Python code that is compatible on both Python versions.
35b9e423 962Six supports every Python version since 2.5. It is contained in only one
a480bc41 963Python file, so it can be easily copied into your project.")
3f641af0 964 (license license:x11)))
a480bc41 965
0c20025c
AE
966(define-public python2-six
967 (package-with-python2 python-six))
968
cafc3f5a
EB
969(define-public python-dateutil-2
970 (package
971 (name "python-dateutil")
394b8060 972 (version "2.5.2")
cafc3f5a
EB
973 (source
974 (origin
975 (method url-fetch)
394b8060 976 (uri (pypi-uri "python-dateutil" version))
cafc3f5a
EB
977 (sha256
978 (base32
394b8060 979 "0jrfpcgvgya6hs45dhrd9yiqgdgz9qp9aa07zsw8gqgn8zphff86"))))
cafc3f5a
EB
980 (build-system python-build-system)
981 (inputs
394b8060 982 `(("python-six" ,python-six)))
b5a5fb19 983 (home-page "https://dateutil.readthedocs.io/en/stable/")
cafc3f5a
EB
984 (synopsis "Extensions to the standard datetime module")
985 (description
986 "The dateutil module provides powerful extensions to the standard
987datetime module, available in Python 2.3+.")
3f641af0 988 (license license:bsd-3)
394b8060 989 (properties `((python2-variant . ,(delay python2-dateutil-2))))))
cafc3f5a
EB
990
991(define-public python2-dateutil-2
394b8060
EF
992 (let ((base (package-with-python2 (strip-python2-variant python-dateutil-2))))
993 (package
994 (inherit base)
995 (inputs `(("python2-setuptools" ,python2-setuptools)
996 ,@(package-inputs base))))))
cafc3f5a 997
fc50e9c6
AE
998(define-public python-dateutil
999 (package
1000 (name "python-dateutil")
1001 (version "1.5") ; last version for python < 3
1002 (source
1003 (origin
1004 (method url-fetch)
cafc3f5a
EB
1005 (uri (string-append "http://labix.org/download/python-dateutil/"
1006 "python-dateutil-" version ".tar.gz"))
fc50e9c6
AE
1007 (sha256
1008 (base32
1009 "0fqfglhy5khbvsipr3x7m6bcaqljh8xl5cw33vbfxy7qhmywm2n0"))))
1010 (build-system python-build-system)
1011 (inputs
1012 `(("python-setuptools" ,python-setuptools)))
b5a5fb19 1013 (home-page "https://dateutil.readthedocs.io/en/stable/")
cafc3f5a 1014 (synopsis "Extensions to the standard datetime module")
fc50e9c6
AE
1015 (description
1016 "The dateutil module provides powerful extensions to the standard
1017datetime module, available in Python 2.3+.")
3f641af0 1018 (license license:psfl)))
fc50e9c6
AE
1019
1020(define-public python2-dateutil
1021 (package-with-python2 python-dateutil))
1d08c01f 1022
cafc3f5a
EB
1023(define-public python-parsedatetime
1024 (package
1025 (name "python-parsedatetime")
eebf6f01 1026 (version "2.1")
cafc3f5a
EB
1027 (source
1028 (origin
1029 (method url-fetch)
eebf6f01 1030 (uri (pypi-uri "parsedatetime" version))
cafc3f5a
EB
1031 (sha256
1032 (base32
eebf6f01 1033 "0bdgyw6y3v7bcxlx0p50s8drxsh5bb5cy2afccqr3j90amvpii8p"))))
cafc3f5a
EB
1034 (build-system python-build-system)
1035 (native-inputs
eebf6f01
EF
1036 `(("python-nose" ,python-nose)
1037 ("python-pyicu" ,python-pyicu)))
cafc3f5a
EB
1038 (home-page "http://github.com/bear/parsedatetime/")
1039 (synopsis
1040 "Parse human-readable date/time text")
1041 (description
e881752c 1042 "Parse human-readable date/time text.")
3f641af0 1043 (license license:asl2.0)
eebf6f01 1044 (properties `((python2-variant . ,(delay python2-parsedatetime))))))
cafc3f5a 1045
38b8f9b2 1046(define-public python2-parsedatetime
eebf6f01
EF
1047 (let ((base (package-with-python2 (strip-python2-variant python-parsedatetime))))
1048 (package
1049 (inherit base)
1050 (native-inputs `(("python2-setuptools" ,python2-setuptools)
1051 ,@(package-native-inputs base))))))
38b8f9b2 1052
d072efcb
RW
1053(define-public python-pandas
1054 (package
1055 (name "python-pandas")
7d0c3c8d 1056 (version "0.18.1")
d072efcb
RW
1057 (source
1058 (origin
1b96f069 1059 (method url-fetch)
7d0c3c8d
EF
1060 (uri (string-append
1061 "https://pypi.python.org/packages/11/09/"
1062 "e66eb844daba8680ddff26335d5b4fead77f60f957678243549a8dd4830d/"
1063 "pandas-" version ".tar.gz"))
1b96f069 1064 (sha256
7d0c3c8d 1065 (base32 "1ckpxrvvjj6zxmn68icd9hib8qcpx9b35f6izxnr25br5ilq7r6j"))))
d072efcb 1066 (build-system python-build-system)
d072efcb 1067 (propagated-inputs
42603726
EF
1068 `(("python-numpy" ,python-numpy)))
1069 (inputs
1070 `(("python-pytz" ,python-pytz)
d072efcb
RW
1071 ("python-dateutil" ,python-dateutil-2)))
1072 (native-inputs
7d0c3c8d 1073 `(("python-nose" ,python-nose)))
d072efcb
RW
1074 (home-page "http://pandas.pydata.org")
1075 (synopsis "Data structures for data analysis, time series, and statistics")
1076 (description
1077 "Pandas is a Python package providing fast, flexible, and expressive data
1078structures designed to make working with structured (tabular,
1079multidimensional, potentially heterogeneous) and time series data both easy
1080and intuitive. It aims to be the fundamental high-level building block for
1081doing practical, real world data analysis in Python.")
3f641af0 1082 (license license:bsd-3)
7d0c3c8d 1083 (properties `((python2-variant . ,(delay python2-pandas))))))
d072efcb
RW
1084
1085(define-public python2-pandas
7d0c3c8d
EF
1086 (let ((base (package-with-python2 (strip-python2-variant python-pandas))))
1087 (package
1088 (inherit base)
1089 (native-inputs `(("python2-setuptools" ,python2-setuptools)
dbd40ac1 1090 ,@(package-native-inputs base))))))
d072efcb 1091
cafc3f5a
EB
1092(define-public python-tzlocal
1093 (package
1094 (name "python-tzlocal")
ed80839b 1095 (version "1.2.2")
cafc3f5a
EB
1096 (source
1097 (origin
1098 (method url-fetch)
226d3331 1099 (uri (pypi-uri "tzlocal" version))
cafc3f5a
EB
1100 (sha256
1101 (base32
ed80839b 1102 "0paj7vlsb0np8b5sp4bv64wxv7qk2piyp7xg29pkhdjwsbls9fnb"))))
cafc3f5a 1103 (build-system python-build-system)
ed80839b 1104 (inputs `(("python-pytz" ,python-pytz)))
cafc3f5a
EB
1105 (home-page "https://github.com/regebro/tzlocal")
1106 (synopsis
35b9e423 1107 "Local timezone information for Python")
cafc3f5a
EB
1108 (description
1109 "Tzlocal returns a tzinfo object with the local timezone information.
1110This module attempts to fix a glaring hole in pytz, that there is no way to
1111get the local timezone information, unless you know the zoneinfo name, and
1112under several distributions that's hard or impossible to figure out.")
3f641af0 1113 (license license:cc0)))
cafc3f5a 1114
1d08c01f
AE
1115(define-public python2-pysqlite
1116 (package
1117 (name "python2-pysqlite")
fe476868 1118 (version "2.8.1")
1d08c01f
AE
1119 (source
1120 (origin
1121 (method url-fetch)
fe476868 1122 (uri (pypi-uri "pysqlite" version))
1d08c01f
AE
1123 (sha256
1124 (base32
fe476868 1125 "0rm0zqyb363y6wljhfmbxs16jjv7p8nk1d8zgq9sdwj6js7y3jkm"))))
1d08c01f
AE
1126 (build-system python-build-system)
1127 (inputs
1128 `(("sqlite" ,sqlite)))
1129 (arguments
1130 `(#:python ,python-2 ; incompatible with Python 3
1131 #:tests? #f)) ; no test target
fe476868 1132 (home-page "http://github.com/ghaering/pysqlite")
7a03af70 1133 (synopsis "SQLite bindings for Python")
1d08c01f
AE
1134 (description
1135 "Pysqlite provides SQLite bindings for Python that comply to the
1136Database API 2.0T.")
ed0cdf83 1137 (license license:zlib)))
1d08c01f 1138
2875caf5
AE
1139
1140(define-public python2-mechanize
1141 (package
1142 (name "python2-mechanize")
1143 (version "0.2.5")
1144 (source
1145 (origin
1146 (method url-fetch)
1147 (uri (string-append "https://pypi.python.org/packages/source/m/mechanize/mechanize-"
1148 version ".tar.gz"))
1149 (sha256
1150 (base32
1151 "0rj7r166i1dyrq0ihm5rijfmvhs8a04im28lv05c0c3v206v4rrf"))))
1152 (build-system python-build-system)
1153 (inputs
1154 `(("python2-setuptools" ,python2-setuptools)))
1155 (arguments
1156 `(#:python ,python-2 ; apparently incompatible with Python 3
1157 #:tests? #f))
1158 ;; test fails with message
1159 ;; AttributeError: 'module' object has no attribute 'test_pullparser'
1160 ;; (python-3.3.2) or
1161 ;; AttributeError: 'module' object has no attribute 'test_urllib2_localnet'
1162 ;; (python-2.7.5).
1163 ;; The source code is from March 2011 and probably not up-to-date
1164 ;; with respect to python unit tests.
1165 (home-page "http://wwwsearch.sourceforge.net/mechanize/")
1166 (synopsis
1167 "Stateful programmatic web browsing in Python")
1168 (description
1169 "Mechanize implements stateful programmatic web browsing in Python,
1170after Andy Lester’s Perl module WWW::Mechanize.")
3f641af0
DC
1171 (license (license:non-copyleft
1172 "file://COPYING"
1173 "See COPYING in the distribution."))))
2875caf5 1174
0352532e
AE
1175
1176(define-public python-simplejson
1177 (package
1178 (name "python-simplejson")
988d1bad 1179 (version "3.8.2")
0352532e
AE
1180 (source
1181 (origin
1182 (method url-fetch)
988d1bad 1183 (uri (pypi-uri "simplejson" version))
0352532e
AE
1184 (sha256
1185 (base32
988d1bad 1186 "0zylrnax8b6r0ndgni4w9c599fi6wm9vx5g6k3ddqfj3932kk16m"))))
0352532e
AE
1187 (build-system python-build-system)
1188 (home-page "http://simplejson.readthedocs.org/en/latest/")
1189 (synopsis
1190 "Json library for Python")
1191 (description
e881752c
AK
1192 "JSON (JavaScript Object Notation) is a subset of JavaScript
1193syntax (ECMA-262 3rd edition) used as a lightweight data interchange
1194format.
0352532e
AE
1195
1196Simplejson exposes an API familiar to users of the standard library marshal
1197and pickle modules. It is the externally maintained version of the json
1198library contained in Python 2.6, but maintains compatibility with Python 2.5
1199and (currently) has significant performance advantages, even without using
1200the optional C extension for speedups. Simplejson is also supported on
1201Python 3.3+.")
3f641af0 1202 (license license:x11)))
0352532e
AE
1203
1204(define-public python2-simplejson
1205 (package-with-python2 python-simplejson))
421a80a2
AE
1206
1207
ed07b08d 1208(define-public python-pyicu
421a80a2 1209 (package
ed07b08d 1210 (name "python-pyicu")
d3b29319 1211 (version "1.9.2")
421a80a2
AE
1212 (source
1213 (origin
1214 (method url-fetch)
1215 (uri (string-append "https://pypi.python.org/packages/source/P/PyICU/PyICU-"
1216 version ".tar.gz"))
1217 (sha256
1218 (base32
d3b29319 1219 "1diba0g8md614fvm9yf50paiwdkhj6rd7xwf1rg9mc0pxc0hhn4v"))))
421a80a2
AE
1220 (build-system python-build-system)
1221 (inputs
1222 `(("icu4c" ,icu4c)))
421a80a2 1223 (home-page "http://pyicu.osafoundation.org/")
9e771e3b 1224 (synopsis "Python extension wrapping the ICU C++ API")
421a80a2
AE
1225 (description
1226 "PyICU is a python extension wrapping the ICU C++ API.")
3f641af0 1227 (license license:x11)
ed07b08d
LF
1228 (properties `((python2-variant . ,(delay python2-pyicu))))))
1229
1230(define-public python2-pyicu
1231 (package
1232 (inherit (package-with-python2
1233 (strip-python2-variant python-pyicu)))
1234 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
cc20a22a
LC
1235
1236(define-public python2-dogtail
1237 ;; Python 2 only, as it leads to "TabError: inconsistent use of tabs and
1238 ;; spaces in indentation" with Python 3.
1239 (package
1240 (name "python2-dogtail")
1241 (version "0.8.2")
1242 (source (origin
1243 (method url-fetch)
1244 (uri (string-append
1245 "https://fedorahosted.org/released/dogtail/dogtail-"
1246 version ".tar.gz"))
1247 (sha256
1248 (base32
1249 "1yc4cg7ip87z15gyd4wy2vzbywrjc52a3m8r8gqy2b50d65llcg1"))))
1250 (build-system python-build-system)
1251 (arguments `(#:python ,python-2
1252 #:tests? #f)) ; invalid command "test"
1253 (home-page "https://fedorahosted.org/dogtail/")
1254 (synopsis "GUI test tool and automation framework written in ​Python")
1255 (description
35b9e423 1256 "Dogtail is a GUI test tool and automation framework written in Python.
cc20a22a
LC
1257It uses Accessibility (a11y) technologies to communicate with desktop
1258applications. dogtail scripts are written in Python and executed like any
1259other Python program.")
3f641af0 1260 (license license:gpl2+)))
515e6878 1261
011b18c3
LC
1262(define-public python2-empy
1263 (package
1264 (name "python2-empy")
1265 (version "3.3")
1266 (source (origin
1267 (method url-fetch)
1268 (uri (string-append "http://www.alcyone.com/software/empy/empy-"
1269 version ".tar.gz"))
1270 (sha256
1271 (base32
1272 "01g8mmkfnvjdmlhsihwyx56lrg7r5m5d2fg6mnxsvy6g0dnl69f6"))))
1273 (build-system python-build-system)
1274 (arguments
1275 `(#:python ,python-2
1276 #:phases (alist-replace
1277 'check
1278 (lambda _
1279 (zero? (system* "./test.sh")))
1280 %standard-phases)))
1281 (home-page "http://www.alcyone.com/software/empy/")
1282 (synopsis "Templating system for Python")
1283 (description
1284 "EmPy is a system for embedding Python expressions and statements in
1285template text; it takes an EmPy source file, processes it, and produces
1286output. This is accomplished via expansions, which are special signals to the
1cd4027c 1287EmPy system and are set off by a special prefix (by default the at sign, @@).
011b18c3
LC
1288EmPy can expand arbitrary Python expressions and statements in this way, as
1289well as a variety of special forms. Textual data not explicitly delimited in
1290this way is sent unaffected to the output, allowing Python to be used in
1291effect as a markup language. Also supported are callbacks via hooks,
1292recording and playback via diversions, and dynamic, chainable filters. The
1293system is highly configurable via command line options and embedded
1294commands.")
3f641af0 1295 (license license:lgpl2.1+)))
011b18c3 1296
8deeda0c
LC
1297(define-public python2-element-tree
1298 (package
1299 (name "python2-element-tree")
1300 (version "1.2.6")
1301 (source (origin
1302 (method url-fetch)
1303 (uri (string-append
1304 "http://effbot.org/media/downloads/elementtree-"
1305 version "-20050316.tar.gz"))
1306 (sha256
1307 (base32
1308 "016bphqnlg0l4vslahhw4r0aanw95bpypy65r1i1acyb2wj5z7dj"))))
1309 (build-system python-build-system)
1310 (arguments
1311 `(#:python ,python-2 ; seems to be part of Python 3
1312 #:tests? #f)) ; no 'test' sub-command
1313 (synopsis "Toolkit for XML processing in Python")
1314 (description
1315 "ElementTree is a Python library supporting lightweight XML processing.")
1316 (home-page "http://effbot.org/zone/element-index.htm")
3f641af0
DC
1317 (license (license:x11-style
1318 "http://docs.python.org/2/license.html"
1319 "Like \"CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2\"."))))
8deeda0c
LC
1320
1321(define-public python2-pybugz
1322 (package
1323 (name "python2-pybugz")
1324 (version "0.6.11")
1325 (source (origin
1326 (method url-fetch)
1327 (uri (string-append
1328 "http://bits.liquidx.net/projects/pybugz/pybugz-"
1329 version ".tar.gz"))
1330 (sha256
1331 (base32
6f194a1e 1332 "17ni00p08gp5lkxlrrcnvi3x09fmajnlbz4da03qcgl9q21ym4jd"))
fc1adab1
AK
1333 (patches (search-patches "pybugz-stty.patch"
1334 "pybugz-encode-error.patch"))))
8deeda0c
LC
1335 (build-system python-build-system)
1336 (arguments
1337 `(#:python ,python-2 ; SyntaxError with Python 3
1338 #:tests? #f)) ; no 'test' sub-command
1339 (inputs `(("element-tree" ,python2-element-tree)))
1340 (synopsis "Python and command-line interface to Bugzilla")
1341 (description
1342 "PyBugz is a Python library and command-line tool to query the Bugzilla
1343bug tracking system. It is meant as an aid to speed up interaction with the
1344bug tracker.")
1345 (home-page "http://www.liquidx.net/pybugz/")
3f641af0 1346 (license license:gpl2)))
8deeda0c 1347
a480bc41
EB
1348(define-public python-enum34
1349 (package
1350 (name "python-enum34")
d39ae1e5 1351 (version "1.1.0")
a480bc41
EB
1352 (source
1353 (origin
1354 (method url-fetch)
d39ae1e5 1355 (uri (pypi-uri "enum34" version))
a480bc41
EB
1356 (sha256
1357 (base32
d39ae1e5 1358 "0yx1m4564wxgbm4glb3457hi16xihd9w63rv13y2przkdir9dfgp"))))
a480bc41 1359 (build-system python-build-system)
a480bc41
EB
1360 (arguments
1361 `(#:phases
1362 (alist-replace
1363 'check
1364 (lambda _ (zero? (system* "python" "enum/test_enum.py")))
1365 %standard-phases)))
1366 (home-page "https://pypi.python.org/pypi/enum34")
1367 (synopsis "Backported Python 3.4 Enum")
1368 (description
1369 "Enum34 is the new Python stdlib enum module available in Python 3.4
1370backported for previous versions of Python from 2.4 to 3.3.")
3f641af0 1371 (license license:bsd-3)))
a480bc41 1372
820acd1b
LF
1373(define-public python2-enum34
1374 (package-with-python2 python-enum34))
1375
a480bc41
EB
1376(define-public python-parse-type
1377 (package
1378 (name "python-parse-type")
1379 (version "0.3.4")
1380 (source
1381 (origin
1382 (method url-fetch)
1383 (uri (string-append "https://pypi.python.org/packages/source/p/"
1384 "parse_type/parse_type-" version ".tar.gz"))
1385 (sha256
1386 (base32
1387 "0iv1c34npr4iynwpgv1vkjx9rjd18a85ir8c01gc5f7wp8iv7l1x"))))
1388 (build-system python-build-system)
1389 (inputs
1390 `(("python-setuptools" ,python-setuptools)
1391 ("python-six" ,python-six)
68f1cdec 1392 ("python-parse" ,python-parse)))
a480bc41
EB
1393 (arguments '(#:tests? #f)) ;TODO: tests require pytest
1394 (home-page "https://github.com/jenisys/parse_type")
1395 (synopsis "Extended parse module")
1396 (description
1397 "Parse_type extends the python parse module.")
3f641af0 1398 (license license:bsd-3)))
a480bc41
EB
1399
1400(define-public python-parse
1401 (package
1402 (name "python-parse")
eb3d3503 1403 (version "1.6.6")
a480bc41
EB
1404 (source
1405 (origin
1406 (method url-fetch)
eb3d3503 1407 (uri (pypi-uri "parse" version))
a480bc41
EB
1408 (sha256
1409 (base32
aa6c09ed
EF
1410 "0y31i3mwgv35qn0kzzjn9q8jqfdqmbi6sr6yfvn8rq4lqjm5lhvi"))
1411 (patches (search-patches "python-parse-too-many-fields.patch"))))
a480bc41
EB
1412 (build-system python-build-system)
1413 (arguments
1414 `(#:phases
1415 (alist-replace
1416 'check
1417 (lambda _ (zero? (system* "python" "test_parse.py")))
1418 %standard-phases)))
1419 (home-page "https://github.com/r1chardj0n3s/parse")
1420 (synopsis "Parse strings")
1421 (description
1422 "Parse strings using a specification based on the Python format()
1423syntax.")
3f641af0 1424 (license license:x11)))
a480bc41
EB
1425
1426
515e6878
LC
1427(define-public scons
1428 (package
1429 (name "scons")
a3f61425 1430 (version "2.3.4")
515e6878
LC
1431 (source (origin
1432 (method url-fetch)
de67e922
LF
1433 (uri (string-append "mirror://sourceforge/scons/scons/" version
1434 "/scons-" version ".tar.gz"))
515e6878
LC
1435 (sha256
1436 (base32
a3f61425 1437 "0hdlci43wjz8maryj83mz04ir6rwcdrrzpd7cpzvdlzycqhdfmsb"))))
515e6878
LC
1438 (build-system python-build-system)
1439 (arguments
1440 ;; With Python 3.x, fails to build with a syntax error.
1441 `(#:python ,python-2
1442 #:tests? #f)) ; no 'python setup.py test' command
1443 (home-page "http://scons.org/")
1444 (synopsis "Software construction tool written in Python")
1445 (description
1446 "SCons is a software construction tool. Think of SCons as an improved,
1447cross-platform substitute for the classic Make utility with integrated
1448functionality similar to autoconf/automake and compiler caches such as ccache.
1449In short, SCons is an easier, more reliable and faster way to build
1450software.")
3f641af0 1451 (license license:x11)))
011b18c3 1452
c15a5c0e
DT
1453(define-public python-extras
1454 (package
1455 (name "python-extras")
1456 (version "0.0.3")
1457 (source
1458 (origin
1459 (method url-fetch)
1460 (uri (string-append
1461 "https://pypi.python.org/packages/source/e/extras/extras-"
1462 version ".tar.gz"))
1463 (sha256
1464 (base32
1465 "1h7zx4dfyclalg0fqnfjijpn0f793a9mx8sy3b27gd31nr6dhq3s"))))
1466 (build-system python-build-system)
1467 (inputs
1468 `(("python-setuptools" ,python-setuptools)))
1469 (arguments
1470 ;; error in setup.cfg: command 'test' has no such option 'buffer'
1471 '(#:tests? #f))
1472 (home-page "https://github.com/testing-cabal/extras")
1473 (synopsis "Useful extensions to the Python standard library")
1474 (description
1475 "Extras is a set of extensions to the Python standard library.")
bd3fa666 1476 (license license:expat)))
c15a5c0e
DT
1477
1478(define-public python2-extras
1479 (package-with-python2 python-extras))
1480
56ea0efd
DT
1481(define-public python-mimeparse
1482 (package
1483 (name "python-mimeparse")
1484 (version "0.1.4")
1485 (source
1486 (origin
1487 (method url-fetch)
1488 (uri (string-append
1489 "https://pypi.python.org/packages/source/p/python-mimeparse/python-mimeparse-"
1490 version ".tar.gz"))
1491 (sha256
1492 (base32
1493 "1hyxg09kaj02ri0rmwjqi86wk4nd1akvv7n0dx77azz76wga4s9w"))))
1494 (build-system python-build-system)
1495 (inputs
1496 `(("python-setuptools" ,python-setuptools)))
1497 (arguments
1498 '(#:tests? #f)) ; no setup.py test command
1499 (home-page
1500 "https://github.com/dbtsai/python-mimeparse")
9e771e3b 1501 (synopsis "Python library for parsing MIME types")
56ea0efd
DT
1502 (description
1503 "Mimeparse provides basic functions for parsing MIME type names and
1504matching them against a list of media-ranges.")
bd3fa666 1505 (license license:expat)))
56ea0efd
DT
1506
1507(define-public python2-mimeparse
1508 (package-with-python2 python-mimeparse))
1509
4435427e
DT
1510(define-public python-nose
1511 (package
1512 (name "python-nose")
f7cb9841 1513 (version "1.3.7")
4435427e
DT
1514 (source
1515 (origin
1516 (method url-fetch)
f7cb9841 1517 (uri (pypi-uri "nose" version))
4435427e
DT
1518 (sha256
1519 (base32
f7cb9841 1520 "164a43k7k2wsqqk1s6vavcdamvss4mz0vd6pwzv2h9n8rgwzxgzi"))))
4435427e
DT
1521 (build-system python-build-system)
1522 (inputs
1523 `(("python-setuptools" ,python-setuptools)))
1524 (arguments
1525 '(#:tests? #f)) ; FIXME: test suite fails
1526 (home-page "http://readthedocs.org/docs/nose/")
1527 (synopsis "Python testing library")
1528 (description
1529 "Nose extends the unittest library to make testing easier.")
3f641af0 1530 (license license:lgpl2.0+)))
4435427e
DT
1531
1532(define-public python2-nose
1533 (package-with-python2 python-nose))
1534
0aea283a
EF
1535(define-public python-nose2
1536 (package
1537 (name "python-nose2")
1538 (version "0.6.5")
1539 (source
1540 (origin
1541 (method url-fetch)
1542 (uri (pypi-uri "nose2" version))
1543 (sha256
1544 (base32
1545 "1x4zjq1zlyrh8b9ba0cmafd3w94pxhid408kibyjd3s6h1lap6s7"))))
1546 (build-system python-build-system)
1547 (arguments `(#:tests? #f)) ; 'module' object has no attribute 'collector'
1548 (native-inputs
1549 `(("python-setuptools" ,python-setuptools)))
1550 (inputs
1551 `(("python-cov-core" ,python-cov-core)
1552 ("python-pytest-cov" ,python-pytest-cov)
1553 ("python-six" ,python-six)))
1554 (home-page "https://github.com/nose-devs/nose2")
1555 (synopsis "Next generation of nicer testing for Python")
1556 (description
1557 "Nose2 is the next generation of nicer testing for Python, based on the
1558plugins branch of unittest2. Nose2 aims to improve on nose by providing a
1559better plugin api, being easier for users to configure, and simplifying internal
1560interfaces and processes.")
1561 (license license:bsd-2)))
1562
1563(define-public python2-nose2
1564 (package-with-python2 python-nose2))
1565
6cd9c356
DT
1566(define-public python-unittest2
1567 (package
1568 (name "python-unittest2")
1569 (version "0.5.1")
1570 (source
1571 (origin
1572 (method url-fetch)
1573 (uri (string-append
1574 "https://pypi.python.org/packages/source/u/unittest2py3k/unittest2py3k-"
1575 version ".tar.gz"))
1576 (sha256
1577 (base32
1578 "00yl6lskygcrddx5zspkhr0ibgvpknl4678kkm6s626539grq93q"))))
1579 (build-system python-build-system)
1580 (inputs
1581 `(("python-setuptools" ,python-setuptools)))
1582 (home-page "http://pypi.python.org/pypi/unittest2")
1583 (synopsis "Python unit testing library")
1584 (description
1585 "Unittest2 is a replacement for the unittest module in the Python
1586standard library.")
3f641af0 1587 (license license:psfl)))
6cd9c356
DT
1588
1589(define-public python2-unittest2
1590 (package (inherit python-unittest2)
1591 (name "python2-unittest2")
1592 (version "0.5.1")
1593 (source
1594 (origin
1595 (method url-fetch)
1596 (uri (string-append
1597 "https://pypi.python.org/packages/source/u/unittest2/unittest2-"
1598 version ".tar.gz"))
1599 (sha256
1600 (base32
1601 "0wbs4i4x3x7klr3v35ss6p9mcqz883i1xgcpkhvl7n2lyv6yhpda"))))
1602 (inputs
7957fe6c 1603 `(("python2-setuptools" ,python2-setuptools)))
6cd9c356
DT
1604 (arguments
1605 `(#:python ,python-2
1606 #:tests? #f)))) ; no setup.py test command
1607
542ad60f
DT
1608(define-public python-py
1609 (package
1610 (name "python-py")
71c8a804 1611 (version "1.4.31")
542ad60f
DT
1612 (source
1613 (origin
1614 (method url-fetch)
71c8a804 1615 (uri (pypi-uri "py" version))
542ad60f
DT
1616 (sha256
1617 (base32
71c8a804 1618 "0561gz2w3i825gyl42mcq14y3dcgkapfiv5zv9a2bz15qxiijl56"))))
542ad60f
DT
1619 (build-system python-build-system)
1620 (inputs
1621 `(("python-setuptools" ,python-setuptools)))
1622 (home-page "http://pylib.readthedocs.org/")
1623 (synopsis "Python library for parsing, I/O, instrospection, and logging")
1624 (description
1625 "Py is a Python library for file name parsing, .ini file parsing, I/O,
1626code introspection, and logging.")
bd3fa666 1627 (license license:expat)))
542ad60f
DT
1628
1629(define-public python2-py
1630 (package-with-python2 python-py))
1631
855d4761
DT
1632(define-public python-pytest
1633 (package
1634 (name "python-pytest")
61a4332d 1635 (version "2.7.3")
855d4761
DT
1636 (source
1637 (origin
1638 (method url-fetch)
1639 (uri (string-append
1640 "https://pypi.python.org/packages/source/p/pytest/pytest-"
1641 version ".tar.gz"))
1642 (sha256
1643 (base32
61a4332d 1644 "1z4yi986f9n0p8qmzmn21m21m8j1x78hk3505f89baqm6pdw7afm"))
855d4761
DT
1645 (modules '((guix build utils)))
1646 (snippet
1647 ;; One of the tests involves the /usr directory, so it fails.
1648 '(substitute* "testing/test_argcomplete.py"
1649 (("def test_remove_dir_prefix\\(self\\):")
1650 "@pytest.mark.xfail\n def test_remove_dir_prefix(self):")))))
1651 (build-system python-build-system)
1652 (inputs
1653 `(("python-setuptools" ,python-setuptools)
1654 ("python-py" ,python-py)
1655 ("python-nose" ,python-nose)
1656 ("python-mock" ,python-mock)))
1657 (home-page "http://pytest.org")
1658 (synopsis "Python testing library")
1659 (description
1660 "Pytest is a testing tool that provides auto-discovery of test modules
1661and functions, detailed info on failing assert statements, modular fixtures,
1662and many external plugins.")
bd3fa666 1663 (license license:expat)))
855d4761
DT
1664
1665(define-public python2-pytest
1666 (package-with-python2 python-pytest))
1667
358c3d61
EF
1668(define-public python-pytest-cov
1669 (package
1670 (name "python-pytest-cov")
545f4a1c 1671 (version "2.2.1")
358c3d61
EF
1672 (source
1673 (origin
1674 (method url-fetch)
1675 (uri (pypi-uri "pytest-cov" version))
1676 (sha256
545f4a1c
EF
1677 (base32
1678 "1yl4nbhzfgsxqlsyk4clafgp9x11zvgrkprm9i2p3fgkwx9jxcm8"))))
10468636 1679 (build-system python-build-system)
545f4a1c 1680 (inputs
10468636
EF
1681 `(("python-coverage" ,python-coverage)
1682 ("python-pytest" ,python-pytest)))
10468636
EF
1683 (home-page "https://github.com/pytest-dev/pytest-cov")
1684 (synopsis "Pytest plugin for measuring coverage")
1685 (description
1686 "Pytest-cov produces coverage reports. It supports centralised testing and
1687distributed testing in both @code{load} and @code{each} modes. It also
1688supports coverage of subprocesses.")
545f4a1c
EF
1689 (license license:expat)
1690 (properties `((python2-variant . ,(delay python2-pytest-cov))))))
358c3d61
EF
1691
1692(define-public python2-pytest-cov
545f4a1c
EF
1693 (let ((base (package-with-python2 (strip-python2-variant python-pytest-cov))))
1694 (package
1695 (inherit base)
1696 (inputs `(("python2-setuptools" ,python2-setuptools)
1697 ,@(package-inputs base))))))
358c3d61 1698
6784f2e3
RW
1699(define-public python-pytest-runner
1700 (package
1701 (name "python-pytest-runner")
1702 (version "2.6.2")
1703 (source
1704 (origin
1705 (method url-fetch)
54cd239b 1706 (uri (pypi-uri "pytest-runner" version))
6784f2e3
RW
1707 (sha256
1708 (base32
1709 "1nwcqx0l3fv52kv8526wy8ypzghbq96c96di318d98d3wh7a8xg7"))))
1710 (build-system python-build-system)
1711 (arguments
1712 `(#:phases
1713 (modify-phases %standard-phases
1714 ;; The fancy way of setting the version with setuptools_scm does not
1715 ;; seem to work here.
1716 (add-after 'unpack 'set-version
1717 (lambda _
1718 (substitute* "docs/conf.py"
1719 (("version = setuptools_scm\\.get_version\\(root='\\.\\.')")
1720 (string-append "version = \"" ,version "\"")))
1721 #t)))))
1722 (native-inputs
1723 `(("python-pytest" ,python-pytest)
1724 ("python-setuptools-scm" ,python-setuptools-scm)))
54cd239b 1725 (home-page "https://github.com/pytest-dev/pytest-runner")
6784f2e3
RW
1726 (synopsis "Invoke py.test as a distutils command")
1727 (description
1728 "This package provides a @command{pytest-runner} command that
1729@file{setup.py} files can use to run tests.")
54cd239b
EF
1730 (license license:expat)
1731 (properties `((python2-variant . ,(delay python2-pytest-runner))))))
1732
1733(define-public python2-pytest-runner
1734 (let ((base (package-with-python2
1735 (strip-python2-variant python-pytest-runner))))
1736 (package
1737 (inherit base)
1738 (native-inputs `(("python2-setuptools" ,python2-setuptools)
1739 ,@(package-native-inputs base))))))
6784f2e3 1740
44547e51
EF
1741(define-public python-pytest-mock
1742 (package
1743 (name "python-pytest-mock")
1744 (version "1.2")
1745 (source
1746 (origin
1747 (method url-fetch)
1748 (uri (pypi-uri "pytest-mock" version ".zip"))
1749 (sha256
1750 (base32
1751 "03zxar5drzm7ksqyrwypjaza3cri6wqvpr6iam92djvg6znp32gp"))))
1752 (build-system python-build-system)
1753 (native-inputs
1754 `(("unzip" ,unzip)))
1755 (inputs
1756 `(("python-py" ,python-py)
1757 ("python-pytest" ,python-pytest)))
1758 (home-page "https://github.com/pytest-dev/pytest-mock/")
1759 (synopsis "Thin-wrapper around the mock package for easier use with py.test")
1760 (description
1761 "This plugin installs a @code{mocker} fixture which is a thin-wrapper
1762around the patching API provided by the @code{mock} package, but with the
1763benefit of not having to worry about undoing patches at the end of a test.
1764The mocker fixture has the same API as @code{mock.patch}, supporting the
1765same arguments.")
1766 (properties `((python2-variant . ,(delay python2-pytest-mock))))
1767 (license license:expat)))
1768
1769(define-public python2-pytest-mock
1770 (let ((base (package-with-python2
1771 (strip-python2-variant python-pytest-mock))))
1772 (package (inherit base)
1773 (native-inputs
1774 `(("python2-setuptools" ,python2-setuptools)
1775 ,@(package-native-inputs base)))
1776 (inputs
1777 `(("python2-mock" ,python2-mock)
1778 ,@(package-inputs base))))))
1779
8fa58fc9
CAW
1780(define-public python-pytest-xdist
1781 (package
1782 (name "python-pytest-xdist")
1783 (version "1.14")
1784 (source
1785 (origin
1786 (method url-fetch)
1787 (uri (pypi-uri "pytest-xdist" version ".zip"))
1788 (sha256
1789 (base32
de585a7e
HG
1790 "08rn2l39ds60xshs4js787l84pfckksqklfq2wq9x8ig2aci2pja"))
1791 (modules '((guix build utils)))
1792 (snippet
1793 '(begin
1794 ;; Remove pre-compiled .pyc files from source.
1795 (for-each delete-file-recursively
1796 (find-files "." "__pycache__" #:directories? #t))
1797 (for-each delete-file (find-files "." "\\.pyc$"))
1798 #t))))
8fa58fc9
CAW
1799 (build-system python-build-system)
1800 (native-inputs
1801 `(("unzip" ,unzip)
8fa58fc9 1802 ("python-setuptools-scm" ,python-setuptools-scm)))
fbe9abcc
EF
1803 (inputs
1804 `(("python-apipkg" ,python-apipkg)
1805 ("python-execnet" ,python-execnet)
8fa58fc9
CAW
1806 ("python-pytest" ,python-pytest)
1807 ("python-py" ,python-py)))
1808 (home-page
1809 "https://github.com/pytest-dev/pytest-xdist")
1810 (synopsis
1811 "Plugin for py.test with distributed testing and loop-on-failing modes")
1812 (description
1813 "The pytest-xdist plugin extends py.test with some unique test execution
1814modes: parallelization, running tests in boxed subprocesses, the ability
1815to run tests repeatedly when failed, and the ability to run tests on multiple
1816Python interpreters or platforms. It uses rsync to copy the existing
1817program code to a remote location, executes there, and then syncs the
1818result back.")
fbe9abcc
EF
1819 (license license:expat)
1820 (properties `((python2-variant . ,(delay python2-pytest-xdist))))))
8fa58fc9
CAW
1821
1822(define-public python2-pytest-xdist
fbe9abcc
EF
1823 (let ((base (package-with-python2
1824 (strip-python2-variant python-pytest-xdist))))
1825 (package
1826 (inherit base)
1827 (native-inputs `(("python2-setuptools" ,python2-setuptools)
1828 ,@(package-native-inputs base))))))
8fa58fc9 1829
84d24017
DT
1830(define-public python-scripttest
1831 (package
1832 (name "python-scripttest")
1833 (version "1.3")
1834 (source
1835 (origin
1836 (method url-fetch)
1837 (uri (string-append
1838 "https://pypi.python.org/packages/source/s/scripttest/scripttest-"
1839 version ".tar.gz"))
1840 (sha256
1841 (base32
1842 "0f4w84k8ck82syys7yg9maz93mqzc8p5ymis941x034v44jzq74m"))))
1843 (build-system python-build-system)
1844 (inputs
1845 `(("python-setuptools" ,python-setuptools)
1846 ("python-pytest" ,python-pytest)))
1847 (home-page "http://pythonpaste.org/scripttest/")
1848 (synopsis "Python library to test command-line scripts")
1849 (description "Scripttest is a Python helper library for testing
1850interactive command-line applications. With it you can run a script in a
1851subprocess and see the output as well as any file modifications.")
bd3fa666 1852 (license license:expat)))
84d24017
DT
1853
1854(define-public python2-scripttest
1855 (package-with-python2 python-scripttest))
1856
d8fa80e1
DT
1857(define-public python-testtools
1858 (package
1859 (name "python-testtools")
1860 (version "1.0.0")
1861 (source
1862 (origin
1863 (method url-fetch)
1864 (uri (string-append
1865 "https://pypi.python.org/packages/source/t/testtools/testtools-"
1866 version ".tar.gz"))
1867 (sha256
1868 (base32
1869 "1dyml28ykpl5jb9khdmcdvhy1cxqingys6qvj2k04fzlaj6z3bbx"))))
1870 (build-system python-build-system)
0e88cbf8
CR
1871 (propagated-inputs
1872 `(("python-mimeparse" ,python-mimeparse)))
d8fa80e1
DT
1873 (inputs
1874 `(("python-setuptools" ,python-setuptools)
d8fa80e1
DT
1875 ("python-extras" ,python-extras)))
1876 (home-page "https://github.com/testing-cabal/testtools")
1877 (synopsis
1878 "Extensions to the Python standard library unit testing framework")
1879 (description
1880 "Testtools extends the Python standard library unit testing framework to
1881provide matchers, more debugging information, and cross-Python
1882compatibility.")
3f641af0 1883 (license license:psfl)))
d8fa80e1
DT
1884
1885(define-public python2-testtools
1886 (package-with-python2 python-testtools))
1887
5bf3afea
DT
1888(define-public python-testscenarios
1889 (package
1890 (name "python-testscenarios")
1891 (version "0.4")
1892 (source
1893 (origin
1894 (method url-fetch)
1895 (uri (string-append
1896 "https://pypi.python.org/packages/source/t/testscenarios/testscenarios-"
1897 version ".tar.gz"))
1898 (sha256
1899 (base32
1900 "1671jvrvqlmbnc42j7pc5y6vc37q44aiwrq0zic652pxyy2fxvjg"))))
1901 (build-system python-build-system)
1902 (inputs
1903 `(("python-setuptools" ,python-setuptools)
1904 ("python-testtools" ,python-testtools)
1905 ("python-mimeparse" ,python-mimeparse)))
1906 (home-page "https://launchpad.net/testscenarios")
1907 (synopsis "Pyunit extension for dependency injection")
1908 (description
1909 "Testscenarios provides clean dependency injection for Python unittest
1910style tests.")
3f641af0 1911 (license (list license:bsd-3 license:asl2.0)))) ; at the user's option
5bf3afea
DT
1912
1913(define-public python2-testscenarios
1914 (package-with-python2 python-testscenarios))
1915
dac79ecc
DT
1916(define-public python-testresources
1917 (package
1918 (name "python-testresources")
1919 (version "0.2.7")
1920 (source
1921 (origin
1922 (method url-fetch)
1923 (uri (string-append
1924 "https://pypi.python.org/packages/source/t/testresources/testresources-"
1925 version ".tar.gz"))
1926 (sha256
1927 (base32
1928 "0cbj3plbllyz42c4b5xxgwaa7mml54lakslrn4kkhinxhdri22md"))))
1929 (build-system python-build-system)
1930 (inputs
1931 `(("python-setuptools" ,python-setuptools)))
1932 (home-page "https://launchpad.net/testresources")
1933 (synopsis
1934 "Pyunit extension for managing test resources")
1935 (description
1936 "Testresources is an extension to Python's unittest to allow declarative
1937use of resources by test cases.")
3f641af0 1938 (license (list license:bsd-3 license:asl2.0)))) ; at the user's option
dac79ecc
DT
1939
1940(define-public python2-testresources
1941 (package-with-python2 python-testresources))
1942
070ab058
DT
1943(define-public python-subunit
1944 (package
1945 (name "python-subunit")
1946 (version "0.0.21")
1947 (source
1948 (origin
1949 (method url-fetch)
1950 (uri (string-append
1951 "https://pypi.python.org/packages/source/p/python-subunit/python-subunit-"
1952 version ".tar.gz"))
1953 (sha256
1954 (base32
1955 "1nkw9wfbvizmpajbj3in8ns07g7lwkiv8hip14jjlwk3cacls6jv"))))
1956 (build-system python-build-system)
1957 (inputs
1958 `(("python-setuptools" ,python-setuptools)
1959 ("python-testtools" ,python-testtools)
1960 ("python-mimeparse" ,python-mimeparse)
1961 ("python-testscenarios" ,python-testscenarios)))
1962 (home-page "http://launchpad.net/subunit")
1963 (synopsis "Python implementation of the subunit protocol")
1964 (description
1965 "Python-subunit is a Python implementation of the subunit test streaming
1966protocol.")
3f641af0 1967 (license (list license:bsd-3 license:asl2.0)))) ; at the user's option
070ab058
DT
1968
1969(define-public python2-subunit
1970 (package-with-python2 python-subunit))
1971
7787ef76
CR
1972;; Recent versions of python-fixtures need a recent version of python-pbr,
1973;; which needs a recent version of python-fixtures. To fix this circular
1974;; dependency, we keep old versions of python-fixtures and python-pbr to
1975;; bootstrap the whole thing:
1976;; - python-fixtures-0.3.16 is used to build python-pbr-0.11
1977;; - python-pbr-0.11 is used to build python-fixtures
1978;; - python-fixtures is used to build python-pbr
1979(define-public python-fixtures-0.3.16
cd49454b
DT
1980 (package
1981 (name "python-fixtures")
1982 (version "0.3.16")
1983 (source
1984 (origin
1985 (method url-fetch)
1986 (uri (string-append
1987 "https://pypi.python.org/packages/source/f/fixtures/fixtures-"
1988 version ".tar.gz"))
1989 (sha256
1990 (base32
1991 "0x9r2gwilcig5g54k60bxzg96zabizq1855lrprlb4zckalp9asc"))))
1992 (build-system python-build-system)
1993 (inputs
1994 `(("python-setuptools" ,python-setuptools)))
1995 (arguments
1996 '(#:tests? #f)) ; no setup.py test command
1997 (home-page "https://launchpad.net/python-fixtures")
1998 (synopsis "Python test fixture library")
1999 (description
2000 "Fixtures provides a way to create reusable state, useful when writing
2001Python tests.")
3f641af0 2002 (license (list license:bsd-3 license:asl2.0)))) ; at user's option
cd49454b 2003
7787ef76
CR
2004(define-public python2-fixtures-0.3.16
2005 (package-with-python2 python-fixtures-0.3.16))
2006
2007(define-public python-pbr-0.11
2008 (package
2009 (name "python-pbr")
2010 (version "0.11.0")
2011 (source
2012 (origin
2013 (method url-fetch)
2014 (uri (string-append
2015 "https://pypi.python.org/packages/source/p/pbr/pbr-"
2016 version ".tar.gz"))
2017 (sha256
2018 (base32
2019 "0v9gb7gyqf7q9s99l0nnjj9ww9b0jvyqlwm4d56pcyinxydddw6p"))))
2020 (build-system python-build-system)
2021 (arguments
2022 `(#:tests? #f)) ;; Most tests seem to use the Internet.
2023 (inputs
2024 `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16)
2025 ("python-pip" ,python-pip)
2026 ("python-setuptools" ,python-setuptools)))
2027 (home-page "https://launchpad.net/pbr")
2028 (synopsis "Change the default behavior of Python’s setuptools")
2029 (description
2030 "Python Build Reasonableness (PBR) is a library that injects some useful
2031and sensible default behaviors into your setuptools run.")
3f641af0 2032 (license license:asl2.0)))
7787ef76
CR
2033
2034(define-public python2-pbr-0.11
2035 (package-with-python2 python-pbr-0.11))
2036
1ef09c0c 2037(define-public python-pbr
e25f0174
BW
2038 (package
2039 (name "python-pbr")
1ef09c0c
BW
2040 (version "1.8.1")
2041 (source
e25f0174
BW
2042 (origin
2043 (method url-fetch)
2044 (uri (string-append
2045 "https://pypi.python.org/packages/source/p/pbr/pbr-"
2046 version
2047 ".tar.gz"))
2048 (sha256
2049 (base32
2050 "0jcny36cf3s8ar5r4a575npz080hndnrfs4np1fqhv0ym4k7c4p2"))))
1ef09c0c 2051 (build-system python-build-system)
e25f0174
BW
2052 (arguments
2053 `(#:tests? #f)) ;; Most tests seem to use the Internet.
2054 (propagated-inputs
2055 `(("python-testrepository" ,python-testrepository)
2056 ("git" ,git))) ;; pbr actually uses the "git" binary.
1ef09c0c 2057 (inputs
e25f0174
BW
2058 `(("python-fixtures" ,python-fixtures)
2059 ("python-mimeparse" ,python-mimeparse)
2060 ("python-mock" ,python-mock)
2061 ("python-setuptools" ,python-setuptools)
2062 ("python-six" ,python-six)
2063 ("python-sphinx" ,python-sphinx)
2064 ("python-testrepository" ,python-testrepository)
2065 ("python-testresources" ,python-testresources)
2066 ("python-testscenarios" ,python-testscenarios)
2067 ("python-testtools" ,python-testtools)
2068 ("python-virtualenv" ,python-virtualenv)))
2069 (home-page "https://launchpad.net/pbr")
2070 (synopsis "Change the default behavior of Python’s setuptools")
2071 (description
2072 "Python Build Reasonableness (PBR) is a library that injects some useful
2073and sensible default behaviors into your setuptools run.")
3f641af0 2074 (license license:asl2.0)))
1ef09c0c
BW
2075
2076(define-public python2-pbr
e25f0174 2077 (package-with-python2 python-pbr))
1ef09c0c 2078
7787ef76
CR
2079(define-public python-fixtures
2080 (package
2081 (name "python-fixtures")
13fcc6df 2082 (version "1.4.0")
7787ef76
CR
2083 (source
2084 (origin
2085 (method url-fetch)
13fcc6df 2086 (uri (pypi-uri "fixtures" version))
7787ef76
CR
2087 (sha256
2088 (base32
13fcc6df 2089 "0djxvdwm8s60dbfn7bhf40x6g818p3b3mlwijm1c3bqg7msn271y"))))
7787ef76
CR
2090 (build-system python-build-system)
2091 (propagated-inputs
2092 `(("python-six" ,python-six)
2093 ("python-pbr-0.11" ,python-pbr-0.11)))
2094 (inputs
2095 `(("python-pip" ,python-pip)
2096 ("python-setuptools" ,python-setuptools)
2097 ;; Tests
2098 ("python-testtools" ,python-testtools)))
2099 (arguments
2100 '(#:tests? #f)) ; no setup.py test command
2101 (home-page "https://launchpad.net/python-fixtures")
2102 (synopsis "Python test fixture library")
2103 (description
2104 "Fixtures provides a way to create reusable state, useful when writing
2105Python tests.")
3f641af0 2106 (license (list license:bsd-3 license:asl2.0)))) ; at user's option
7787ef76 2107
cd49454b
DT
2108(define-public python2-fixtures
2109 (package-with-python2 python-fixtures))
2110
b24a0c00
DT
2111(define-public python-testrepository
2112 (package
2113 (name "python-testrepository")
2114 (version "0.0.20")
2115 (source
2116 (origin
2117 (method url-fetch)
2118 (uri (string-append
2119 "https://pypi.python.org/packages/source/t/testrepository/testrepository-"
2120 version ".tar.gz"))
2121 (sha256
2122 (base32
2123 "1ssqb07c277010i6gzzkbdd46gd9mrj0bi0i8vn560n2k2y4j93m"))))
2124 (build-system python-build-system)
05de40c5 2125 (propagated-inputs
7787ef76 2126 `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16)
05de40c5 2127 ("python-testtools" ,python-testtools)))
b24a0c00
DT
2128 (inputs
2129 `(("python-setuptools" ,python-setuptools)
b24a0c00 2130 ("python-subunit" ,python-subunit)
b24a0c00
DT
2131 ("python-mimeparse" ,python-mimeparse)))
2132 (home-page "https://launchpad.net/testrepository")
2133 (synopsis "Database for Python test results")
2134 (description "Testrepository provides a database of test results which can
2135be used as part of a developer's workflow to check things such as what tests
2136have failed since the last commit or what tests are currently failing.")
3f641af0 2137 (license (list license:bsd-3 license:asl2.0)))) ; at user's option
b24a0c00
DT
2138
2139(define-public python2-testrepository
2140 (package-with-python2 python-testrepository))
2141
243a009a
DT
2142(define-public python-coverage
2143 (package
2144 (name "python-coverage")
4d4cf3dd 2145 (version "4.1")
243a009a
DT
2146 (source
2147 (origin
2148 (method url-fetch)
82a3c582 2149 (uri (pypi-uri "coverage" version))
243a009a
DT
2150 (sha256
2151 (base32
4d4cf3dd 2152 "01rbr4br4lsk0lwn8fb96zwd2xr4f0mg1w7iq3j11i8f5ig2nqs1"))))
243a009a
DT
2153 (build-system python-build-system)
2154 (inputs
2155 `(("python-setuptools" ,python-setuptools)))
2156 (home-page "http://nedbatchelder.com/code/coverage")
2157 (synopsis "Code coverage measurement for Python")
2158 (description
2159 "Coverage measures code coverage, typically during test execution. It
2160uses the code analysis tools and tracing hooks provided in the Python standard
2161library to determine which lines are executable, and which have been
2162executed.")
3f641af0 2163 (license license:bsd-3)))
243a009a
DT
2164
2165(define-public python2-coverage
2166 (package-with-python2 python-coverage))
2167
12f839fd
EF
2168(define-public python-cov-core
2169 (package
2170 (name "python-cov-core")
2171 (version "1.15.0")
2172 (source
2173 (origin
2174 (method url-fetch)
2175 (uri (pypi-uri "cov-core" version))
2176 (sha256
2177 (base32
2178 "0k3np9ymh06yv1ib96sb6wfsxjkqhmik8qfsn119vnhga9ywc52a"))))
2179 (build-system python-build-system)
2180 (native-inputs
2181 `(("python-coverage" ,python-coverage)))
2182 (home-page "https://github.com/schlamar/cov-core")
2183 (synopsis "plugin core for use by pytest-cov, nose-cov and nose2-cov")
2184 (description
2185 "This is a library package for use by pytest-cov, nose-cov and nose2-cov.
2186It is useful for developing coverage plugins for these testing frameworks.")
8120205c
EF
2187 (license license:expat)
2188 (properties `((python2-variant . ,(delay python2-cov-core))))))
12f839fd
EF
2189
2190(define-public python2-cov-core
8120205c 2191 (let ((cov-core (package-with-python2 (strip-python2-variant python-cov-core))))
12f839fd
EF
2192 (package (inherit cov-core)
2193 (native-inputs
2194 `(("python2-setuptools" ,python2-setuptools)
2195 ,@(package-native-inputs cov-core))))))
2196
041358fb
DT
2197(define-public python-discover
2198 (package
2199 (name "python-discover")
2200 (version "0.4.0")
2201 (source
2202 (origin
2203 (method url-fetch)
2204 (uri (string-append
2205 "https://pypi.python.org/packages/source/d/discover/discover-"
2206 version ".tar.gz"))
2207 (sha256
2208 (base32
2209 "0y8d0zwiqar51kxj8lzmkvwc3b8kazb04gk5zcb4nzg5k68zmhq5"))))
2210 (build-system python-build-system)
2211 (inputs
2212 `(("python-setuptools" ,python-setuptools)))
2213 (home-page "http://pypi.python.org/pypi/discover/")
2214 (synopsis
2215 "Python test discovery for unittest")
2216 (description
2217 "Discover provides test discovery for unittest, a feature that has been
e881752c 2218backported from Python 2.7 for Python 2.4+.")
3f641af0 2219 (license license:bsd-3)))
041358fb
DT
2220
2221(define-public python2-discover
2222 (package-with-python2 python-discover))
2223
a480bc41
EB
2224(define-public behave
2225 (package
2226 (name "behave")
287cfd1a 2227 (version "1.2.5")
a480bc41
EB
2228 (source (origin
2229 (method url-fetch)
287cfd1a 2230 (uri (pypi-uri "behave" version ".tar.bz2"))
a480bc41
EB
2231 (sha256
2232 (base32
287cfd1a 2233 "1iypp6z46r19n4xmgx6m1lwmlpfjh8vapq8izigrqlaarvp2y64c"))))
a480bc41
EB
2234 (build-system python-build-system)
2235 (inputs
2236 `(("python-setuptools" ,python-setuptools)
2237 ("python-six" ,python-six)
a480bc41
EB
2238 ("python-parse" ,python-parse)
2239 ("python-parse-type" ,python-parse-type)))
2240 (arguments `(#:tests? #f)) ;TODO: tests require nose>=1.3 and
2241 ;PyHamcrest>=1.8
2242 (home-page "http://github.com/behave/behave")
2243 (synopsis "Python behavior-driven development")
2244 (description
2245 "Behave is a tool for behavior-driven development in python.
2246Behavior-driven development (or BDD) is an agile software development
2247technique that encourages collaboration between developers, QA and
2248non-technical or business participants in a software project. Behave uses
2249tests written in a natural language style, backed up by Python code.")
3f641af0 2250 (license license:x11)))
c7303d3c
DT
2251
2252(define-public python-exif-read
2253 (package
2254 (name "python-exif-read")
2a2d0981 2255 (version "2.1.2")
c7303d3c
DT
2256 (source (origin
2257 (method url-fetch)
2a2d0981 2258 (uri (pypi-uri "ExifRead" version))
c7303d3c
DT
2259 (sha256
2260 (base32
2a2d0981 2261 "1b90jf6m9vxh9nanhpyvqdq7hmfx5iggw1l8kq10jrs6xgr49qkr"))))
c7303d3c
DT
2262 (build-system python-build-system)
2263 (inputs
2264 `(("python-setuptools" ,python-setuptools)))
2265 (arguments `(#:tests? #f)) ; no tests
2266 (home-page "https://github.com/ianare/exif-py")
2267 (synopsis "Python library to extract EXIF data from image files")
2268 (description
2269 "ExifRead is a Python library to extract EXIF data from tiff and jpeg
2270files.")
3f641af0 2271 (license license:bsd-3)))
c7303d3c
DT
2272
2273(define-public python2-exif-read
2274 (package-with-python2 python-exif-read))
d5f89b22
DT
2275
2276(define-public python-pyld
2277 (package
2278 (name "python-pyld")
af1ab773 2279 (version "0.6.8")
d5f89b22
DT
2280 (source (origin
2281 (method url-fetch)
af1ab773 2282 (uri (pypi-uri "PyLD" version))
d5f89b22
DT
2283 (sha256
2284 (base32
af1ab773 2285 "0k881ffazpf8q1z8862g4bb3pzwpnz9whrci2mf311mvn1qbyqad"))))
d5f89b22
DT
2286 (build-system python-build-system)
2287 (inputs
2288 `(("python-setuptools" ,python-setuptools)))
2289 (arguments `(#:tests? #f)) ; no tests
2290 (home-page "http://github.com/digitalbazaar/pyld")
2291 (synopsis "Python implementation of the JSON-LD specification")
2292 (description
2293 "PyLD is an implementation of the JSON-LD specification.")
3f641af0 2294 (license license:bsd-3)))
d5f89b22
DT
2295
2296(define-public python2-pyld
2297 (package-with-python2 python-pyld))
3a1f9a68
DT
2298
2299(define-public python-certifi
2300 (package
2301 (name "python-certifi")
b2a2232c 2302 (version "2016.8.31")
3a1f9a68
DT
2303 (source (origin
2304 (method url-fetch)
9a41f443 2305 (uri (pypi-uri "certifi" version))
3a1f9a68
DT
2306 (sha256
2307 (base32
b2a2232c 2308 "06c9dcyv8ss050gkv5xjivbxhm6qm0s9vzy4r33wqabgv118lw7p"))))
3a1f9a68
DT
2309 (build-system python-build-system)
2310 (inputs
2311 `(("python-setuptools" ,python-setuptools)))
2312 (arguments `(#:tests? #f)) ; no tests
2313 (home-page "http://python-requests.org/")
2314 (synopsis "Python CA certificate bundle")
2315 (description
2316 "Certifi is a Python library that contains a CA certificate bundle, which
2317is used by the Requests library to verify HTTPS requests.")
3f641af0 2318 (license license:asl2.0)))
3a1f9a68
DT
2319
2320(define-public python2-certifi
2321 (package-with-python2 python-certifi))
e6cfbd36 2322
12c270dd
RW
2323(define-public python-click
2324 (package
2325 (name "python-click")
43accb58 2326 (version "6.6")
12c270dd
RW
2327 (source
2328 (origin
2329 (method url-fetch)
375f224b 2330 (uri (pypi-uri "click" version))
12c270dd 2331 (sha256
43accb58
LF
2332 (base32
2333 "1sggipyz52crrybwbr9xvwxd4aqigvplf53k9w3ygxmzivd1jsnc"))))
12c270dd 2334 (build-system python-build-system)
e2ab5a09
BW
2335 (arguments
2336 `(#:phases
2337 (modify-phases %standard-phases
2338 (add-after 'unpack 'fix-paths
2339 (lambda* (#:key inputs #:allow-other-keys)
2340 (let ((glibc (assoc-ref inputs ,(if (%current-target-system)
2341 "cross-libc" "libc"))))
2342 (substitute* "click/_unicodefun.py"
2343 (("'locale'")
2344 (string-append "'" glibc "/bin/locale'"))))
2345 #t)))))
12c270dd
RW
2346 (native-inputs
2347 `(("python-setuptools" ,python-setuptools)))
2348 (home-page "http://click.pocoo.org")
2349 (synopsis "Command line library for Python")
2350 (description
2351 "Click is a Python package for creating command line interfaces in a
2352composable way with as little code as necessary. Its name stands for
2353\"Command Line Interface Creation Kit\". It's highly configurable but comes
2354with sensible defaults out of the box.")
3f641af0 2355 (license license:bsd-3)))
12c270dd
RW
2356
2357(define-public python2-click
2358 (package-with-python2 python-click))
2359
addc808d
EF
2360(define-public python-wheel
2361 (package
2362 (name "python-wheel")
40981b5c 2363 (version "0.29.0")
e1ba0749
EF
2364 (source
2365 (origin
2366 (method url-fetch)
2367 (uri (pypi-uri "wheel" version))
2368 (sha256
2369 (base32
40981b5c 2370 "0j0n38hg1jvrmyy68f9ikvzq1gs9g0sx4ws7maf8wi3bwbbqmfqy"))))
e1ba0749
EF
2371 (build-system python-build-system)
2372 (native-inputs
2373 `(("python-setuptools" ,python-setuptools)
2374 ("python-jsonschema" ,python-jsonschema)
2375 ("python-pytest-cov" ,python-pytest-cov)))
2376 (home-page "https://bitbucket.org/pypa/wheel/")
2377 (synopsis "Format for built Python packages")
2378 (description
2379 "A wheel is a ZIP-format archive with a specially formatted filename and
2380the @code{.whl} extension. It is designed to contain all the files for a PEP
2381376 compatible install in a way that is very close to the on-disk format. Many
2382packages will be properly installed with only the @code{Unpack} step and the
2383unpacked archive preserves enough information to @code{Spread} (copy data and
2384scripts to their final locations) at any later time. Wheel files can be
2385installed with a newer @code{pip} or with wheel's own command line utility.")
8ad4ae20
LF
2386 (license license:expat)
2387 (properties `((python2-variant . ,(delay python2-wheel))))))
addc808d
EF
2388
2389(define-public python2-wheel
8ad4ae20
LF
2390 (let ((wheel (package-with-python2
2391 (strip-python2-variant python-wheel))))
264ae686 2392 (package (inherit wheel)
8ad4ae20
LF
2393 (native-inputs `(("python2-functools32" ,python2-functools32)
2394 ,@(package-native-inputs wheel))))))
2395
addc808d 2396
ae641128 2397(define-public python-requests
e6cfbd36 2398 (package
ae641128 2399 (name "python-requests")
74a066f9 2400 (version "2.9.1")
e6cfbd36
DT
2401 (source (origin
2402 (method url-fetch)
5d691657 2403 (uri (pypi-uri "requests" version))
e6cfbd36
DT
2404 (sha256
2405 (base32
74a066f9 2406 "0zsqrzlybf25xscgi7ja4s48y2abf9wvjkn47wh984qgs1fq2xy5"))))
e6cfbd36 2407 (build-system python-build-system)
5d691657 2408 (native-inputs
6a308947
EF
2409 `(("python-setuptools" ,python-setuptools)
2410 ("python-py" ,python-py)
5d691657
EF
2411 ("python-pytest" ,python-pytest)
2412 ("python-pytest-cov" ,python-pytest-cov)
2413 ("python-wheel" ,python-wheel)))
e6cfbd36
DT
2414 (home-page "http://python-requests.org/")
2415 (synopsis "Python HTTP library")
2416 (description
2417 "Requests is a Python HTTP client library. It aims to be easier to use
2418than Python’s urllib2 library.")
3f641af0 2419 (license license:asl2.0)))
864b5211 2420
e9005180
DT
2421;; Some software requires an older version of Requests, notably Docker
2422;; Compose.
2423(define-public python-requests-2.7
2424 (package (inherit python-requests)
2425 (version "2.7.0")
2426 (source (origin
2427 (method url-fetch)
2428 (uri (pypi-uri "requests" version))
2429 (sha256
2430 (base32
2431 "0gdr9dxm24amxpbyqpbh3lbwxc2i42hnqv50sigx568qssv3v2ir"))))))
2432
ae641128 2433(define-public python2-requests
8ad4ae20 2434 (package-with-python2 python-requests))
ae641128 2435
ea521b42
DT
2436(define-public python-vcversioner
2437 (package
2438 (name "python-vcversioner")
2439 (version "2.14.0.0")
2440 (source
2441 (origin
2442 (method url-fetch)
2443 (uri (pypi-uri "vcversioner" version))
2444 (sha256
2445 (base32
2446 "11ivq1bm7v0yb4nsfbv9m7g7lyjn112gbvpjnjz8nv1fx633dm5c"))))
2447 (build-system python-build-system)
2448 (inputs
2449 `(("python-setuptools" ,python-setuptools)))
2450 (synopsis "Python library for version number discovery")
2451 (description "Vcversioner is a Python library that inspects tagging
2452information in a variety of version control systems in order to discover
2453version numbers.")
2454 (home-page "https://github.com/habnabit/vcversioner")
3f641af0 2455 (license license:isc)))
ea521b42
DT
2456
2457(define-public python2-vcversioner
2458 (package-with-python2 python-vcversioner))
ae641128 2459
864b5211
DT
2460(define-public python-jsonschema
2461 (package
2462 (name "python-jsonschema")
b3667afb 2463 (version "2.5.1")
864b5211
DT
2464 (source (origin
2465 (method url-fetch)
2466 (uri
2467 (string-append
2468 "https://pypi.python.org/packages/source/j/jsonschema/jsonschema-"
2469 version ".tar.gz"))
2470 (sha256
2471 (base32
b3667afb 2472 "0hddbqjm4jq63y8jf44nswina1crjs16l9snb6m3vvgyg31klrrn"))))
864b5211
DT
2473 (build-system python-build-system)
2474 (inputs
b3667afb
DT
2475 `(("python-setuptools" ,python-setuptools)
2476 ("python-vcversioner" ,python-vcversioner)))
864b5211
DT
2477 (home-page "http://github.com/Julian/jsonschema")
2478 (synopsis "Implementation of JSON Schema for Python")
2479 (description
2480 "Jsonschema is an implementation of JSON Schema for Python.")
a14600ec
LF
2481 (license license:expat)
2482 (properties `((python2-variant . ,(delay python2-jsonschema))))))
864b5211
DT
2483
2484(define-public python2-jsonschema
a14600ec
LF
2485 (let ((jsonschema (package-with-python2
2486 (strip-python2-variant python-jsonschema))))
264ae686
EF
2487 (package (inherit jsonschema)
2488 (inputs
2489 `(("python2-functools32" ,python2-functools32)
2490 ,@(package-inputs jsonschema))))))
850189b8
DT
2491
2492(define-public python-unidecode
2493 (package
2494 (name "python-unidecode")
8925d4f3 2495 (version "0.04.18")
850189b8
DT
2496 (source (origin
2497 (method url-fetch)
8925d4f3 2498 (uri (pypi-uri "Unidecode" version))
850189b8
DT
2499 (sha256
2500 (base32
8925d4f3 2501 "12hhblqy1ajvidm38im4171x4arg83pfmziyn53nizp29p3m14gi"))))
850189b8
DT
2502 (build-system python-build-system)
2503 (inputs
2504 `(("python-setuptools" ,python-setuptools)))
2505 (home-page "https://pypi.python.org/pypi/Unidecode")
2506 (synopsis "ASCII transliterations of Unicode text")
2507 (description
2508 "Unidecode provides ASCII transliterations of Unicode text. Unidecode is
2509useful when integrating with legacy code that doesn't support Unicode, or for
2510ease of entry of non-Roman names on a US keyboard, or when constructing ASCII
2511machine identifiers from human-readable Unicode strings that should still be
2512somewhat intelligeble.")
3f641af0 2513 (license license:gpl2+)))
850189b8
DT
2514
2515(define-public python2-unidecode
2516 (package-with-python2 python-unidecode))
6d45fef4
DT
2517
2518(define-public python-pyjwt
2519 (package
2520 (name "python-pyjwt")
eb31d4b4 2521 (version "1.4.0")
6d45fef4
DT
2522 (source
2523 (origin
2524 (method url-fetch)
eb31d4b4 2525 (uri (pypi-uri "PyJWT" version))
6d45fef4
DT
2526 (sha256
2527 (base32
eb31d4b4 2528 "1556v2jppd8mjkkj66pxb5rcazm35jq81r233mdl8hfmz9n3icp1"))))
6d45fef4 2529 (build-system python-build-system)
eb31d4b4
EF
2530 (native-inputs
2531 `(("python-setuptools" ,python-setuptools)
2532 ("python-pytest-runner" ,python-pytest-runner)))
6d45fef4
DT
2533 (arguments
2534 '(#:tests? #f)) ; test suite doesn't work
2535 (home-page "http://github.com/progrium/pyjwt")
2536 (synopsis "JSON Web Token implementation in Python")
2537 (description
2538 "PyJWT is a JSON Web Token implementation written in Python.")
bd3fa666 2539 (license license:expat)))
6d45fef4
DT
2540
2541(define-public python2-pyjwt
2542 (package-with-python2 python-pyjwt))
2543
2cec1f6f
DT
2544(define-public python-oauthlib
2545 (package
2546 (name "python-oauthlib")
bde2171d 2547 (version "1.0.3")
2cec1f6f
DT
2548 (source (origin
2549 (method url-fetch)
bde2171d 2550 (uri (pypi-uri "oauthlib" version))
2cec1f6f
DT
2551 (sha256
2552 (base32
bde2171d 2553 "1bfrj70vdjxjw74khbyh6f0dksv7p5rh2346jnlrffyacd3gwjzg"))))
2cec1f6f 2554 (build-system python-build-system)
bde2171d 2555 (native-inputs
59f151ec 2556 `(("python-coverage" ,python-coverage)
2cec1f6f
DT
2557 ("python-nose" ,python-nose)
2558 ("python-mock" ,python-mock)))
bde2171d
EF
2559 (inputs
2560 `(("python-blinker" ,python-blinker)
2561 ("python-cryptography" ,python-cryptography)
2562 ("python-pyjwt" ,python-pyjwt)))
2cec1f6f
DT
2563 (home-page "https://github.com/idan/oauthlib")
2564 (synopsis "OAuth implementation for Python")
2565 (description
2566 "Oauthlib is a generic, spec-compliant, thorough implementation of the
2567OAuth request-signing logic.")
3f641af0 2568 (license license:bsd-3)
59f151ec 2569 (properties `((python2-variant . ,(delay python2-oauthlib))))))
2cec1f6f
DT
2570
2571(define-public python2-oauthlib
59f151ec 2572 (let ((base (package-with-python2 (strip-python2-variant python-oauthlib))))
2cec1f6f
DT
2573 (package
2574 (inherit base)
59f151ec
EF
2575 (native-inputs `(("python2-setuptools" ,python2-setuptools)
2576 ("python2-unittest2" ,python2-unittest2)
2577 ,@(package-native-inputs base))))))
ec5dbb5c
DT
2578
2579(define-public python-itsdangerous
2580 (package
2581 (name "python-itsdangerous")
2582 (version "0.24")
2583 (source
2584 (origin
2585 (method url-fetch)
2586 (uri (string-append
2587 "https://pypi.python.org/packages/source/i/itsdangerous/itsdangerous-"
2588 version ".tar.gz"))
2589 (sha256
2590 (base32
2591 "06856q6x675ly542ig0plbqcyab6ksfzijlyf1hzhgg3sgwgrcyb"))))
2592 (build-system python-build-system)
ec5dbb5c
DT
2593 (home-page "http://github.com/mitsuhiko/itsdangerous")
2594 (synopsis "Python library for passing data to/from untrusted environments")
2595 (description
2596 "Itsdangerous provides various helpers to pass trusted data to untrusted
2597environments and back.")
3f641af0 2598 (license license:bsd-3)
194d0d98 2599 (properties `((python2-variant . ,(delay python2-itsdangerous))))))
ec5dbb5c
DT
2600
2601(define-public python2-itsdangerous
194d0d98
EF
2602 (let ((base (package-with-python2
2603 (strip-python2-variant python-itsdangerous))))
2604 (package
2605 (inherit base)
2606 (native-inputs `(("python2-setuptools" ,python2-setuptools)
2607 ,@(package-native-inputs base))))))
5731cae3 2608
8d12be1e
RW
2609(define-public python-pyyaml
2610 (package
2611 (name "python-pyyaml")
2612 (version "3.11")
2613 (source
2614 (origin
2615 (method url-fetch)
2616 (uri (string-append
2617 "https://pypi.python.org/packages/source/P/PyYAML/PyYAML-"
2618 version ".tar.gz"))
2619 (sha256
2620 (base32
2621 "1s26125vfnskng58ym37xhwv8v0mm95b2cwbjfag8prfhy596v63"))))
2622 (build-system python-build-system)
2623 (inputs
2624 `(("libyaml" ,libyaml)))
2625 (native-inputs
2626 `(("python-setuptools" ,python-setuptools)))
2627 (home-page "http://pyyaml.org/wiki/PyYAML")
2628 (synopsis "YAML parser and emitter for Python")
2629 (description
2630 "PyYAML is a YAML parser and emitter for Python. PyYAML features a
2631complete YAML 1.1 parser, Unicode support, pickle support, capable extension
2632API, and sensible error messages. PyYAML supports standard YAML tags and
2633provides Python-specific tags that allow to represent an arbitrary Python
2634object.")
2635 (license license:expat)))
2636
2637(define-public python2-pyyaml
2638 (package-with-python2 python-pyyaml))
2639
5731cae3
DT
2640(define-public python-virtualenv
2641 (package
2642 (name "python-virtualenv")
58d04dba 2643 (version "15.0.3")
5731cae3
DT
2644 (source
2645 (origin
2646 (method url-fetch)
17804240 2647 (uri (pypi-uri "virtualenv" version))
5731cae3
DT
2648 (sha256
2649 (base32
58d04dba 2650 "07cbajzk8l05k5zhlw0b9wbf2is65bl9v6zrn2a0iyn57w6pd73d"))))
5731cae3 2651 (build-system python-build-system)
17804240
EF
2652 (arguments
2653 `(#:phases
2654 (modify-phases %standard-phases
58d04dba
RW
2655 (replace 'check
2656 (lambda _
2657 ;; Disable failing test. See upstream bug report
2658 ;; https://github.com/pypa/virtualenv/issues/957
2659 (substitute* "tests/test_virtualenv.py"
2660 (("skipif.*") "skipif(True, reason=\"Guix\")\n"))
2661 (zero? (system* "py.test")))))))
5731cae3
DT
2662 (inputs
2663 `(("python-setuptools" ,python-setuptools)
2664 ("python-mock" ,python-mock)
17804240 2665 ("python-pytest" ,python-pytest)))
5731cae3
DT
2666 (home-page "https://virtualenv.pypa.io/")
2667 (synopsis "Virtual Python environment builder")
2668 (description
2669 "Virtualenv is a tool to create isolated Python environments.")
bd3fa666 2670 (license license:expat)))
5731cae3
DT
2671
2672(define-public python2-virtualenv
2673 (package-with-python2 python-virtualenv))
8176d4d5
DT
2674
2675(define-public python-markupsafe
2676 (package
2677 (name "python-markupsafe")
2678 (version "0.23")
2679 (source
2680 (origin
2681 (method url-fetch)
2682 (uri (string-append
2683 "https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-"
2684 version ".tar.gz"))
2685 (sha256
2686 (base32
2687 "1hvip33wva3fnmvfp9x5klqri7hpl1hkgqmjbss18nmrb7zimv54"))))
2688 (build-system python-build-system)
2689 (inputs
2690 `(("python-setuptools" ,python-setuptools)))
2691 (home-page "http://github.com/mitsuhiko/markupsafe")
2692 (synopsis "XML/HTML/XHTML markup safe string implementation for Python")
2693 (description
2694 "Markupsafe provides an XML/HTML/XHTML markup safe string implementation
2695for Python.")
3f641af0 2696 (license license:bsd-3)))
8176d4d5
DT
2697
2698(define-public python2-markupsafe
2699 (package-with-python2 python-markupsafe))
fe34f0d1
DT
2700
2701(define-public python-jinja2
2702 (package
2703 (name "python-jinja2")
e98149b3 2704 (version "2.8")
fe34f0d1
DT
2705 (source
2706 (origin
2707 (method url-fetch)
e98149b3 2708 (uri (pypi-uri "Jinja2" version))
fe34f0d1
DT
2709 (sha256
2710 (base32
e98149b3 2711 "1x0v41lp5m1pjix3l46zx02b7lqp2hflgpnxwkywxynvi3zz47xw"))))
fe34f0d1
DT
2712 (build-system python-build-system)
2713 (inputs
2714 `(("python-setuptools" ,python-setuptools)
2715 ("python-markupsafe" ,python-markupsafe)))
2716 (home-page "http://jinja.pocoo.org/")
2717 (synopsis "Python template engine")
2718 (description
2719 "Jinja2 is a small but fast and easy to use stand-alone template engine
2720written in pure Python.")
3f641af0 2721 (license license:bsd-3)))
fe34f0d1
DT
2722
2723(define-public python2-jinja2
2724 (package-with-python2 python-jinja2))
3580ab8b 2725
f7d17ac7
EE
2726(define-public python-pystache
2727 (package
2728 (name "python-pystache")
2729 (version "0.5.4")
2730 (source (origin
2731 (method url-fetch)
2732 (uri (pypi-uri "pystache" version))
2733 (sha256
2734 (base32
2735 "0nmqsfmiw4arjxqkmf9z66ml950pcdjk6aq4gin4sywmzdjw5fzp"))))
2736 (build-system python-build-system)
2737 (native-inputs
2738 `(("python-setuptools" ,python-setuptools)))
2739 (home-page "http://defunkt.io/pystache/")
2740 (synopsis "Python logic-less template engine")
2741 (description
2742 "Pystache is a Python implementation of the framework agnostic,
2743logic-free templating system Mustache.")
2744 (license license:expat)))
2745
2746(define-public python2-pystache
2747 (package-with-python2 python-pystache))
2748
1285119b
RW
2749(define-public python-joblib
2750 (package
2751 (name "python-joblib")
2752 (version "0.9.0b4")
2753 (source (origin
2754 (method url-fetch)
2755 (uri (string-append "https://pypi.python.org/packages/source/"
2756 "j/joblib/joblib-" version ".tar.gz"))
2757 (sha256
2758 (base32
2759 "1dvw3f8jgj6h0fxkghbgyclvdzc7l0ig7n0vis70awb5kczb9bs3"))))
2760 (build-system python-build-system)
2761 (native-inputs
2762 `(("python-setuptools" ,python-setuptools)
2763 ("python-nose" ,python-nose)))
2764 (home-page "http://pythonhosted.org/joblib/")
2765 (synopsis "Using Python functions as pipeline jobs")
2766 (description
2767 "Joblib is a set of tools to provide lightweight pipelining in Python.
2768In particular, joblib offers: transparent disk-caching of the output values
2769and lazy re-evaluation (memoize pattern), easy simple parallel computing
2770logging and tracing of the execution.")
3f641af0 2771 (license license:bsd-3)))
1285119b
RW
2772
2773(define-public python2-joblib
2774 (package-with-python2 python-joblib))
2775
3580ab8b
DT
2776(define-public python-docutils
2777 (package
2778 (name "python-docutils")
2779 (version "0.12")
2780 (source
2781 (origin
2782 (method url-fetch)
2783 (uri (string-append
2784 "https://pypi.python.org/packages/source/d/docutils/docutils-"
2785 version ".tar.gz"))
2786 (sha256
2787 (base32
2788 "1ylnjnw1x4b2y7blr6x35ncdzn69k253kw4cdkv6asdb21w73ny7"))))
2789 (build-system python-build-system)
2790 (inputs
2791 `(("python-setuptools" ,python-setuptools)))
2792 (arguments
2793 '(#:tests? #f)) ; no setup.py test command
2794 (home-page "http://docutils.sourceforge.net/")
2795 (synopsis "Python Documentation Utilities")
2796 (description
2797 "Docutils is a modular system for processing documentation into useful
2798formats, such as HTML, XML, and LaTeX. For input Docutils supports
2799reStructuredText.")
2800 ;; Most of the source code is public domain, but some source files are
2801 ;; licensed under the PFSL, BSD 2-clause, and GPLv3+ licenses.
3f641af0 2802 (license (list license:public-domain license:psfl license:bsd-2 license:gpl3+))))
3580ab8b
DT
2803
2804(define-public python2-docutils
2805 (package-with-python2 python-docutils))
fb35b7c0
DT
2806
2807(define-public python-pygments
2808 (package
2809 (name "python-pygments")
9f442285 2810 (version "2.0.2")
fb35b7c0
DT
2811 (source
2812 (origin
2813 (method url-fetch)
9f442285 2814 (uri (pypi-uri "Pygments" version))
fb35b7c0
DT
2815 (sha256
2816 (base32
9f442285 2817 "0lagrwifsgn0s8bzqahpr87p7gd38xja8f06akscinp6hj89283k"))))
fb35b7c0
DT
2818 (build-system python-build-system)
2819 (inputs
2820 `(("python-setuptools" ,python-setuptools)))
2821 (home-page "http://pygments.org/")
2822 (synopsis "Syntax highlighting")
2823 (description
2824 "Pygments is a syntax highlighting package written in Python.")
3f641af0 2825 (license license:bsd-2)))
fb35b7c0
DT
2826
2827(define-public python2-pygments
2828 (package-with-python2 python-pygments))
9dd6078d
DT
2829
2830(define-public python-sphinx
2831 (package
2832 (name "python-sphinx")
2833 (version "1.2.3")
2834 (source
2835 (origin
2836 (method url-fetch)
2837 (uri (string-append
2838 "https://pypi.python.org/packages/source/S/Sphinx/Sphinx-"
2839 version ".tar.gz"))
2840 (sha256
2841 (base32
2842 "011xizm3jnmf4cvs5i6kgf6c5nn046h79i8j0vd0f27yw9j3p4wl"))))
2843 (build-system python-build-system)
2844 (inputs
2845 `(("python-setuptools" ,python-setuptools)
2846 ("python-jinja2" ,python-jinja2)
2847 ("python-docutils" ,python-docutils)
2848 ("python-pygments" ,python-pygments)))
2849 (home-page "http://sphinx-doc.org/")
2850 (synopsis "Python documentation generator")
2851 (description "Sphinx is a tool that makes it easy to create documentation
2852for Python projects or other documents consisting of multiple reStructuredText
2853sources.")
3f641af0 2854 (license license:bsd-3)))
9dd6078d
DT
2855
2856(define-public python2-sphinx
2857 (package-with-python2 python-sphinx))
6888830b 2858
ad320b20
RW
2859(define-public python-sphinx-rtd-theme
2860 (package
2861 (name "python-sphinx-rtd-theme")
2862 (version "0.1.6")
2863 (source
2864 (origin
2865 (method url-fetch)
2866 (uri (string-append "https://pypi.python.org/packages/source/s/"
2867 "sphinx_rtd_theme/sphinx_rtd_theme-"
2868 version ".tar.gz"))
2869 (sha256
2870 (base32
2871 "19nw3rn7awplcdrz63kg1njqwkbymfg9lwn7l2grhdyhyr2gaa8g"))))
2872 (build-system python-build-system)
2873 (arguments
2874 `(;; With standard flags, the install phase attempts to create a zip'd
2875 ;; egg file, and fails with an error: 'ZIP does not support timestamps
2876 ;; before 1980'
2877 #:configure-flags '("--single-version-externally-managed"
2878 "--record=sphinx-rtd-theme.txt")))
2879 (native-inputs
2880 `(("python-setuptools" ,python-setuptools)))
2881 (inputs
2882 `(("python-docutils" ,python-docutils)
2883 ("python-sphinx" ,python-sphinx)))
2884 (home-page "https://github.com/snide/sphinx_rtd_theme/")
2885 (synopsis "ReadTheDocs.org theme for Sphinx")
2886 (description "A theme for Sphinx used by ReadTheDocs.org.")
bd3fa666 2887 (license license:expat)))
ad320b20
RW
2888
2889(define-public python2-sphinx-rtd-theme
2890 (package-with-python2 python-sphinx-rtd-theme))
2891
f4de5b3b
CAW
2892(define-public python-feedgenerator
2893 (package
2894 (name "python-feedgenerator")
f0412aa2 2895 (version "1.8")
f4de5b3b 2896 (source
f4de5b3b 2897 (origin
f0412aa2
EF
2898 (method url-fetch)
2899 (uri (pypi-uri "feedgenerator" version))
f4de5b3b
CAW
2900 (sha256
2901 (base32
f0412aa2 2902 "0mkimp1fpdan4p3882vzcws4l594k71ich4g0wq97jbra7p602n0"))))
f4de5b3b 2903 (build-system python-build-system)
f0412aa2 2904 (native-inputs
f4de5b3b
CAW
2905 `(("python-setuptools" ,python-setuptools)
2906 ("python-pytz" ,python-pytz)
2907 ("python-six" ,python-six)))
f0412aa2 2908 (home-page "https://github.com/getpelican/feedgenerator")
f4de5b3b
CAW
2909 (synopsis
2910 "Standalone version of Django's Atom/RSS feed generator")
2911 (description
2912 "Feedgenerator-py3k is a standalone version of Django's feedgenerator,
2913which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
3f641af0 2914 (license license:bsd-3)))
f4de5b3b
CAW
2915
2916(define-public python2-feedgenerator
2917 (package-with-python2 python-feedgenerator))
2918
59ad30e3
CAW
2919(define-public python-blinker
2920 (package
2921 (name "python-blinker")
7fb9ff4d 2922 (version "1.4")
59ad30e3
CAW
2923 (source
2924 (origin
2925 (method url-fetch)
7fb9ff4d 2926 (uri (pypi-uri "blinker" version))
59ad30e3
CAW
2927 (sha256
2928 (base32
7fb9ff4d 2929 "1dpq0vb01p36jjwbhhd08ylvrnyvcc82yxx3mwjx6awrycjyw6j7"))))
59ad30e3
CAW
2930 (build-system python-build-system)
2931 (native-inputs
2932 `(("python-setuptools" ,python-setuptools)))
2933 ;; No "test" command supplied to setuptools, so unless there's another way
2934 ;; to run tests, we're skipping them!
2935 (arguments '(#:tests? #f))
2936 (home-page "http://pythonhosted.org/blinker/")
2937 (synopsis "Fast, simple object-to-object and broadcast signaling")
2938 (description
2939 "Blinker provides a fast dispatching system that allows any number of
2940interested parties to subscribe to events, or \"signals\".")
2941 (license license:expat)))
2942
2943(define-public python2-blinker
2944 (package-with-python2 python-blinker))
2945
b8050e71
CAW
2946(define-public pelican
2947 (package
2948 (name "pelican")
11f97c27 2949 (version "3.6.3")
b8050e71
CAW
2950 (source
2951 (origin
2952 (method url-fetch)
11f97c27 2953 (uri (pypi-uri "pelican" version))
b8050e71
CAW
2954 (sha256
2955 (base32
11f97c27 2956 "1hn94rb4q3zmcq16in055xikal4dba5hfx3zznq7warllcgc9f8k"))))
b8050e71 2957 (build-system python-build-system)
d9f2dece 2958 (inputs
b8050e71
CAW
2959 `(("python-feedgenerator" ,python-feedgenerator)
2960 ("python-jinja2" ,python-jinja2)
2961 ("python-pygments" ,python-pygments)
2962 ("python-docutils" ,python-docutils)
2963 ("python-pytz" ,python-pytz)
2964 ("python-blinker" ,python-blinker)
2965 ("python-unidecode" ,python-unidecode)
2966 ("python-six" ,python-six)
2967 ("python-dateutil-2" ,python-dateutil-2)))
2968 (home-page "http://getpelican.com/")
2969 (arguments
2970 `(;; XXX Requires a lot more packages to do unit tests :P
2971 #:tests? #f
2972 #:phases (modify-phases %standard-phases
2973 (add-before
2974 'install 'adjust-requires
2975 ;; Since feedgenerator is installed from git, it doesn't
2976 ;; conform to the version requirements.
2977 ;;
2978 ;; We *do have* "feedgenerator >= 1.6", but strip off the
2979 ;; version requirement so setuptools doesn't get confused.
2980 (lambda _
2981 (substitute* "setup.py"
2982 (("['\"]feedgenerator.*?['\"]")
2983 "'feedgenerator'")))))))
2984 (synopsis "Python-based static site publishing system")
2985 (description
2986 "Pelican is a tool to generate a static blog from reStructuredText,
2987Markdown input files, and more. Pelican uses Jinja2 for templating
2988and is very extensible.")
3f641af0 2989 (license license:agpl3+)))
b8050e71 2990
240ca4aa
RW
2991(define-public python-scikit-learn
2992 (package
2993 (name "python-scikit-learn")
be0a4c26 2994 (version "0.16.1")
240ca4aa
RW
2995 (source
2996 (origin
2997 (method url-fetch)
2998 (uri (string-append
2999 "https://github.com/scikit-learn/scikit-learn/archive/"
3000 version ".tar.gz"))
7e21b9fb 3001 (file-name (string-append name "-" version ".tar.gz"))
240ca4aa
RW
3002 (sha256
3003 (base32
be0a4c26 3004 "140skabifgc7lvvj873pnzlwx0ni6q8qkrsyad2ccjb3h8rxzkih"))))
240ca4aa
RW
3005 (build-system python-build-system)
3006 (arguments
3007 `(#:phases
3008 (alist-cons-before
2f6b3d2e
RW
3009 'check 'set-HOME
3010 ;; some tests require access to "$HOME"
3011 (lambda _ (setenv "HOME" "/tmp"))
3012 ;; Tests can only be run after the library has been installed and not
3013 ;; within the source directory.
3014 (alist-cons-after
3015 'install 'check
3016 (lambda _
3017 (with-directory-excursion "/tmp"
3018 ;; With Python 3 one test of 3334 fails
3019 ;; (sklearn.tests.test_common.test_transformers); see
3020 ;; https://github.com/scikit-learn/scikit-learn/issues/3693
3021 (system* "nosetests" "-v" "sklearn")))
3022 (alist-delete 'check %standard-phases)))))
240ca4aa 3023 (inputs
2f6b3d2e 3024 `(("openblas" ,openblas)
240ca4aa
RW
3025 ("python-nose" ,python-nose)))
3026 (propagated-inputs
3027 `(("python-numpy" ,python-numpy)
3028 ("python-scipy" ,python-scipy)))
3029 (home-page "http://scikit-learn.org/")
3030 (synopsis "Machine Learning in Python")
3031 (description
3032 "Scikit-learn provides simple and efficient tools for data
3033mining and data analysis.")
25a2f81f
EF
3034 (license license:bsd-3)
3035 (properties `((python2-variant . ,(delay python2-scikit-learn))))))
240ca4aa
RW
3036
3037(define-public python2-scikit-learn
25a2f81f 3038 (package-with-python2 (strip-python2-variant python-scikit-learn)))
240ca4aa 3039
12f8f9bb
RW
3040(define-public python-scikit-image
3041 (package
3042 (name "python-scikit-image")
3043 (version "0.11.3")
3044 (source
3045 (origin
3046 (method url-fetch)
3047 (uri (string-append
3048 "https://pypi.python.org/packages/source/s/scikit-image/scikit-image-"
3049 version ".tar.gz"))
3050 (sha256
3051 (base32 "0jz416fqvpahqyffw8plmszzfj669w8wvf3y9clnr5lr6a7md3kn"))))
3052 (build-system python-build-system)
3053 (propagated-inputs
3054 `(("python-matplotlib" ,python-matplotlib)
3055 ("python-networkx" ,python-networkx)
3056 ("python-numpy" ,python-numpy)
3057 ("python-scipy" ,python-scipy)
3058 ("python-six" ,python-six)
3059 ("python-pillow" ,python-pillow)))
3060 (native-inputs
3061 `(("python-cython" ,python-cython)
3062 ("python-setuptools" ,python-setuptools)))
3063 (home-page "http://scikit-image.org/")
3064 (synopsis "Image processing in Python")
3065 (description
e881752c 3066 "Scikit-image is a collection of algorithms for image processing.")
2b031d3f
EF
3067 (license license:bsd-3)
3068 (properties `((python2-variant . ,(delay python2-scikit-image))))))
12f8f9bb
RW
3069
3070(define-public python2-scikit-image
2b031d3f
EF
3071 (let ((scikit-image (package-with-python2
3072 (strip-python2-variant python-scikit-image))))
12f8f9bb
RW
3073 (package (inherit scikit-image)
3074 (native-inputs
3075 `(("python2-mock" ,python2-mock)
3076 ,@(package-native-inputs scikit-image)))
3077 (propagated-inputs
3078 `(("python2-pytz" ,python2-pytz)
2b031d3f 3079 ,@(package-propagated-inputs scikit-image))))))
12f8f9bb 3080
5394a6a6
RW
3081(define-public python-redis
3082 (package
3083 (name "python-redis")
3084 (version "2.10.3")
3085 (source
3086 (origin
3087 (method url-fetch)
3088 (uri (string-append
3089 "https://pypi.python.org/packages/source/r/redis/redis-"
3090 version ".tar.gz"))
3091 (sha256
3092 (base32 "1701qjwn4n05q90fdg4bsg96s27xf5s4hsb4gxhv3xk052q3gyx4"))))
3093 (build-system python-build-system)
3094 ;; Tests require a running Redis server
3095 (arguments '(#:tests? #f))
3096 (native-inputs
3097 `(("python-setuptools" ,python-setuptools)
3098 ("python-pytest" ,python-pytest)))
3099 (home-page "https://github.com/andymccurdy/redis-py")
3100 (synopsis "Redis Python client")
3101 (description
3102 "This package provides a Python interface to the Redis key-value store.")
3103 (license license:expat)))
3104
3105(define-public python2-redis
3106 (package-with-python2 python-redis))
3107
748cef5b
RW
3108(define-public python-rq
3109 (package
3110 (name "python-rq")
3111 (version "0.5.2")
3112 (source
3113 (origin
3114 (method url-fetch)
3115 (uri (string-append
3116 "https://pypi.python.org/packages/source/r/rq/rq-"
3117 version ".tar.gz"))
3118 (sha256
3119 (base32 "0b0z5hn8wkfg300hx7816csgv3bcfamlr29fi3yzgqmpqxwj3fix"))))
3120 (build-system python-build-system)
3121 (propagated-inputs
3122 `(("python-click" ,python-click)
3123 ("python-redis" ,python-redis)))
3124 (native-inputs
3125 `(("python-setuptools" ,python-setuptools)))
3126 (home-page "http://python-rq.org/")
3127 (synopsis "Simple job queues for Python")
3128 (description
3129 "RQ (Redis Queue) is a simple Python library for queueing jobs and
3130processing them in the background with workers. It is backed by Redis and it
3131is designed to have a low barrier to entry.")
3f641af0 3132 (license license:bsd-2)))
748cef5b
RW
3133
3134(define-public python2-rq
3135 (package-with-python2 python-rq))
3136
6888830b
FB
3137(define-public python-cython
3138 (package
3139 (name "python-cython")
dd22efef 3140 (version "0.24.1")
6888830b
FB
3141 (source
3142 (origin
3143 (method url-fetch)
56918e26 3144 (uri (pypi-uri "Cython" version))
6888830b
FB
3145 (sha256
3146 (base32
dd22efef 3147 "1fg7fmpvfcq9md4ncyqnnylyjy4z3ksdrshzis95g1sh03d8z044"))))
6888830b
FB
3148 (build-system python-build-system)
3149 ;; we need the full python package and not just the python-wrapper
3150 ;; because we need libpython3.3m.so
3151 (inputs
3152 `(("python" ,python)))
3153 (arguments
3154 `(#:phases
b92f651b
EF
3155 (modify-phases %standard-phases
3156 (add-before 'check 'set-HOME
3157 ;; some tests require access to "$HOME/.cython"
3158 (lambda _ (setenv "HOME" "/tmp")))
3159 (replace 'check
3160 (lambda _ (zero? (system* "python" "runtests.py" "-vv")))))))
6888830b
FB
3161 (home-page "http://cython.org/")
3162 (synopsis "C extensions for Python")
3163 (description "Cython is an optimising static compiler for both the Python
3164programming language and the extended Cython programming language. It makes
3165writing C extensions for Python as easy as Python itself.")
3f641af0 3166 (license license:asl2.0)
48b311b1 3167 (properties `((python2-variant . ,(delay python2-cython))))))
6888830b
FB
3168
3169(define-public python2-cython
48b311b1
LC
3170 (package (inherit (package-with-python2
3171 (strip-python2-variant python-cython)))
6888830b
FB
3172 (name "python2-cython")
3173 (inputs
3174 `(("python-2" ,python-2))))) ; this is not automatically changed
0da98533
FB
3175
3176;; This version of numpy is missing the documentation and is only used to
3177;; build matplotlib which is required to build numpy's documentation.
3178(define python-numpy-bootstrap
3179 (package
3180 (name "python-numpy-bootstrap")
ef9b4c04 3181 (version "1.10.4")
0da98533
FB
3182 (source
3183 (origin
3184 (method url-fetch)
de67e922 3185 (uri (string-append "mirror://sourceforge/numpy/NumPy/" version
0da98533
FB
3186 "/numpy-" version ".tar.gz"))
3187 (sha256
3188 (base32
ef9b4c04 3189 "1bjjhvncraka5s6i4lg644jrxij6bvycxy7an20gcz3a0m11iygp"))))
0da98533
FB
3190 (build-system python-build-system)
3191 (inputs
3192 `(("python-nose" ,python-nose)
cba256f8
RW
3193 ("openblas" ,openblas)
3194 ("lapack" ,lapack)))
0da98533 3195 (native-inputs
19afbea1 3196 `(("gfortran" ,gfortran)))
0da98533
FB
3197 (arguments
3198 `(#:phases
3199 (alist-cons-before
3200 'build 'set-environment-variables
3201 (lambda* (#:key inputs #:allow-other-keys)
dbdfe515
RW
3202 (call-with-output-file "site.cfg"
3203 (lambda (port)
cba256f8
RW
3204 (format port
3205 "[openblas]
dbdfe515
RW
3206libraries = openblas
3207library_dirs = ~a/lib
3208include_dirs = ~a/include
cba256f8
RW
3209
3210[lapack]
3211lapack_libs = lapack
3212library_dirs = ~a/lib
3213include_dirs = ~a/include
3214"
3215 (assoc-ref inputs "openblas")
3216 (assoc-ref inputs "openblas")
3217 (assoc-ref inputs "lapack")
3218 (assoc-ref inputs "lapack"))))
dbdfe515
RW
3219 ;; Use "gcc" executable, not "cc".
3220 (substitute* "numpy/distutils/system_info.py"
3221 (("c = distutils\\.ccompiler\\.new_compiler\\(\\)")
3222 "c = distutils.ccompiler.new_compiler(); c.set_executables(compiler='gcc',compiler_so='gcc',linker_exe='gcc',linker_so='gcc -shared')"))
3223 #t)
6a843168
FB
3224 ;; Tests can only be run after the library has been installed and not
3225 ;; within the source directory.
3226 (alist-cons-after
3227 'install 'check
89b5c60e 3228 (lambda _
6a843168 3229 (with-directory-excursion "/tmp"
89b5c60e 3230 (zero? (system* "python" "-c"
6a843168 3231 "import numpy; numpy.test(verbose=2)"))))
89b5c60e
AE
3232 (alist-delete
3233 'check
6a843168 3234 %standard-phases)))))
0da98533
FB
3235 (home-page "http://www.numpy.org/")
3236 (synopsis "Fundamental package for scientific computing with Python")
3237 (description "NumPy is the fundamental package for scientific computing
e881752c 3238with Python. It contains among other things: a powerful N-dimensional array
0da98533
FB
3239object, sophisticated (broadcasting) functions, tools for integrating C/C++
3240and Fortran code, useful linear algebra, Fourier transform, and random number
3241capabilities.")
3f641af0 3242 (license license:bsd-3)))
0da98533
FB
3243
3244(define python2-numpy-bootstrap
3245 (package-with-python2 python-numpy-bootstrap))
15bfe6d6 3246
3a1bfe18
RW
3247(define-public python2-fastlmm
3248 (package
3249 (name "python2-fastlmm")
b074e7d4 3250 (version "0.2.21")
3a1bfe18
RW
3251 (source
3252 (origin
3253 (method url-fetch)
b074e7d4 3254 (uri (pypi-uri "fastlmm" version ".zip"))
3a1bfe18
RW
3255 (sha256
3256 (base32
b074e7d4 3257 "1q8c34rpmwkfy3r4d5172pzdkpfryj561897z9r3x22gq7813x1m"))))
3a1bfe18
RW
3258 (build-system python-build-system)
3259 (arguments
3260 `(#:python ,python-2)) ; only Python 2.7 is supported
3261 (propagated-inputs
3262 `(("python2-numpy" ,python2-numpy)
3263 ("python2-scipy" ,python2-scipy)
3264 ("python2-matplotlib" ,python2-matplotlib)
3265 ("python2-pandas" ,python2-pandas)
3266 ("python2-scikit-learn" ,python2-scikit-learn)
3267 ("python2-cython" ,python2-cython)
3268 ("python2-pysnptools" ,python2-pysnptools)))
3269 (native-inputs
3270 `(("unzip" ,unzip)
3271 ("python2-mock" ,python2-mock)
3272 ("python2-setuptools" ,python2-setuptools)))
3273 (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/fastlmm/")
3274 (synopsis "Perform genome-wide association studies on large data sets")
3275 (description
3276 "FaST-LMM, which stands for Factored Spectrally Transformed Linear Mixed
3277Models, is a program for performing both single-SNP and SNP-set genome-wide
3278association studies (GWAS) on extremely large data sets.")
3f641af0 3279 (license license:asl2.0)))
3a1bfe18 3280
2ee8869a
FB
3281(define-public python-numpy
3282 (package (inherit python-numpy-bootstrap)
3283 (name "python-numpy")
3284 (outputs '("out" "doc"))
89b5c60e 3285 (inputs
2ee8869a
FB
3286 `(("which" ,which)
3287 ("python-setuptools" ,python-setuptools)
3288 ("python-matplotlib" ,python-matplotlib)
3289 ("python-sphinx" ,python-sphinx)
3290 ("python-pyparsing" ,python-pyparsing)
3291 ("python-numpydoc" ,python-numpydoc)
3292 ,@(package-inputs python-numpy-bootstrap)))
3293 (native-inputs
3294 `(("pkg-config" ,pkg-config)
3295 ("texlive" ,texlive)
3296 ("texinfo" ,texinfo)
3297 ("perl" ,perl)
3298 ,@(package-native-inputs python-numpy-bootstrap)))
3299 (arguments
89b5c60e 3300 `(,@(substitute-keyword-arguments
2ee8869a
FB
3301 (package-arguments python-numpy-bootstrap)
3302 ((#:phases phases)
3303 `(alist-cons-after
3304 'install 'install-doc
3305 (lambda* (#:key outputs #:allow-other-keys)
3306 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
89b5c60e
AE
3307 (doc (string-append
3308 data "/doc/" ,name "-"
2ee8869a
FB
3309 ,(package-version python-numpy-bootstrap)))
3310 (info (string-append data "/info"))
3311 (html (string-append doc "/html"))
3312 (pyver ,(string-append "PYVER=")))
3313 (with-directory-excursion "doc"
3314 (mkdir-p html)
3315 (system* "make" "html" pyver)
3316 (system* "make" "latex" "PAPER=a4" pyver)
89b5c60e 3317 (system* "make" "-C" "build/latex"
2ee8869a
FB
3318 "all-pdf" "PAPER=a4" pyver)
3319 ;; FIXME: Generation of the info file fails.
3320 ;; (system* "make" "info" pyver)
3321 ;; (mkdir-p info)
3322 ;; (copy-file "build/texinfo/numpy.info"
3323 ;; (string-append info "/numpy.info"))
3324 (for-each (lambda (file)
3325 (copy-file (string-append "build/latex" file)
3326 (string-append doc file)))
3327 '("/numpy-ref.pdf" "/numpy-user.pdf"))
3328 (with-directory-excursion "build/html"
3329 (for-each (lambda (file)
3330 (let* ((dir (dirname file))
3331 (tgt-dir (string-append html "/" dir)))
3332 (unless (equal? "." dir)
3333 (mkdir-p tgt-dir))
96c46210 3334 (install-file file html)))
2ee8869a
FB
3335 (find-files "." ".*"))))))
3336 ,phases)))))))
3337
764c077b 3338(define-public python2-numpy
57b7b8cd 3339 (package-with-python2 python-numpy))
2ee8869a 3340
15bfe6d6
FB
3341(define-public python-pyparsing
3342 (package
3343 (name "python-pyparsing")
e0669289 3344 (version "2.0.3")
15bfe6d6
FB
3345 (source
3346 (origin
3347 (method url-fetch)
de67e922
LF
3348 (uri (string-append "mirror://sourceforge/pyparsing/pyparsing"
3349 "/pyparsing-" version
15bfe6d6
FB
3350 "/pyparsing-" version ".tar.gz"))
3351 (sha256
3352 (base32
e0669289 3353 "0kw4py7gn45j93q8r7bzajfrjdc3xlsn2yzln41lf9zmrghjkrq6"))))
15bfe6d6
FB
3354 (build-system python-build-system)
3355 (outputs '("out" "doc"))
3356 (arguments
3357 `(#:tests? #f ; no test target
3358 #:modules ((guix build python-build-system)
3359 (guix build utils))
3360 #:phases
3361 (alist-cons-after
3362 'install 'install-doc
3363 (lambda* (#:key outputs #:allow-other-keys)
89b5c60e 3364 (let* ((doc (string-append (assoc-ref outputs "doc")
15bfe6d6
FB
3365 "/share/doc/" ,name "-" ,version))
3366 (html-doc (string-append doc "/html"))
3367 (examples (string-append doc "/examples")))
3368 (mkdir-p html-doc)
3369 (mkdir-p examples)
89b5c60e 3370 (for-each
15bfe6d6 3371 (lambda (dir tgt)
89b5c60e 3372 (map (lambda (file)
96c46210 3373 (install-file file tgt))
15bfe6d6
FB
3374 (find-files dir ".*")))
3375 (list "docs" "htmldoc" "examples")
3376 (list doc html-doc examples))))
3377 %standard-phases)))
3378 (home-page "http://pyparsing.wikispaces.com")
3379 (synopsis "Python parsing class library")
3380 (description
3381 "The pyparsing module is an alternative approach to creating and
3382executing simple grammars, vs. the traditional lex/yacc approach, or the use
3383of regular expressions. The pyparsing module provides a library of classes
3384that client code uses to construct the grammar directly in Python code.")
bd3fa666 3385 (license license:expat)))
15bfe6d6
FB
3386
3387(define-public python2-pyparsing
3388 (package-with-python2 python-pyparsing))
3389
ec00de35
FB
3390(define-public python-numpydoc
3391 (package
3392 (name "python-numpydoc")
3393 (version "0.5")
3394 (source
3395 (origin
3396 (method url-fetch)
89b5c60e 3397 (uri (string-append
ec00de35
FB
3398 "https://pypi.python.org/packages/source/n/numpydoc/numpydoc-"
3399 version ".tar.gz"))
3400 (sha256
3401 (base32
5e4d8f67
AE
3402 "0d4dnifaxkll50jx6czj05y8cb4ny60njd2wz299sj2jxfy51w4k"))
3403 (modules '((guix build utils)))
3404 (snippet
3405 '(begin
3406 ;; Drop a test requiring matplotlib, which we cannot add as an
3407 ;; input since it would create a circular dependency: Extend the
3408 ;; test for Python 3, where it is already dropped, to Python 2.
3409 (substitute* "numpydoc/tests/test_plot_directive.py"
3410 (("3") "2"))))))
ec00de35
FB
3411 (build-system python-build-system)
3412 (inputs
3413 `(("python-setuptools" ,python-setuptools)
3414 ("python-docutils" ,python-docutils)
3415 ("python-sphinx" ,python-sphinx)
3416 ("python-nose" ,python-nose)))
3417 (home-page "https://pypi.python.org/pypi/numpydoc")
3418 (synopsis
3419 "Numpy's Sphinx extensions")
3420 (description
3421 "Sphinx extension to support docstrings in Numpy format.")
3f641af0 3422 (license license:bsd-2)))
ec00de35
FB
3423
3424(define-public python2-numpydoc
5e4d8f67 3425 (package-with-python2 python-numpydoc))
1c65314c 3426
1e656049
RW
3427(define-public python-numexpr
3428 (package
3429 (name "python-numexpr")
26112c0a 3430 (version "2.6.0")
1e656049
RW
3431 (source
3432 (origin
3433 (method url-fetch)
26112c0a 3434 (uri (pypi-uri "numexpr" version))
1e656049
RW
3435 (sha256
3436 (base32
26112c0a 3437 "0i6iagl2hhbr8q4qzbbjd859v5806vqylq87fq7pi914ps6d6cag"))))
1e656049
RW
3438 (build-system python-build-system)
3439 (arguments `(#:tests? #f)) ; no tests included
3440 (propagated-inputs
3441 `(("python-numpy" ,python-numpy)))
3442 (home-page "https://github.com/pydata/numexpr")
3443 (synopsis "Fast numerical expression evaluator for NumPy")
3444 (description
3445 "Numexpr is a fast numerical expression evaluator for NumPy. With it,
3446expressions that operate on arrays are accelerated and use less memory than
3447doing the same calculation in Python. In addition, its multi-threaded
3448capabilities can make use of all your cores, which may accelerate
3449computations, most specially if they are not memory-bounded (e.g. those using
3450transcendental functions).")
fc1a170e
EF
3451 (license license:expat)
3452 (properties `((python2-variant . ,(delay python2-numexpr))))))
1e656049
RW
3453
3454(define-public python2-numexpr
fc1a170e 3455 (package-with-python2 (strip-python2-variant python-numexpr)))
1e656049 3456
1c65314c
FB
3457(define-public python-matplotlib
3458 (package
3459 (name "python-matplotlib")
1bbc659f 3460 (version "1.4.3")
1c65314c
FB
3461 (source
3462 (origin
3463 (method url-fetch)
de67e922
LF
3464 (uri (string-append "mirror://sourceforge/matplotlib/matplotlib"
3465 "/matplotlib-" version
1c65314c
FB
3466 "/matplotlib-" version ".tar.gz"))
3467 (sha256
3468 (base32
1bbc659f 3469 "1dn05cvd0g984lzhh72wa0z93psgwshbbg93fkab6slx5m3l95av"))
fc1adab1 3470 (patches (search-patches "matplotlib-setupext-tk.patch"))))
1c65314c
FB
3471 (build-system python-build-system)
3472 (outputs '("out" "doc"))
25f9a068
FB
3473 (propagated-inputs ; the following packages are all needed at run time
3474 `(("python-pyparsing" ,python-pyparsing)
3475 ("python-pygobject" ,python-pygobject)
3476 ("gobject-introspection" ,gobject-introspection)
1bbc659f 3477 ("python-tkinter" ,python "tk")
25f9a068
FB
3478 ;; The 'gtk+' package (and 'gdk-pixbuf', 'atk' and 'pango' propagated
3479 ;; from 'gtk+') provides the required 'typelib' files used by
3480 ;; 'gobject-introspection'. The location of these files is set with the
3481 ;; help of the environment variable GI_TYPELIB_PATH. At build time this
3482 ;; is done automatically by a 'native-search-path' procedure. However,
3483 ;; at run-time the user must set this variable as follows:
3484 ;;
3485 ;; export GI_TYPELIB_PATH=~/.guix-profile/lib/girepository-1.0
25f9a068
FB
3486 ("gtk+" ,gtk+)
3487 ;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of
3488 ;; 'pycairo'. However, 'pygobject' makes use of a 'pycairo' 'context'
3489 ;; object. For this reason we need to import both libraries.
3490 ;; https://pythonhosted.org/cairocffi/cffi_api.html#converting-pycairo
3491 ("python-pycairo" ,python-pycairo)
3492 ("python-cairocffi" ,python-cairocffi)))
1c65314c
FB
3493 (inputs
3494 `(("python-setuptools" ,python-setuptools)
3495 ("python-dateutil" ,python-dateutil-2)
1c65314c
FB
3496 ("python-six" ,python-six)
3497 ("python-pytz" ,python-pytz)
3498 ("python-numpy" ,python-numpy-bootstrap)
3499 ("python-sphinx" ,python-sphinx)
3500 ("python-numpydoc" ,python-numpydoc)
3501 ("python-nose" ,python-nose)
3502 ("python-mock" ,python-mock)
3503 ("libpng" ,libpng)
3504 ("imagemagick" ,imagemagick)
3505 ("freetype" ,freetype)
25f9a068
FB
3506 ("cairo" ,cairo)
3507 ("glib" ,glib)
4e7a137a 3508 ("python-pillow" ,python-pillow)
1c65314c 3509 ;; FIXME: Add backends when available.
1c65314c
FB
3510 ;("python-wxpython" ,python-wxpython)
3511 ;("python-pyqt" ,python-pyqt)
1bbc659f
FB
3512 ("tcl" ,tcl)
3513 ("tk" ,tk)))
1c65314c
FB
3514 (native-inputs
3515 `(("pkg-config" ,pkg-config)
3516 ("texlive" ,texlive)
3517 ("texinfo" ,texinfo)))
3518 (arguments
3519 `(#:phases
25f9a068
FB
3520 (alist-cons-before
3521 'build 'configure-environment
3522 (lambda* (#:key outputs inputs #:allow-other-keys)
3523 (let ((cairo (assoc-ref inputs "cairo"))
3524 (gtk+ (assoc-ref inputs "gtk+")))
3525 ;; Setting these directories in the 'basedirlist' of 'setup.cfg'
3526 ;; has not effect.
25f9a068
FB
3527 (setenv "LD_LIBRARY_PATH"
3528 (string-append cairo "/lib:" gtk+ "/lib"))
3529 (setenv "HOME" (getcwd))
3530 (call-with-output-file "setup.cfg"
3531 (lambda (port)
1bbc659f
FB
3532 (format port "[directories]~%
3533basedirlist = ~a,~a~%
57b7b8cd 3534 [rc_options]~%
1bbc659f
FB
3535backend = TkAgg~%"
3536 (assoc-ref inputs "tcl")
3537 (assoc-ref inputs "tk"))))))
25f9a068
FB
3538 (alist-cons-after
3539 'install 'install-doc
3540 (lambda* (#:key outputs #:allow-other-keys)
3541 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3542 (doc (string-append data "/doc/" ,name "-" ,version))
3543 (info (string-append data "/info"))
3544 (html (string-append doc "/html")))
3545 (with-directory-excursion "doc"
25f9a068
FB
3546 ;; Produce pdf in 'A4' format.
3547 (substitute* (find-files "." "conf\\.py")
3548 (("latex_paper_size = 'letter'")
3549 "latex_paper_size = 'a4'"))
3550 (mkdir-p html)
3551 (mkdir-p info)
3552 ;; The doc recommends to run the 'html' target twice.
3553 (system* "python" "make.py" "html")
3554 (system* "python" "make.py" "html")
18b31516 3555 (copy-recursively "build/html" html)
25f9a068
FB
3556 (system* "python" "make.py" "latex")
3557 (system* "python" "make.py" "texinfo")
18b31516
FB
3558 (symlink (string-append html "/_images")
3559 (string-append info "/matplotlib-figures"))
3560 (with-directory-excursion "build/texinfo"
3561 (substitute* "matplotlib.texi"
3562 (("@image\\{([^,]*)" all file)
3563 (string-append "@image{matplotlib-figures/" file)))
3564 (symlink (string-append html "/_images")
3565 "./matplotlib-figures")
3566 (system* "makeinfo" "--no-split"
3567 "-o" "matplotlib.info" "matplotlib.texi"))
25f9a068
FB
3568 (copy-file "build/texinfo/matplotlib.info"
3569 (string-append info "/matplotlib.info"))
3570 (copy-file "build/latex/Matplotlib.pdf"
18b31516 3571 (string-append doc "/Matplotlib.pdf")))))
25f9a068 3572 %standard-phases))))
1c65314c
FB
3573 (home-page "http://matplotlib.org")
3574 (synopsis "2D plotting library for Python")
3575 (description
3576 "Matplotlib is a Python 2D plotting library which produces publication
3577quality figures in a variety of hardcopy formats and interactive environments
3578across platforms. Matplotlib can be used in Python scripts, the python and
3579ipython shell, web application servers, and six graphical user interface
3580toolkits.")
3f641af0 3581 (license license:psfl)
57b7b8cd 3582 (properties `((python2-variant . ,(delay python2-matplotlib))))))
1c65314c 3583
764c077b 3584(define-public python2-matplotlib
57b7b8cd
LC
3585 (let ((matplotlib (package-with-python2
3586 (strip-python2-variant python-matplotlib))))
764c077b 3587 (package (inherit matplotlib)
88c26834
AE
3588 ;; Make sure to use special packages for Python 2 instead
3589 ;; of those automatically rewritten by package-with-python2.
89b5c60e 3590 (propagated-inputs
7ca0dbc3 3591 `(("python2-pycairo" ,python2-pycairo)
764c077b 3592 ("python2-pygobject-2" ,python2-pygobject-2)
1bbc659f
FB
3593 ("python2-tkinter" ,python-2 "tk")
3594 ,@(fold alist-delete (package-propagated-inputs matplotlib)
3595 '("python-pycairo" "python-pygobject" "python-tkinter")))))))
94914805 3596
0dde6232
RW
3597(define-public python2-pysnptools
3598 (package
3599 (name "python2-pysnptools")
a800018e 3600 (version "0.3.9")
0dde6232
RW
3601 (source
3602 (origin
3603 (method url-fetch)
3f2e9675 3604 (uri (pypi-uri "pysnptools" version ".zip"))
0dde6232
RW
3605 (sha256
3606 (base32
a800018e 3607 "1wybggjzz8zw7aav4pjsg2h22xp17a1lghrprza1pxwlm7wf96y2"))))
0dde6232
RW
3608 (build-system python-build-system)
3609 (arguments
3610 `(#:python ,python-2)) ; only Python 2.7 is supported
3611 (propagated-inputs
3612 `(("python2-numpy" ,python2-numpy)
3613 ("python2-scipy" ,python2-scipy)
a800018e 3614 ("python2-pytz" ,python2-pytz)
0dde6232 3615 ("python2-cython" ,python2-cython)))
a800018e
EF
3616 (inputs
3617 `(("python2-dateutil-2" ,python2-dateutil-2)
3618 ("python2-pandas" ,python2-pandas)
3619 ("python2-six" ,python2-six)))
0dde6232
RW
3620 (native-inputs
3621 `(("unzip" ,unzip)
3622 ("python2-setuptools" ,python2-setuptools)))
3623 (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/")
3624 (synopsis "Library for reading and manipulating genetic data")
3625 (description
3626 "PySnpTools is a library for reading and manipulating genetic data. It
3627can, for example, efficiently read whole PLINK *.bed/bim/fam files or parts of
3628those files. It can also efficiently manipulate ranges of integers using set
3629operators such as union, intersection, and difference.")
3f641af0 3630 (license license:asl2.0)))
0dde6232 3631
c9b1b4f9
RW
3632(define-public python-rpy2
3633 (package
3634 (name "python-rpy2")
ec3bcbc7 3635 (version "2.7.6")
c9b1b4f9
RW
3636 (source
3637 (origin
3638 (method url-fetch)
ec3bcbc7 3639 (uri (pypi-uri "rpy2" version))
c9b1b4f9
RW
3640 (sha256
3641 (base32
ec3bcbc7 3642 "0nhan2qvrw7b7gg5zddwa22kybdv3x1g26vkd7q8lvnkgzrs4dga"))))
c9b1b4f9
RW
3643 (build-system python-build-system)
3644 (inputs
3645 `(("python-six" ,python-six)
3646 ("readline" ,readline)
3647 ("icu4c" ,icu4c)
3648 ("pcre" ,pcre)
3649 ("r" ,r)))
3650 (native-inputs
5ff6575b
RW
3651 `(("python-setuptools" ,python-setuptools)
3652 ("zlib" ,zlib)))
c9b1b4f9
RW
3653 (home-page "http://rpy.sourceforge.net/")
3654 (synopsis "Python interface to the R language")
3655 (description "rpy2 is a redesign and rewrite of rpy. It is providing a
3656low-level interface to R from Python, a proposed high-level interface,
3657including wrappers to graphical libraries, as well as R-like structures and
3658functions.")
3f641af0 3659 (license license:gpl3+)))
c9b1b4f9
RW
3660
3661(define-public python2-rpy2
3662 (let ((rpy2 (package-with-python2 python-rpy2)))
3663 (package (inherit rpy2)
3664 (native-inputs
3665 `(("python2-singledispatch" ,python2-singledispatch)
3666 ,@(package-native-inputs rpy2))))))
3667
bb986599
FB
3668(define-public python-scipy
3669 (package
3670 (name "python-scipy")
ba8a0824 3671 (version "0.16.0")
bb986599
FB
3672 (source
3673 (origin
3674 (method url-fetch)
de67e922
LF
3675; http://downloads.sourceforge.net/project/scipy/scipy/0.16.1/scipy-0.16.1.tar.gz
3676 (uri (string-append "mirror://sourceforge/scipy/scipy/" version
da6ce3f1 3677 "/scipy-" version ".tar.xz"))
bb986599
FB
3678 (sha256
3679 (base32
ba8a0824 3680 "0wa0a4skpda3gx7lb12yn19nhbairlyxrvda2lz2bcawk3x5qzz2"))))
bb986599 3681 (build-system python-build-system)
dd86c0d1 3682 (propagated-inputs
bb986599
FB
3683 `(("python-numpy" ,python-numpy)
3684 ("python-matplotlib" ,python-matplotlib)
dd86c0d1
RW
3685 ("python-pyparsing" ,python-pyparsing)))
3686 (inputs
3687 `(("lapack" ,lapack)
719b01c1 3688 ("openblas" ,openblas)))
bb986599 3689 (native-inputs
dd86c0d1
RW
3690 `(("python-nose" ,python-nose)
3691 ("python-sphinx" ,python-sphinx)
5248d49e 3692 ("python-numpydoc" ,python-numpydoc)
dd86c0d1 3693 ("gfortran" ,gfortran)
bb986599
FB
3694 ("texlive" ,texlive)
3695 ("perl" ,perl)))
3696 (outputs '("out" "doc"))
3697 (arguments
3698 `(#:phases
3699 (alist-cons-before
719b01c1 3700 'build 'configure-openblas
bb986599 3701 (lambda* (#:key inputs #:allow-other-keys)
719b01c1
RW
3702 (call-with-output-file "site.cfg"
3703 (lambda (port)
3704 (format port
3705 "[blas]
3706libraries = openblas
3707library_dirs = ~a/lib
3708include_dirs = ~a/include
3709[atlas]
3710library_dirs = ~a/lib
3711atlas_libs = openblas
3712"
3713 (assoc-ref inputs "openblas")
3714 (assoc-ref inputs "openblas")
3715 (assoc-ref inputs "openblas"))))
3716 #t)
bb986599
FB
3717 (alist-cons-after
3718 'install 'install-doc
3719 (lambda* (#:key outputs #:allow-other-keys)
3720 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3721 (doc (string-append data "/doc/" ,name "-" ,version))
3722 (html (string-append doc "/html"))
3723 (pyver ,(string-append "PYVER=")))
3724 (with-directory-excursion "doc"
bb986599
FB
3725 ;; Fix generation of images for mathematical expressions.
3726 (substitute* (find-files "source" "conf\\.py")
3727 (("pngmath_use_preview = True")
3728 "pngmath_use_preview = False"))
3729 (mkdir-p html)
3730 (system* "make" "html" pyver)
3731 (system* "make" "latex" "PAPER=a4" pyver)
3732 (system* "make" "-C" "build/latex" "all-pdf" "PAPER=a4" pyver)
3733 (copy-file "build/latex/scipy-ref.pdf"
3734 (string-append doc "/scipy-ref.pdf"))
3735 (with-directory-excursion "build/html"
3736 (for-each (lambda (file)
3737 (let* ((dir (dirname file))
3738 (tgt-dir (string-append html "/" dir)))
96c46210 3739 (install-file file html)))
bb986599
FB
3740 (find-files "." ".*"))))))
3741 ;; Tests can only be run after the library has been installed and not
3742 ;; within the source directory.
3743 (alist-cons-after
3744 'install 'check
89b5c60e 3745 (lambda _
bb986599
FB
3746 (with-directory-excursion "/tmp"
3747 (zero? (system* "python" "-c" "import scipy; scipy.test()"))))
89b5c60e
AE
3748 (alist-delete
3749 'check
4f9ff21e
RW
3750 (alist-cons-after
3751 'unpack 'fix-tests
3752 (lambda _
3753 (substitute* "scipy/integrate/tests/test_quadpack.py"
3754 (("libm.so") "libm.so.6"))
3755 #t)
3756 %standard-phases)))))))
bb986599
FB
3757 (home-page "http://www.scipy.org/")
3758 (synopsis "The Scipy library provides efficient numerical routines")
3759 (description "The SciPy library is one of the core packages that make up
3760the SciPy stack. It provides many user-friendly and efficient numerical
3761routines such as routines for numerical integration and optimization.")
3f641af0 3762 (license license:bsd-3)))
bb986599 3763
764c077b 3764(define-public python2-scipy
57b7b8cd 3765 (package-with-python2 python-scipy))
bb986599 3766
73acc193 3767(define-public python-socksipy-branch
3768 (package
3769 (name "python-socksipy-branch")
3770 (version "1.01")
3771 (source
3772 (origin
3773 (method url-fetch)
3774 (uri (pypi-uri "SocksiPy-branch" version))
3775 (sha256
3776 (base32
3777 "01l41v4g7fy9fzvinmjxy6zcbhgqaif8dhdqm4w90fwcw9h51a8p"))))
3778 (build-system python-build-system)
3779 (arguments
3780 `(#:tests? #f)) ; There are no tests
3781 (home-page "https://code.google.com/archive/p/socksipy-branch/")
3782 (synopsis "Python SOCKS module")
3783 (description
3784 "SocksiPy - A Python SOCKS client module. It provides a
3785socket-like interface that supports connections to any TCP
3786service through the use of a SOCKS4, SOCKS5 or HTTP proxy.
3787The original version was developed by Dan Haim, this is a
3788branch created by Mario Vilas to address some open issues,
3789as the original project seems to have been abandoned circa 2007.")
3790 (license license:bsd-3)))
3791
3792(define-public python2-socksipy-branch
3793 (package-with-python2 python-socksipy-branch))
3794
94914805
EB
3795(define-public python-sqlalchemy
3796 (package
3797 (name "python-sqlalchemy")
a4ba286b 3798 (version "1.0.12")
94914805
EB
3799 (source
3800 (origin
3801 (method url-fetch)
3802 (uri (string-append "https://pypi.python.org/packages/source/S/"
3803 "SQLAlchemy/SQLAlchemy-" version ".tar.gz"))
3804 (sha256
3805 (base32
a4ba286b 3806 "1l8qclhd0s90w3pvwhi5mjxdwr5j7gw7cjka2fx6f2vqmq7f4yb6"))))
94914805
EB
3807 (build-system python-build-system)
3808 (native-inputs
3809 `(("python-cython" ,python-cython) ;for c extensions
3810 ("python-pytest" ,python-pytest)
3811 ("python-mock" ,python-mock))) ;for tests
3812 (arguments
3813 `(#:phases (alist-replace
3814 'check
3815 (lambda _ (zero? (system* "py.test")))
3816 %standard-phases)))
3817 (home-page "http://www.sqlalchemy.org")
3818 (synopsis "Database abstraction library")
3819 (description
3820 "SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that
3821gives application developers the full power and flexibility of SQL. It
3822provides a full suite of well known enterprise-level persistence patterns,
3823designed for efficient and high-performing database access, adapted into a
3824simple and Pythonic domain language.")
3f641af0 3825 (license license:x11)))
94914805
EB
3826
3827(define-public python2-sqlalchemy
3828 (package-with-python2 python-sqlalchemy))
c937562e 3829
de2966cf
EF
3830(define-public python-sqlalchemy-utils
3831 (package
3832 (name "python-sqlalchemy-utils")
3833 (version "0.32.9")
3834 (source
3835 (origin
3836 (method url-fetch)
3837 (uri (pypi-uri "SQLAlchemy-Utils" version))
3838 (sha256
3839 (base32
3840 "1zbmmh7n8m01ikizn2mj1mfwch26nsr1awv9mvskqry7av0mpy98"))))
3841 (build-system python-build-system)
3842 (inputs
3843 `(("python-six" ,python-six)
3844 ("python-sqlalchemy" ,python-sqlalchemy)))
3845 (home-page "https://github.com/kvesteri/sqlalchemy-utils")
3846 (synopsis "Various utility functions for SQLAlchemy")
3847 (description
3848 "SQLAlchemy-utils provides various utility functions and custom data types
3849for SQLAlchemy. SQLAlchemy is an SQL database abstraction library for Python.")
3850 (properties `((python2-variant . ,(delay python2-sqlalchemy-utils))))
3851 (license license:bsd-3)))
3852
3853(define-public python2-sqlalchemy-utils
3854 (let ((base (package-with-python2
3855 (strip-python2-variant python-sqlalchemy-utils))))
3856 (package (inherit base)
3857 (native-inputs
3858 `(("python2-setuptools" ,python2-setuptools)
3859 ,@(package-native-inputs base))))))
3860
af5a4602
CAW
3861(define-public python-alembic
3862 (package
3863 (name "python-alembic")
bb484529 3864 (version "0.8.7")
af5a4602
CAW
3865 (source
3866 (origin
3867 (method url-fetch)
3868 (uri (pypi-uri "alembic" version))
3869 (sha256
3870 (base32
bb484529 3871 "0ias6fdzwr2s220fnjspkdgm9510bd0cnap0hx5y4zy4srba9f3z"))))
af5a4602
CAW
3872 (build-system python-build-system)
3873 (native-inputs
3874 `(("python-mock" ,python-mock)
3875 ("python-pytest-cov" ,python-pytest-cov)))
3876 (propagated-inputs
3877 `(("python-sqlalchemy" ,python-sqlalchemy)
3878 ("python-mako" ,python-mako)
3879 ("python-editor" ,python-editor)))
3880 (home-page "http://bitbucket.org/zzzeek/alembic")
3881 (synopsis
3882 "Database migration tool for SQLAlchemy")
3883 (description
3884 "Alembic is a lightweight database migration tool for usage with the
3885SQLAlchemy Database Toolkit for Python.")
3886 (license license:expat)
3887 (properties `((python2-variant . ,(delay python2-alembic))))))
3888
3889(define-public python2-alembic
3890 (let ((alembic (package-with-python2
3891 (strip-python2-variant python-alembic))))
3892 (package
3893 (inherit alembic)
3894 (native-inputs `(("python2-setuptools" ,python2-setuptools)
3895 ,@(package-native-inputs alembic))))))
3896
1671c07c
EB
3897(define-public python-distutils-extra
3898 (package
3899 (name "python-distutils-extra")
3900 (version "2.38")
3901 (source
3902 (origin
3903 (method url-fetch)
3904 (uri (string-append "https://launchpad.net/python-distutils-extra/trunk/"
3905 version "/+download/python-distutils-extra-"
3906 version ".tar.gz"))
3907 (sha256
3908 (base32
3909 "0lx15kcbby9zisx33p2h5hgakgwh2bvh0ibag8z0px4j6ifhs41x"))))
3910 (build-system python-build-system)
3911 (native-inputs
3912 `(("python-setuptools" ,python-setuptools)))
3913 (home-page "https://launchpad.net/python-distutils-extra/")
3914 (synopsis "Enhancements to Python's distutils")
3915 (description
3916 "The python-distutils-extra module enables you to easily integrate
3917gettext support, themed icons, and scrollkeeper-based documentation into
3918Python's distutils.")
3f641af0 3919 (license license:gpl2)))
1671c07c
EB
3920
3921(define-public python2-distutils-extra
3922 (package-with-python2 python-distutils-extra))
ea5456c8
EB
3923
3924(define-public python2-elib.intl
3925 (package
3926 (name "python2-elib.intl")
3927 (version "0.0.3")
3928 (source
3929 (origin
3930 ;; This project doesn't tag releases or publish tarballs, so we take
3931 ;; source from a (semi-arbitrary, i.e. latest as of now) git commit.
3932 (method git-fetch)
3933 (uri (git-reference
3934 (url "https://github.com/dieterv/elib.intl.git")
3935 (commit "d09997cfef")))
3936 (sha256
3937 (base32
3938 "0y7vzff9xgbnaay7m0va1arl6g68ncwrvbgwl7jqlclsahzzb09d"))))
3939 (build-system python-build-system)
3940 (native-inputs
3941 `(("python2-setuptools" ,python2-setuptools)))
3942 (arguments
3943 ;; incompatible with Python 3 (exception syntax)
3944 `(#:python ,python-2
3945 #:tests? #f
3946 ;; With standard flags, the install phase attempts to create a zip'd
3947 ;; egg file, and fails with an error: 'ZIP does not support timestamps
3948 ;; before 1980'
3949 #:configure-flags '("--single-version-externally-managed"
3950 "--record=elib.txt")))
3951 (home-page "https://github.com/dieterv/elib.intl")
3952 (synopsis "Enhanced internationalization for Python")
3953 (description
3954 "The elib.intl module provides enhanced internationalization (I18N)
3955services for your Python modules and applications.")
3f641af0 3956 (license license:lgpl3+)))
ea5456c8 3957
c937562e
EB
3958(define-public python-pillow
3959 (package
3960 (name "python-pillow")
debf4179 3961 (version "3.3.1")
c937562e
EB
3962 (source
3963 (origin
3964 (method url-fetch)
f1d9231d 3965 (uri (pypi-uri "Pillow" version))
c937562e
EB
3966 (sha256
3967 (base32
debf4179 3968 "1w9x3dfrg8b5lqhpjl0fczfyf9842wbqwgxbjjq4vfpxv5jwm49l"))))
c937562e
EB
3969 (build-system python-build-system)
3970 (native-inputs
3971 `(("python-setuptools" ,python-setuptools)
3972 ("python-nose" ,python-nose)))
3973 (inputs
5ff408d9
SB
3974 `(("freetype" ,freetype)
3975 ("lcms" ,lcms)
c937562e
EB
3976 ("zlib" ,zlib)
3977 ("libjpeg" ,libjpeg)
3978 ("openjpeg" ,openjpeg)
5ff408d9
SB
3979 ("libtiff" ,libtiff)
3980 ("libwebp" ,libwebp)))
c937562e
EB
3981 (propagated-inputs
3982 `(;; Used at runtime for pkg_resources
3983 ("python-setuptools" ,python-setuptools)))
3984 (arguments
e5358a6b
LC
3985 `(#:phases (modify-phases %standard-phases
3986 (add-before
3987 'install 'disable-egg-compression
3988 (lambda _
3989 ;; Leave the .egg uncompressed since compressing it would
3990 ;; prevent the GC from identifying run-time dependencies.
3991 ;; See <http://bugs.gnu.org/20765>.
3992 (let ((port (open-file "setup.cfg" "a")))
3993 (display "\n[easy_install]\nzip_ok = 0\n"
3994 port)
3995 (close-port port)
3996 #t)))
3997 (add-after
3998 'install 'check-installed
3999 (lambda _
4000 (begin
4001 (setenv "HOME" (getcwd))
4002 (and (zero? (system* "python" "selftest.py"
4003 "--installed"))
4004 (zero? (system* "python" "test-installed.py"))))))
4005 (delete 'check))))
c937562e
EB
4006 (home-page "https://pypi.python.org/pypi/Pillow")
4007 (synopsis "Fork of the Python Imaging Library")
4008 (description
4009 "The Python Imaging Library adds image processing capabilities to your
4010Python interpreter. This library provides extensive file format support, an
4011efficient internal representation, and fairly powerful image processing
4012capabilities. The core image library is designed for fast access to data
4013stored in a few basic pixel formats. It should provide a solid foundation for
4014a general image processing tool.")
3f641af0 4015 (license (license:x11-style
c937562e
EB
4016 "http://www.pythonware.com/products/pil/license.htm"
4017 "The PIL Software License"))))
4018
4019(define-public python2-pillow
4020 (package-with-python2 python-pillow))
bb986599 4021
a415f036
FB
4022(define-public python-pycparser
4023 (package
4024 (name "python-pycparser")
38eb6919 4025 (version "2.14")
a415f036
FB
4026 (source
4027 (origin
4028 (method url-fetch)
38eb6919 4029 (uri (pypi-uri "pycparser" version))
a415f036
FB
4030 (sha256
4031 (base32
38eb6919 4032 "0wvzyb6rxsfj3xcnpa4ynbh9qc7rrbk2277d5wqpphmx9akv8nbr"))))
a415f036
FB
4033 (outputs '("out" "doc"))
4034 (build-system python-build-system)
4035 (native-inputs
4036 `(("pkg-config" ,pkg-config)
4037 ("python-setuptools" ,python-setuptools)))
4038 (arguments
89b5c60e 4039 `(#:phases
a415f036
FB
4040 (alist-replace
4041 'check
4042 (lambda _
4043 (with-directory-excursion "tests"
4044 (zero? (system* "python" "all_tests.py"))))
4045 (alist-cons-after
4046 'install 'install-doc
4047 (lambda* (#:key outputs #:allow-other-keys)
4048 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
4049 (doc (string-append data "/doc/" ,name "-" ,version))
4050 (examples (string-append doc "/examples")))
4051 (mkdir-p examples)
4052 (for-each (lambda (file)
4053 (copy-file (string-append "." file)
4054 (string-append doc file)))
4055 '("/README.rst" "/CHANGES" "/LICENSE"))
4056 (copy-recursively "examples" examples)))
4057 %standard-phases))))
4058 (home-page "https://github.com/eliben/pycparser")
4059 (synopsis "C parser in Python")
4060 (description
4061 "Pycparser is a complete parser of the C language, written in pure Python
4062using the PLY parsing library. It parses C code into an AST and can serve as
4063a front-end for C compilers or analysis tools.")
3f641af0 4064 (license license:bsd-3)))
a415f036
FB
4065
4066(define-public python2-pycparser
4067 (package-with-python2 python-pycparser))
57c3f716
FB
4068
4069(define-public python-cffi
4070 (package
4071 (name "python-cffi")
2d3a437c 4072 (version "1.4.2")
57c3f716
FB
4073 (source
4074 (origin
4075 (method url-fetch)
2d3a437c 4076 (uri (pypi-uri "cffi" version))
89b5c60e 4077 (sha256
2d3a437c 4078 (base32 "161rj52rzi3880lij17d6i9kvgkiwjilrqjs8405k8sf6ryif7cg"))))
57c3f716
FB
4079 (build-system python-build-system)
4080 (outputs '("out" "doc"))
4081 (inputs
4082 `(("libffi" ,libffi)))
4083 (propagated-inputs ; required at run-time
4084 `(("python-pycparser" ,python-pycparser)))
4085 (native-inputs
4086 `(("pkg-config" ,pkg-config)
4087 ("python-sphinx" ,python-sphinx)
4179f952 4088 ("python-pytest" ,python-pytest)
57c3f716
FB
4089 ("python-setuptools" ,python-setuptools)))
4090 (arguments
4179f952 4091 `(#:phases
57c3f716
FB
4092 (alist-cons-after
4093 'install 'install-doc
4094 (lambda* (#:key outputs #:allow-other-keys)
4095 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
4096 (doc (string-append data "/doc/" ,name "-" ,version))
4097 (html (string-append doc "/html")))
4098 (with-directory-excursion "doc"
4099 (system* "make" "html")
4100 (mkdir-p html)
4101 (copy-recursively "build/html" html))
4102 (copy-file "LICENSE" (string-append doc "/LICENSE"))))
4103 %standard-phases)))
4104 (home-page "http://cffi.readthedocs.org")
4105 (synopsis "Foreign function interface for Python")
4106 (description
4107 "Foreign Function Interface for Python calling C code.")
bd3fa666 4108 (license license:expat)))
57c3f716
FB
4109
4110(define-public python2-cffi
4111 (package-with-python2 python-cffi))
6fa14469
FB
4112
4113(define-public python-xcffib
4114 (package
4115 (name "python-xcffib")
4116 (version "0.1.9")
4117 (source
4118 (origin
4119 (method url-fetch)
4120 (uri (string-append "https://pypi.python.org/packages/source/x/"
4121 "xcffib/xcffib-" version ".tar.gz"))
4122 (sha256
4123 (base32
4124 "0655hzxv57h1a9ja9kwp0ichbkhf3djw32k33d66xp0q37dq2y81"))))
4125 (build-system python-build-system)
4126 (inputs
4127 `(("libxcb" ,libxcb)
4128 ("python-six" ,python-six)))
4129 (native-inputs
4130 `(("python-setuptools" ,python-setuptools)))
4131 (propagated-inputs
4132 `(("python-cffi" ,python-cffi))) ; used at run time
4133 (arguments
89b5c60e 4134 `(#:phases
6fa14469
FB
4135 (alist-cons-after
4136 'install 'install-doc
4137 (lambda* (#:key outputs #:allow-other-keys)
4138 (let ((doc (string-append (assoc-ref outputs "out") "/share"
4139 "/doc/" ,name "-" ,version)))
4140 (mkdir-p doc)
4141 (copy-file "README.md"
4142 (string-append doc "/README.md"))))
4143 %standard-phases)))
4144 (home-page "https://github.com/tych0/xcffib")
4145 (synopsis "XCB Python bindings")
4146 (description
4147 "Xcffib is a replacement for xpyb, an XCB Python bindings. It adds
4148support for Python 3 and PyPy. It is based on cffi.")
bd3fa666 4149 (license license:expat)))
6fa14469
FB
4150
4151(define-public python2-xcffib
4152 (package-with-python2 python-xcffib))
4153
9e099723
FB
4154(define-public python-cairocffi
4155 (package
4156 (name "python-cairocffi")
4157 (version "0.6")
4158 (source
4159 (origin
4160 (method url-fetch)
4161 ;; The archive on pypi is missing the 'utils' directory!
4162 (uri (string-append "https://github.com/SimonSapin/cairocffi/archive/v"
4163 version ".tar.gz"))
f586c877 4164 (file-name (string-append name "-" version ".tar.gz"))
9e099723
FB
4165 (sha256
4166 (base32
4167 "03w5p62sp3nqiccx864sbq0jvh7946277jqx3rcc3dch5xwfvv51"))))
4168 (build-system python-build-system)
4169 (outputs '("out" "doc"))
4170 (inputs
4171 `(("gdk-pixbuf" ,gdk-pixbuf)
4172 ("cairo" ,cairo)))
4173 (native-inputs
4174 `(("pkg-config" ,pkg-config)
4175 ("python-sphinx" ,python-sphinx)
4176 ("python-docutils" ,python-docutils)
4177 ("python-setuptools" ,python-setuptools)))
4178 (propagated-inputs
4179 `(("python-xcffib" ,python-xcffib))) ; used at run time
4180 (arguments
89b5c60e 4181 `(#:phases
9e099723
FB
4182 (alist-cons-after
4183 'install 'install-doc
4184 (lambda* (#:key inputs outputs #:allow-other-keys)
4185 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
4186 (doc (string-append data "/doc/" ,name "-" ,version))
4187 (html (string-append doc "/html")))
89b5c60e 4188 (setenv "LD_LIBRARY_PATH"
9e099723
FB
4189 (string-append (assoc-ref inputs "cairo") "/lib" ":"
4190 (assoc-ref inputs "gdk-pixbuf") "/lib"))
4191 (setenv "LANG" "en_US.UTF-8")
4192 (mkdir-p html)
4193 (for-each (lambda (file)
4194 (copy-file (string-append "." file)
4195 (string-append doc file)))
4196 '("/README.rst" "/CHANGES" "/LICENSE"))
4197 (system* "python" "setup.py" "build_sphinx")
4198 (copy-recursively "docs/_build/html" html)))
4199 %standard-phases)))
4200 (home-page "https://github.com/SimonSapin/cairocffi")
4201 (synopsis "Python bindings and object-oriented API for Cairo")
4202 (description
4203 "Cairocffi is a CFFI-based drop-in replacement for Pycairo, a set of
4204Python bindings and object-oriented API for cairo. Cairo is a 2D vector
4205graphics library with support for multiple backends including image buffers,
4206PNG, PostScript, PDF, and SVG file output.")
3f641af0 4207 (license license:bsd-3)))
9e099723
FB
4208
4209(define-public python2-cairocffi
4210 (package-with-python2 python-cairocffi))
4211
3cff95cb
RW
4212(define-public python-decorator
4213 (package
4214 (name "python-decorator")
eb6e2e81 4215 (version "4.0.9")
3cff95cb
RW
4216 (source
4217 (origin
4218 (method url-fetch)
e21338be 4219 (uri (pypi-uri "decorator" version))
3cff95cb 4220 (sha256
eb6e2e81 4221 (base32 "1a5vwhflfd9sh3rfb40xlyipldgdzfff6brman57hqv3661jw0lh"))))
3cff95cb
RW
4222 (build-system python-build-system)
4223 (arguments '(#:tests? #f)) ; no test target
4224 (native-inputs
4225 `(("python-setuptools" ,python-setuptools)))
eb6e2e81 4226 (home-page "https://pypi.python.org/pypi/decorator/")
3cff95cb
RW
4227 (synopsis "Python module to simplify usage of decorators")
4228 (description
4229 "The aim of the decorator module is to simplify the usage of decorators
4230for the average programmer, and to popularize decorators usage giving examples
4231of useful decorators, such as memoize, tracing, redirecting_stdout, locked,
4232etc. The core of this module is a decorator factory.")
4233 (license license:expat)))
4234
4235(define-public python2-decorator
4236 (package-with-python2 python-decorator))
4237
2c0499ad
RW
4238(define-public python-drmaa
4239 (package
4240 (name "python-drmaa")
4241 (version "0.7.6")
4242 (source
4243 (origin
4244 (method url-fetch)
4245 (uri (string-append
4246 "https://pypi.python.org/packages/source/d/drmaa/drmaa-"
4247 version ".tar.gz"))
4248 (sha256
4249 (base32 "0bzl9f9g34dlhwf09i3fdv7dqqzf2iq0w7d6c2bafx1nlap8qfbh"))))
4250 (build-system python-build-system)
4251 ;; The test suite requires libdrmaa which is provided by the cluster
4252 ;; environment. At runtime the environment variable DRMAA_LIBRARY_PATH
4253 ;; should be set to the path of the libdrmaa library.
4254 (arguments '(#:tests? #f))
4255 (native-inputs
4256 `(("python-nose" ,python-nose)
4257 ("python-setuptools" ,python-setuptools)))
4258 (home-page "https://pypi.python.org/pypi/drmaa")
4259 (synopsis "Python bindings for the DRMAA library")
4260 (description
4261 "A Python package for Distributed Resource Management (DRM) job
4262submission and control. This package is an implementation of the DRMAA 1.0
4263Python language binding specification.")
3f641af0 4264 (license license:bsd-3)))
2c0499ad
RW
4265
4266(define-public python2-drmaa
4267 (package-with-python2 python-drmaa))
4268
d05c6da0
RW
4269(define-public python-gridmap
4270 (package
4271 (name "python-gridmap")
4272 (version "0.13.0")
4273 (source
4274 (origin
4275 (method url-fetch)
4276 (uri (string-append
4277 "https://github.com/pygridtools/gridmap/archive/v"
4278 version ".tar.gz"))
4279 (file-name (string-append name "-" version ".tar.gz"))
4280 (sha256
4281 (base32 "1gzjg2k6f14i1msm2b0ax8d9ds1hvk6qd5nlaivg8m4cxqp4cp1x"))))
4282 (build-system python-build-system)
4283 (inputs
4284 `(("python-psutil" ,python-psutil)
4285 ("python-drmaa" ,python-drmaa)
4286 ("python-pyzmq" ,python-pyzmq)))
4287 (native-inputs
4288 `(("python-setuptools" ,python-setuptools)))
4289 (home-page "https://github.com/pygridtools/gridmap")
4290 (synopsis "Create jobs on a cluster directly from Python")
4291 (description
4292 "Gridmap is a Python package to allow you to easily create jobs on the
4293cluster directly from Python. You can directly map Python functions onto the
4294cluster without needing to write any wrapper code yourself.")
3f641af0 4295 (license license:gpl3+)))
d05c6da0
RW
4296
4297(define-public python2-gridmap
4298 (package-with-python2 python-gridmap))
4299
cb6d5c54
RW
4300(define-public python-pexpect
4301 (package
4302 (name "python-pexpect")
4303 (version "3.3")
4304 (source
4305 (origin
4306 (method url-fetch)
4307 (uri (string-append "https://pypi.python.org/packages/source/p/"
4308 "pexpect/pexpect-" version ".tar.gz"))
4309 (sha256
4310 (base32 "1fp5gm976z7ghm8jw57463rj19cv06c8zw842prgyg788f6n3snz"))))
4311 (build-system python-build-system)
4312 (arguments
4313 `(#:phases
4314 (modify-phases %standard-phases
4315 (replace 'check (lambda _ (zero? (system* "nosetests")))))))
4316 (native-inputs
4317 `(("python-nose" ,python-nose)))
4318 (home-page "http://pexpect.readthedocs.org/")
4319 (synopsis "Controlling interactive console applications")
4320 (description
4321 "Pexpect is a pure Python module for spawning child applications;
4322controlling them; and responding to expected patterns in their output.
4323Pexpect works like Don Libes’ Expect. Pexpect allows your script to spawn a
4324child application and control it as if a human were typing commands.")
3f641af0 4325 (license license:isc)))
cb6d5c54
RW
4326
4327(define-public python2-pexpect
4328 (package-with-python2 python-pexpect))
4329
229ad120
RW
4330(define-public python-setuptools-scm
4331 (package
4332 (name "python-setuptools-scm")
42d6d0d0 4333 (version "1.11.1")
229ad120
RW
4334 (source (origin
4335 (method url-fetch)
383af6b0 4336 (uri (pypi-uri "setuptools_scm" version))
229ad120
RW
4337 (sha256
4338 (base32
42d6d0d0 4339 "1gqr73i150yzj3mz32854vj93x07yr52kn8fdckwa41ll8wgficc"))))
229ad120 4340 (build-system python-build-system)
383af6b0 4341 (native-inputs `(("python-setuptools" ,python-setuptools)))
229ad120
RW
4342 (home-page "https://github.com/pypa/setuptools_scm/")
4343 (synopsis "Manage Python package versions in SCM metadata")
4344 (description
383af6b0 4345 "Setuptools_scm handles managing your Python package versions in
229ad120
RW
4346@dfn{software configuration management} (SCM) metadata instead of declaring
4347them as the version argument or in a SCM managed file.")
4348 (license license:expat)))
4349
4350(define-public python2-setuptools-scm
4351 (package-with-python2 python-setuptools-scm))
4352
b74270ee
RW
4353(define-public python-pathpy
4354 (package
4355 (name "python-pathpy")
4356 (version "8.1.1")
4357 (source
4358 (origin
4359 (method url-fetch)
4360 (uri (string-append "https://pypi.python.org/packages/source/p/"
4361 "path.py/path.py-" version ".tar.gz"))
4362 (sha256
4363 (base32 "1p8s1l2vfkqhqxdhqlj0g1jjw4f1as2frr35sjcpjjpd5a89y41f"))))
4364 (build-system python-build-system)
4365 (propagated-inputs
4366 `(("python-appdirs" ,python-appdirs)))
4367 (native-inputs
553b709b
EF
4368 `(("python-setuptools" ,python-setuptools)
4369 ("python-setuptools-scm" ,python-setuptools-scm)
b74270ee
RW
4370 ("python-pytest" ,python-pytest)
4371 ("python-pytest-runner" ,python-pytest-runner)))
4372 (home-page "http://github.com/jaraco/path.py")
4373 (synopsis "Python module wrapper for built-in os.path")
4374 (description
4375 "@code{path.py} implements path objects as first-class entities, allowing
4376common operations on files to be invoked on those path objects directly.")
4377 (license license:expat)))
4378
4379(define-public python2-pathpy
4380 (package-with-python2 python-pathpy))
4381
0d34e01b
RW
4382(define-public python-pickleshare
4383 (package
4384 (name "python-pickleshare")
4385 (version "0.5")
4386 (source
4387 (origin
4388 (method url-fetch)
4389 (uri (string-append "https://pypi.python.org/packages/source/p/"
4390 "pickleshare/pickleshare-" version ".tar.gz"))
4391 (sha256
4392 (base32 "11ljr90j3p6qswdrbl7p4cjb2i93f6vn0vx9anzpshsx0d2mggn0"))))
4393 (build-system python-build-system)
4394 (propagated-inputs
4395 `(("python-pathpy" ,python-pathpy)))
b72a4410
EF
4396 (native-inputs
4397 `(("python-setuptools" ,python-setuptools)))
0d34e01b
RW
4398 (home-page "https://github.com/vivainio/pickleshare")
4399 (synopsis "Tiny key value database with concurrency support")
4400 (description
4401 "PickleShare is a small ‘shelve’-like datastore with concurrency support.
4402Like shelve, a PickleShareDB object acts like a normal dictionary. Unlike
4403shelve, many processes can access the database simultaneously. Changing a
4404value in database is immediately visible to other processes accessing the same
4405database. Concurrency is possible because the values are stored in separate
4406files. Hence the “database” is a directory where all files are governed by
4407PickleShare.")
4408 (license license:expat)))
4409
4410(define-public python2-pickleshare
4411 (package-with-python2 python-pickleshare))
4412
cd6e5189
RW
4413(define-public python-simplegeneric
4414 (package
4415 (name "python-simplegeneric")
4416 (version "0.8.1")
4417 (source
4418 (origin
4419 (method url-fetch)
4420 (uri (string-append "https://pypi.python.org/packages/source/s/"
4421 "simplegeneric/simplegeneric-" version ".zip"))
4422 (sha256
4423 (base32 "0wwi1c6md4vkbcsfsf8dklf3vr4mcdj4mpxkanwgb6jb1432x5yw"))))
4424 (build-system python-build-system)
4425 (native-inputs
69b96e5e
RW
4426 `(("python-setuptools" ,python-setuptools)
4427 ("unzip" ,unzip)))
cd6e5189
RW
4428 (home-page "http://cheeseshop.python.org/pypi/simplegeneric")
4429 (synopsis "Python module for simple generic functions")
4430 (description
4431 "The simplegeneric module lets you define simple single-dispatch generic
4432functions, akin to Python’s built-in generic functions like @code{len()},
4433@code{iter()} and so on. However, instead of using specially-named methods,
4434these generic functions use simple lookup tables, akin to those used by
4435e.g. @code{pickle.dump()} and other generic functions found in the Python
4436standard library.")
3f641af0 4437 (license license:zpl2.1)))
cd6e5189
RW
4438
4439(define-public python2-simplegeneric
4440 (package-with-python2 python-simplegeneric))
4441
ddc7d8ed
RW
4442(define-public python-ipython-genutils
4443 (package
4444 (name "python-ipython-genutils")
4445 (version "0.1.0")
4446 (source
4447 (origin
4448 (method url-fetch)
4449 (uri (string-append "https://pypi.python.org/packages/source/i/"
4450 "ipython_genutils/ipython_genutils-"
4451 version ".tar.gz"))
4452 (sha256
4453 (base32 "19l2pp1c64ansr89l3cqh19jdi2ixhssdzx0vz4n6r52a6i281is"))))
4454 (build-system python-build-system)
4455 (arguments `(#:tests? #f)) ; no tests
4456 (home-page "http://ipython.org")
4457 (synopsis "Vestigial utilities from IPython")
4458 (description
4459 "This package provides retired utilities from IPython.")
3f641af0 4460 (license license:bsd-3)))
ddc7d8ed
RW
4461
4462(define-public python2-ipython-genutils
4463 (package-with-python2 python-ipython-genutils))
4464
2b10eb48
RW
4465(define-public python-traitlets
4466 (package
4467 (name "python-traitlets")
cc0c4fde 4468 (version "4.1.0")
2b10eb48
RW
4469 (source
4470 (origin
4471 (method url-fetch)
cc0c4fde 4472 (uri (pypi-uri "traitlets" version))
2b10eb48
RW
4473 (sha256
4474 (base32
cc0c4fde 4475 "0nxgj8jxlm1kqf8cx2x7vjid05zdgbxpqhjbdl46r8njlpgkh3j4"))))
2b10eb48
RW
4476 (build-system python-build-system)
4477 (arguments
4478 `(#:phases
4479 (modify-phases %standard-phases
4480 (replace 'check (lambda _ (zero? (system* "nosetests")))))))
4481 (propagated-inputs
4482 `(("python-ipython-genutils" ,python-ipython-genutils)
4483 ("python-decorator" ,python-decorator)))
4484 (native-inputs
cc0c4fde
EF
4485 `(("python-mock" ,python-mock)
4486 ("python-nose" ,python-nose)))
2b10eb48
RW
4487 (home-page "http://ipython.org")
4488 (synopsis "Configuration system for Python applications")
4489 (description
4490 "Traitlets is a framework that lets Python classes have attributes with
4491type checking, dynamically calculated default values, and ‘on change’
4492callbacks. The package also includes a mechanism to use traitlets for
4493configuration, loading values from files or from command line arguments. This
4494is a distinct layer on top of traitlets, so you can use traitlets in your code
4495without using the configuration machinery.")
3f641af0 4496 (license license:bsd-3)))
2b10eb48
RW
4497
4498(define-public python2-traitlets
4499 (package-with-python2 python-traitlets))
4500
ae1ab9fe
FB
4501(define-public python-ipython
4502 (package
4503 (name "python-ipython")
3a0b1b9a 4504 (version "3.2.1")
ae1ab9fe
FB
4505 (source
4506 (origin
fceac880 4507 (method url-fetch)
fc1adab1 4508 (patches (search-patches "python-ipython-inputhook-ctype.patch"))
fceac880
FB
4509 (uri (string-append "https://pypi.python.org/packages/source/i/"
4510 "ipython/ipython-" version ".tar.gz"))
4511 (sha256
4512 (base32 "0xwin0sa9n0cabx4cq1ibf5ldsiw5dyimibla82kicz5gbpas4y9"))))
ae1ab9fe
FB
4513 (build-system python-build-system)
4514 (outputs '("out" "doc"))
3a0b1b9a
FB
4515 (propagated-inputs
4516 `(("python-pyzmq" ,python-pyzmq)
4517 ("python-terminado" ,python-terminado)))
ae1ab9fe
FB
4518 (inputs
4519 `(("readline" ,readline)
3a0b1b9a 4520 ("which" ,which)
ae1ab9fe 4521 ("python-matplotlib" ,python-matplotlib)
5d26e542 4522 ("python-numpy" ,python-numpy)
ae1ab9fe 4523 ("python-numpydoc" ,python-numpydoc)
3a0b1b9a
FB
4524 ("python-jinja2" ,python-jinja2)
4525 ("python-mistune" ,python-mistune)
4526 ("python-jsonschema" ,python-jsonschema)
4527 ("python-pygments" ,python-pygments)
4528 ("python-requests" ,python-requests) ;; for tests
ae1ab9fe
FB
4529 ("python-nose" ,python-nose)))
4530 (native-inputs
4531 `(("pkg-config" ,pkg-config)
4532 ("python-sphinx" ,python-sphinx)
4533 ("texlive" ,texlive)
4534 ("texinfo" ,texinfo)
4535 ("python-setuptools" ,python-setuptools)))
4536 (arguments
89b5c60e 4537 `(#:phases
3a0b1b9a
FB
4538 (modify-phases %standard-phases
4539 (add-after
4540 'install 'install-doc
4541 (lambda* (#:key inputs outputs #:allow-other-keys)
4542 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
4543 (doc (string-append data "/doc/" ,name "-" ,version))
4544 (html (string-append doc "/html"))
4545 (man1 (string-append data "/man/man1"))
4546 (info (string-append data "/info"))
4547 (examples (string-append doc "/examples")))
afd3d931 4548 (setenv "LANG" "en_US.utf8")
3a0b1b9a
FB
4549 (with-directory-excursion "docs"
4550 ;; FIXME: html and pdf fail to build
4551 ;; (system* "make" "html")
4552 ;; (system* "make" "pdf" "PAPER=a4")
4553 (system* "make" "info"))
4554 (copy-recursively "docs/man" man1)
4555 (copy-recursively "examples" examples)
4556 ;; (copy-recursively "docs/build/html" html)
4557 ;; (copy-file "docs/build/latex/ipython.pdf"
4558 ;; (string-append doc "/ipython.pdf"))
4559 (mkdir-p info)
4560 (copy-file "docs/build/texinfo/ipython.info"
4561 (string-append info "/ipython.info"))
4562 (copy-file "COPYING.rst" (string-append doc "/COPYING.rst")))))
4563 ;; Tests can only be run after the library has been installed and not
4564 ;; within the source directory.
4565 (delete 'check)
4566 (add-after
4567 'install 'check
4568 (lambda* (#:key outputs tests? #:allow-other-keys)
4569 (if tests?
4570 (with-directory-excursion "/tmp"
4571 (setenv "HOME" "/tmp/") ;; required by a test
4572 (zero? (system* (string-append (assoc-ref outputs "out")
4573 "/bin/iptest"))))
4574 #t)))
4575 (add-before
4576 'install 'fix-tests
4577 (lambda* (#:key inputs #:allow-other-keys)
4578 (substitute* "./IPython/utils/_process_posix.py"
4579 (("/usr/bin/env', 'which") (which "which")))
4580 (substitute* "./IPython/core/tests/test_inputtransformer.py"
4581 (("#!/usr/bin/env python")
4582 (string-append "#!" (which "python"))))
4583 ;; Disable 1 failing test
4584 (substitute* "./IPython/core/tests/test_magic.py"
4585 (("def test_dirops\\(\\):" all)
4586 (string-append "@dec.skipif(True)\n" all))))))))
ae1ab9fe
FB
4587 (home-page "http://ipython.org")
4588 (synopsis "IPython is a tool for interactive computing in Python")
4589 (description
4590 "IPython provides a rich architecture for interactive computing with:
4591Powerful interactive shells, a browser-based notebook, support for interactive
4592data visualization, embeddable interpreters and tools for parallel
4593computing.")
135ba811
EF
4594 (license license:bsd-3)
4595 (properties `((python2-variant . ,(delay python2-ipython))))))
ae1ab9fe
FB
4596
4597(define-public python2-ipython
135ba811 4598 (let ((ipython (package-with-python2 (strip-python2-variant python-ipython))))
3a0b1b9a
FB
4599 (package
4600 (inherit ipython)
4601 ;; FIXME: some tests are failing
4602 (arguments
4603 `(#:tests? #f ,@(package-arguments ipython)))
3a0b1b9a 4604 ;; FIXME: add pyreadline once available.
89b5c60e 4605 (inputs
135ba811
EF
4606 `(("python2-mock" ,python2-mock)
4607 ,@(package-inputs ipython))))))
03411993
AE
4608
4609(define-public python-isodate
4610 (package
4611 (name "python-isodate")
b6785c2e 4612 (version "0.5.4")
03411993
AE
4613 (source
4614 (origin
4615 (method url-fetch)
b6785c2e 4616 (uri (pypi-uri "isodate" version))
03411993
AE
4617 (sha256
4618 (base32
b6785c2e 4619 "0cafaiwixgpxwh9dsd28qb0dbzsj6xpxjdkyk30ns91ps10mq422"))))
03411993
AE
4620 (build-system python-build-system)
4621 (inputs
4622 `(("python-setuptools" ,python-setuptools)))
4623 (home-page
4624 "http://cheeseshop.python.org/pypi/isodate")
4625 (synopsis
4626 "Python date parser and formatter")
4627 (description
4628 "Python-isodate is a python module for parsing and formatting
4629ISO 8601 dates, time and duration.")
3f641af0 4630 (license license:bsd-3)))
03411993
AE
4631
4632(define-public python2-isodate
4633 (package-with-python2 python-isodate))
673ab897
AE
4634
4635(define-public python-html5lib
4636 (package
4637 (name "python-html5lib")
fee04c19 4638 (version "1.0b8")
673ab897
AE
4639 (source
4640 (origin
4641 (method url-fetch)
fee04c19 4642 (uri (pypi-uri "html5lib" version))
673ab897
AE
4643 (sha256
4644 (base32
fee04c19 4645 "1lknq5j3nh11xrl268ks76zaj0gyzh34v94n5vbf6dk8llzxdx0q"))))
673ab897 4646 (build-system python-build-system)
3dd75476
AE
4647 (propagated-inputs
4648 `(("python-six" ,python-six))) ; required to "import html5lib"
673ab897
AE
4649 (inputs
4650 `(("python-setuptools" ,python-setuptools)))
4651 (arguments
4652 `(#:test-target "check"))
4653 (home-page
4654 "https://github.com/html5lib/html5lib-python")
4655 (synopsis
4656 "Python HTML parser based on the WHATWG HTML specifcation")
4657 (description
4658 "Html5lib is an HTML parser based on the WHATWG HTML specifcation
4659and written in Python.")
bd3fa666 4660 (license license:expat)))
673ab897
AE
4661
4662(define-public python2-html5lib
4663 (package-with-python2 python-html5lib))
e99f4211
MW
4664
4665(define-public python-urwid
4666 (package
4667 (name "python-urwid")
51ff41f6 4668 (version "1.3.1")
e99f4211
MW
4669 (source
4670 (origin
4671 (method url-fetch)
b97c1bfd 4672 (uri (pypi-uri "urwid" version))
e99f4211
MW
4673 (sha256
4674 (base32
51ff41f6 4675 "18cnd1wdjcas08x5qwa5ayw6jsfcn33w4d9f7q3s29fy6qzc1kng"))))
e99f4211 4676 (build-system python-build-system)
b97c1bfd
LF
4677 (arguments
4678 `(#:phases
4679 (modify-phases %standard-phases
4680 ;; Disable failing test. Bug filed upstream:
4681 ;; https://github.com/wardi/urwid/issues/164
51ff41f6 4682 ;; TODO: check again for python-urwid > 1.3.1 or python > 3.4.3.
b97c1bfd
LF
4683 (add-after 'unpack 'disable-failing-test
4684 (lambda _
4685 (substitute* "urwid/tests/test_event_loops.py"
4686 (("test_remove_watch_file")
4687 "disable_remove_watch_file")))))))
e99f4211
MW
4688 (native-inputs `(("python-setuptools" ,python-setuptools)))
4689 (home-page "http://urwid.org")
4690 (synopsis "Console user interface library for Python")
4691 (description
4692 "Urwid is a curses-based UI/widget library for Python. It includes many
4693features useful for text console applications.")
3f641af0 4694 (license license:lgpl2.1+)))
e99f4211
MW
4695
4696(define-public python2-urwid
4697 (package-with-python2 python-urwid))
d95a56c6 4698
47d0b292
TS
4699(define-public python-urwidtrees
4700 (package
4701 (name "python-urwidtrees")
37ec4623 4702 (version "1.0.2")
47d0b292
TS
4703 (source
4704 (origin
4705 (method url-fetch)
37ec4623
TS
4706 ;; package author intends on distributing via github rather than pypi:
4707 ;; https://github.com/pazz/alot/issues/877#issuecomment-230173331
4708 (uri (string-append "https://github.com/pazz/urwidtrees/archive/"
4709 version ".tar.gz"))
4710 (file-name (string-append name "-" version ".tar.gz"))
47d0b292
TS
4711 (sha256
4712 (base32
37ec4623 4713 "0d30lyd3s2a97rhqfax5w9ssqds2z6aydqx3c6j2c2lk3cb4ngvh"))))
47d0b292
TS
4714 (build-system python-build-system)
4715 (arguments
4716 '(#:tests? #f)) ; no tests
4717 (inputs `(("python-urwid" ,python-urwid)))
4718 (home-page "https://github.com/pazz/urwidtrees")
4719 (synopsis "Tree widgets for urwid")
4720 (description "Urwidtrees is a Widget Container API for the @code{urwid}
4721toolkit. Use it to build trees of widgets.")
3f641af0 4722 (license license:gpl3+)))
47d0b292
TS
4723
4724(define-public python2-urwidtrees
4725 (package-with-python2 python-urwidtrees))
4726
d95a56c6
PAR
4727(define-public python-dbus
4728 (package
4729 (name "python-dbus")
4730 (version "1.2.0")
4731 (source
4732 (origin
4733 (method url-fetch)
4734 (uri (string-append
5cc3096c 4735 "https://dbus.freedesktop.org/releases/dbus-python/dbus-python-"
d95a56c6
PAR
4736 version ".tar.gz"))
4737 (sha256
4738 (base32 "1py62qir966lvdkngg0v8k1khsqxwk5m4s8nflpk1agk5f5nqb71"))))
4739 (build-system gnu-build-system)
6717c879
SB
4740 (arguments
4741 '(#:phases
4742 (modify-phases %standard-phases
4743 (add-before
4744 'check 'pre-check
4745 (lambda _
4746 ;; XXX: For the missing '/etc/machine-id'.
4747 (substitute* "test/run-test.sh"
4748 (("DBUS_FATAL_WARNINGS=1")
4749 "DBUS_FATAL_WARNINGS=0"))
4750 #t)))))
d95a56c6
PAR
4751 (native-inputs
4752 `(("pkg-config" ,pkg-config)))
4753 (inputs
4754 `(("python" ,python)
2e88d113 4755 ("dbus-glib" ,dbus-glib)))
d95a56c6
PAR
4756 (synopsis "Python bindings for D-bus")
4757 (description "python-dbus provides bindings for libdbus, the reference
4758implementation of D-Bus.")
4759 (home-page "http://www.freedesktop.org/wiki/Software/DBusBindings/")
bd3fa666 4760 (license license:expat)))
b52af02b
MW
4761
4762(define-public python2-dbus
4763 (package (inherit python-dbus)
4764 (name "python2-dbus")
4765 (inputs `(("python" ,python-2)
4766 ,@(alist-delete "python"
4767 (package-inputs python-dbus)
4768 equal?)))
4769 ;; FIXME: on Python 2, the test_utf8 fails with:
4770 ;; "ValueError: unichr() arg not in range(0x10000) (narrow Python build)"
4771 (arguments `(#:tests? #f))))
a6ac8332
AE
4772
4773(define-public python-apsw
4774 (package
4775 (name "python-apsw")
917708c2 4776 (version "3.9.2-r1")
a6ac8332
AE
4777 (source
4778 (origin
4779 (method url-fetch)
917708c2 4780 (uri (pypi-uri "apsw" version))
a6ac8332
AE
4781 (sha256
4782 (base32
917708c2 4783 "0w4jb0wpx785qw42r3h4fh7gl5w2968q48i7gygybsfxck8nzffs"))))
a6ac8332
AE
4784 (build-system python-build-system)
4785 (inputs
4786 `(("python-setuptools" ,python-setuptools)
4787 ("sqlite" ,sqlite)))
4788 (arguments
4789 `(#:phases
4790 ;; swap check and install phases
4791 (alist-cons-after
4792 'install 'check
4793 (assoc-ref %standard-phases 'check)
4794 (alist-delete
4795 'check
4796 %standard-phases))))
4797 (home-page "https://github.com/rogerbinns/apsw/")
4798 (synopsis "Another Python SQLite Wrapper")
4799 (description "APSW is a Python wrapper for the SQLite
4800embedded relational database engine. In contrast to other wrappers such as
4801pysqlite it focuses on being a minimal layer over SQLite attempting just to
4802translate the complete SQLite API into Python.")
abde5f37 4803 (license license:zlib)))
a6ac8332
AE
4804
4805(define-public python2-apsw
4806 (package-with-python2 python-apsw))
26b307e2
AE
4807
4808(define-public python-lxml
4809 (package
4810 (name "python-lxml")
d58a3203 4811 (version "3.6.0")
26b307e2
AE
4812 (source
4813 (origin
4814 (method url-fetch)
97bbc480 4815 (uri (pypi-uri "lxml" version))
26b307e2 4816 (sha256
d58a3203
EF
4817 (base32
4818 "1pvbmiy2m7jwv493kilbghhj2pkh8wy1na3ji350vhzhlwlclx4w"))))
26b307e2
AE
4819 (build-system python-build-system)
4820 (inputs
4821 `(("libxml2" ,libxml2)
4822 ("libxslt" ,libxslt)
4823 ("python-setuptools" ,python-setuptools)))
4824 (home-page "http://lxml.de/")
4825 (synopsis
4826 "Python XML processing library")
4827 (description
4828 "The lxml XML toolkit is a Pythonic binding for the C libraries
4829libxml2 and libxslt.")
3f641af0 4830 (license license:bsd-3))) ; and a few more, see LICENSES.txt
26b307e2
AE
4831
4832(define-public python2-lxml
4833 (package-with-python2 python-lxml))
4ed20663 4834
b32a1e47
CAW
4835;; beautifulsoup4 has a totally different namespace than 3.x,
4836;; and pypi seems to put it under its own name, so I guess we should too
4837(define-public python-beautifulsoup4
4838 (package
4839 (name "python-beautifulsoup4")
cfbb3b0d 4840 (version "4.5.0")
b32a1e47
CAW
4841 (source
4842 (origin
4843 (method url-fetch)
4844 (uri (pypi-uri "beautifulsoup4" version))
4845 (sha256
4846 (base32
cfbb3b0d 4847 "1rf94360s8pmn37vxqjl0g74krq2p6nj3wbn6pj94ik6ny44q24f"))))
b32a1e47
CAW
4848 (build-system python-build-system)
4849 (home-page
4850 "http://www.crummy.com/software/BeautifulSoup/bs4/")
4851 (synopsis
4852 "Python screen-scraping library")
4853 (description
4854 "Beautiful Soup is a Python library designed for rapidly setting up
4855screen-scraping projects. It offers Pythonic idioms for navigating,
4856searching, and modifying a parse tree, providing a toolkit for
4857dissecting a document and extracting what you need. It automatically
4858converts incoming documents to Unicode and outgoing documents to UTF-8.")
4859 (license license:expat)
4860 (properties `((python2-variant . ,(delay python2-beautifulsoup4))))))
4861
4862(define-public python2-beautifulsoup4
4863 (package
4864 (inherit (package-with-python2
4865 (strip-python2-variant python-beautifulsoup4)))
4866 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
4867
092e86f5
AE
4868(define-public python2-cssutils
4869 (package
4870 (name "python2-cssutils")
58d1d816 4871 (version "1.0.1")
092e86f5
AE
4872 (source
4873 (origin
4874 (method url-fetch)
58d1d816 4875 (uri (pypi-uri "cssutils" version))
092e86f5 4876 (sha256
58d1d816
EF
4877 (base32
4878 "0qwha9x1wml2qmipbcz03gndnlwhzrjdvw9i09si247a90l8p8fq"))))
092e86f5
AE
4879 (build-system python-build-system)
4880 (native-inputs
4881 `(("python2-mock" ,python2-mock) ; for the tests
4882 ("unzip" ,unzip))) ; for unpacking the source
4883 (inputs
4884 `(("python2-setuptools" ,python2-setuptools)))
4885 (arguments
4886 `(#:python ,python-2 ; Otherwise tests fail with a syntax error.
4887 #:tests? #f ; The tests apparently download an external URL.
da6dd842 4888 ))
092e86f5
AE
4889 (home-page "http://cthedot.de/cssutils/")
4890 (synopsis
4891 "CSS Cascading Style Sheets library for Python")
4892 (description
4893 "Cssutils is a Python package for parsing and building CSS
4894Cascading Style Sheets. Currently it provides a DOM only and no rendering
4895options.")
3f641af0 4896 (license license:lgpl3+)))
880ff77c
AE
4897
4898(define-public python-cssselect
4899 (package
4900 (name "python-cssselect")
d5ccd9ab 4901 (version "0.9.2")
880ff77c
AE
4902 (source
4903 (origin
4904 (method url-fetch)
d5ccd9ab 4905 (uri (pypi-uri "cssselect" version))
880ff77c 4906 (sha256
d5ccd9ab
EF
4907 (base32
4908 "1xg6gbva1yswghiycmgincv6ab4bn7hpm720ndbj40h8xycmnfvi"))))
880ff77c
AE
4909 (build-system python-build-system)
4910 (inputs
4911 `(("python-setuptools" ,python-setuptools)))
4912 (arguments
4913 ;; tests fail with message
4914 ;; AttributeError: 'module' object has no attribute 'tests'
4915 `(#:tests? #f))
4916 (home-page
4917 "https://pythonhosted.org/cssselect/")
4918 (synopsis
4919 "CSS3 selector parser and translator to XPath 1.0")
4920 (description
4921 "Cssselect ia a Python module that parses CSS3 Selectors and translates
4922them to XPath 1.0 expressions. Such expressions can be used in lxml or
4923another XPath engine to find the matching elements in an XML or HTML document.")
3f641af0 4924 (license license:bsd-3)))
880ff77c
AE
4925
4926(define-public python2-cssselect
4927 (package-with-python2 python-cssselect))
60357f99
AE
4928
4929(define-public python-netifaces
4930 (package
4931 (name "python-netifaces")
4932 (version "0.10.4")
4933 (source
4934 (origin
4935 (method url-fetch)
4936 (uri (string-append
4937 "https://pypi.python.org/packages/source/n/netifaces/netifaces-"
4938 version
4939 ".tar.gz"))
4940 (sha256
4941 (base32
4942 "1plw237a4zib4z8s62g0mrs8gm3kjfrp5sxh6bbk9nl3rdls2mln"))))
4943 (build-system python-build-system)
4944 (inputs
4945 `(("python-setuptools" ,python-setuptools)))
4946 (home-page
4947 "https://bitbucket.org/al45tair/netifaces")
4948 (synopsis
4949 "Python module for portable network interface information")
4950 (description
4951 "Netifaces is a Python module providing information on network
4952interfaces in an easy and portable manner.")
4953 (license license:expat)))
4954
4955(define-public python2-netifaces
4956 (package-with-python2 python-netifaces))
92cb152b 4957
32f77c04
RW
4958(define-public python-networkx
4959 (package
4960 (name "python-networkx")
a4d9609c 4961 (version "1.11")
32f77c04
RW
4962 (source
4963 (origin
4964 (method url-fetch)
a4d9609c 4965 (uri (pypi-uri "networkx" version))
32f77c04 4966 (sha256
a4d9609c 4967 (base32 "1f74s56xb4ggixiq0vxyfxsfk8p20c7a099lpcf60izv1php03hd"))))
32f77c04
RW
4968 (build-system python-build-system)
4969 ;; python-decorator is needed at runtime
4970 (propagated-inputs
4971 `(("python-decorator" ,python-decorator)))
4972 (native-inputs
4973 `(("python-setuptools" ,python-setuptools)
4974 ("python-nose" ,python-nose)))
4975 (home-page "http://networkx.github.io/")
4976 (synopsis "Python module for creating and manipulating graphs and networks")
4977 (description
4978 "NetworkX is a Python package for the creation, manipulation, and study
4979of the structure, dynamics, and functions of complex networks.")
3f641af0 4980 (license license:bsd-3)))
32f77c04
RW
4981
4982(define-public python2-networkx
4983 (package-with-python2 python-networkx))
4984
92cb152b
RW
4985(define-public snakemake
4986 (package
4987 (name "snakemake")
4988 (version "3.2.1")
4989 (source
4990 (origin
4991 (method url-fetch)
4992 (uri (string-append
4993 "https://pypi.python.org/packages/source/s/snakemake/snakemake-"
4994 version ".tar.gz"))
4995 (sha256
4996 (base32 "0fi4b63sj60hvi7rfydvmz2icl4wj74djw5sn2gl8hxd02qw4b91"))))
4997 (build-system python-build-system)
4998 (inputs `(("python-setuptools" ,python-setuptools)))
4999 (home-page "https://bitbucket.org/johanneskoester/snakemake")
5000 (synopsis "Python-based execution environment for make-like workflows")
5001 (description
5002 "Snakemake aims to reduce the complexity of creating workflows by
5003providing a clean and modern domain specific specification language (DSL) in
5004Python style, together with a fast and comfortable execution environment.")
5005 (license license:expat)))
a1920bc9 5006
35de1fbd
RW
5007(define-public python-seaborn
5008 (package
5009 (name "python-seaborn")
fc899d4f 5010 (version "0.7.0")
35de1fbd
RW
5011 (source
5012 (origin
5013 (method url-fetch)
fc899d4f 5014 (uri (pypi-uri "seaborn" version))
35de1fbd 5015 (sha256
fc899d4f 5016 (base32 "0ibi3xsfm2kysph61mnfy0pf8d5rkgxgrdb0z9nbizgcgdsb5a0m"))))
35de1fbd
RW
5017 (build-system python-build-system)
5018 (propagated-inputs
5019 `(("python-pandas" ,python-pandas)
5020 ("python-matplotlib" ,python-matplotlib)
5021 ("python-scipy" ,python-scipy)))
35de1fbd
RW
5022 (home-page "http://stanford.edu/~mwaskom/software/seaborn/")
5023 (synopsis "Statistical data visualization")
5024 (description
5025 "Seaborn is a library for making attractive and informative statistical
5026graphics in Python. It is built on top of matplotlib and tightly integrated
5027with the PyData stack, including support for numpy and pandas data structures
5028and statistical routines from scipy and statsmodels.")
3f641af0 5029 (license license:bsd-3)
fc899d4f 5030 (properties `((python2-variant . ,(delay python2-seaborn))))))
35de1fbd
RW
5031
5032(define-public python2-seaborn
fc899d4f
EF
5033 (let ((base (package-with-python2 (strip-python2-variant python-seaborn))))
5034 (package
5035 (inherit base)
5036 (propagated-inputs `(("python2-pytz" ,python2-pytz)
5037 ,@(package-propagated-inputs base)))
5038 (native-inputs `(("python2-setuptools" ,python2-setuptools)
5039 ,@(package-native-inputs base))))))
35de1fbd 5040
90fc547f
RW
5041(define-public python-sympy
5042 (package
5043 (name "python-sympy")
5044 (version "0.7.6")
5045 (source
5046 (origin
5047 (method url-fetch)
5048 (uri (string-append
5049 "https://github.com/sympy/sympy/releases/download/sympy-"
5050 version "/sympy-" version ".tar.gz"))
5051 (sha256
5052 (base32 "19yp0gy4i7p4g6l3b8vaqkj9qj7yqb5kqy0qgbdagpzgkdz958yz"))))
5053 (build-system python-build-system)
5054 (native-inputs
5055 `(("python-setuptools" ,python-setuptools)))
5056 (home-page "http://www.sympy.org/")
5057 (synopsis "Python library for symbolic mathematics")
5058 (description
5059 "SymPy is a Python library for symbolic mathematics. It aims to become a
5060full-featured computer algebra system (CAS) while keeping the code as simple
5061as possible in order to be comprehensible and easily extensible.")
3f641af0 5062 (license license:bsd-3)))
90fc547f
RW
5063
5064(define-public python2-sympy
5065 (package-with-python2 python-sympy))
5066
e8c9b010
SR
5067(define-public python-q
5068 (package
5069 (name "python-q")
5070 (version "2.6")
5071 (source
5072 (origin
5073 (method url-fetch)
5074 (uri (pypi-uri "q" version))
5075 (sha256
5076 (base32
5077 "1mgfazh8fkizh6walra2zv885f3lcgr3nb02v1frfm4p8ddcy3yy"))))
5078 (build-system python-build-system)
5079 (home-page "https://github.com/zestyping/q")
5080 (synopsis "Quick-and-dirty debugging output for tired programmers")
5081 (description
5082 "q is a Python module for \"print\" style of debugging Python code. It
5083provides convenient short API for print out of values, tracebacks, and
5084falling into the Python interpreter.")
5085 (license license:asl2.0)
5086 (properties `((python2-variant . ,(delay python2-q))))))
5087
5088(define-public python2-q
5089 (let ((base (package-with-python2 (strip-python2-variant python-q))))
5090 (package
5091 (inherit base)
5092 (native-inputs
5093 `(("python2-setuptools" ,python2-setuptools)
5094 ,@(package-native-inputs base))))))
5095
a1920bc9
FB
5096(define-public python-testlib
5097 (package
5098 (name "python-testlib")
5099 (version "0.6.5")
5100 (source
5101 (origin
5102 (method url-fetch)
5103 (uri (string-append
5104 "https://pypi.python.org/packages/source/t/testlib/testlib-"
5105 version ".zip"))
5106 (sha256
5107 (base32 "1mz26cxn4x8bbgv0rn0mvj2z05y31rkc8009nvdlb3lam5b4mj3y"))))
5108 (build-system python-build-system)
5109 (inputs
5110 `(("python-setuptools" ,python-setuptools)))
5111 (native-inputs
5112 `(("unzip" ,unzip)))
5113 (arguments
5114 `(#:phases
5115 (alist-replace
5116 'unpack
5117 (lambda* (#:key inputs outputs #:allow-other-keys)
5118 (let ((unzip (string-append (assoc-ref inputs "unzip")
5119 "/bin/unzip"))
5120 (source (assoc-ref inputs "source")))
5121 (and (zero? (system* unzip source))
5122 (chdir (string-append "testlib-" ,version)))))
5123 %standard-phases)))
5124 (synopsis "Python micro test suite harness")
5125 (description "A micro unittest suite harness for Python.")
5126 (home-page "https://github.com/trentm/testlib")
1cb9c006 5127 (license license:expat)))
a1920bc9
FB
5128
5129(define-public python2-testlib
5130 (package-with-python2 python-testlib))
db62afa5
LC
5131
5132(define-public python2-xlib
5133 (package
5134 (name "python2-xlib")
5135 (version "0.14")
5136 (source (origin
5137 (method url-fetch)
de67e922
LF
5138 (uri (string-append "mirror://sourceforge/python-xlib/python-xlib"
5139 "/" version "/"
db62afa5
LC
5140 "python-xlib-" version ".tar.gz"))
5141 (sha256
5142 (base32
5143 "1sv0447j0rx8cgs3jhjl695p5pv13ihglcjlrrz1kq05lsvb0wa7"))))
5144 (build-system python-build-system)
5145 (arguments
5146 `(#:python ,python-2 ;Python 2 only
5147 #:tests? #f)) ;no tests
5148 (inputs
5149 `(("python-setuptools" ,python-setuptools)))
5150 (home-page "http://python-xlib.sourceforge.net/")
5151 (synopsis "Python X11 client library")
5152 (description
5153 "The Python X Library is intended to be a fully functional X client
5154library for Python programs. It is useful to implement low-level X clients.
5155It is written entirely in Python.")
3f641af0 5156 (license license:gpl2+)))
0234ca06
DT
5157
5158(define-public python-singledispatch
5159 (package
5160 (name "python-singledispatch")
5161 (version "3.4.0.3")
5162 (source
5163 (origin
5164 (method url-fetch)
bdb67d84 5165 (uri (pypi-uri "singledispatch" version))
0234ca06
DT
5166 (sha256
5167 (base32
5168 "171b7ip0hsq5qm83np40h3phlr36ym18w0lay0a8v08kvy3sy1jv"))))
5169 (build-system python-build-system)
5170 (native-inputs
5171 `(("python-setuptools" ,python-setuptools)))
bdb67d84 5172 (inputs
0234ca06
DT
5173 `(("python-six" ,python-six)))
5174 (home-page
5175 "http://docs.python.org/3/library/functools.html#functools.singledispatch")
5176 (synopsis "Backport of singledispatch feature from Python 3.4")
5177 (description
5178 "This library brings functools.singledispatch from Python 3.4 to Python
51792.6-3.3.")
5180 (license license:expat)))
5181
5182(define-public python2-singledispatch
5183 (package-with-python2 python-singledispatch))
feaae484 5184
310d218f
RW
5185(define-public python-tornado
5186 (package
5187 (name "python-tornado")
a724924b 5188 (version "4.3")
310d218f
RW
5189 (source
5190 (origin
5191 (method url-fetch)
a724924b 5192 (uri (pypi-uri "tornado" version))
310d218f 5193 (sha256
a724924b 5194 (base32 "1gzgwayl6hmc9jfcl88bni4jcsk2jcca9dn1rvrfsvnijcjx7hn9"))))
310d218f 5195 (build-system python-build-system)
310d218f 5196 (native-inputs
b455439b
EF
5197 `(("python-certifi" ,python-certifi)))
5198 (inputs
5199 `(("python-backports-abc" ,python-backports-abc)))
f4a4a718 5200 (home-page "http://www.tornadoweb.org/")
310d218f
RW
5201 (synopsis "Python web framework and asynchronous networking library")
5202 (description
5203 "Tornado is a Python web framework and asynchronous networking library,
5204originally developed at FriendFeed. By using non-blocking network I/O,
5205Tornado can scale to tens of thousands of open connections, making it ideal
5206for long polling, WebSockets, and other applications that require a long-lived
5207connection to each user.")
3f641af0 5208 (license license:asl2.0)
b455439b 5209 (properties `((python2-variant . ,(delay python2-tornado))))))
310d218f
RW
5210
5211(define-public python2-tornado
b455439b 5212 (let ((tornado (package-with-python2 (strip-python2-variant python-tornado))))
310d218f
RW
5213 (package (inherit tornado)
5214 (inputs
5215 `(("python2-backport-ssl-match-hostname"
5216 ,python2-backport-ssl-match-hostname)
b455439b
EF
5217 ("python2-singledispatch" ,python2-singledispatch)
5218 ,@(package-inputs tornado)))
5219 (native-inputs
5220 `(("python2-setuptools" ,python2-setuptools)
5221 ,@(package-native-inputs tornado))))))
310d218f 5222
6b59fc10
EF
5223;; the python- version can be removed with python-3.5
5224(define-public python-backports-abc
5225 (package
5226 (name "python-backports-abc")
5227 (version "0.4")
5228 (source
5229 (origin
5230 (method url-fetch)
5231 (uri (pypi-uri "backports_abc" version))
5232 (sha256
5233 (base32
5234 "19fh75lni9pb673n2fn505m1rckm0af0szcv5xx1qm1xpa940glb"))))
5235 (build-system python-build-system)
5236 (inputs
5237 `(("python-setuptools" ,python-setuptools)))
5238 (home-page "https://github.com/cython/backports_abc")
66e07664 5239 (synopsis "Backport of additions to the 'collections.abc' module")
6b59fc10
EF
5240 (description
5241 "Python-backports-abc provides a backport of additions to the
5242'collections.abc' module in Python-3.5.")
3f641af0 5243 (license license:psfl)))
6b59fc10
EF
5244
5245(define-public python2-backports-abc
5246 (package-with-python2 python-backports-abc))
5247
feaae484
SB
5248(define-public python-waf
5249 (package
5250 (name "python-waf")
f0e8d85e 5251 (version "1.9.1")
feaae484
SB
5252 (source (origin
5253 (method url-fetch)
5254 (uri (string-append "https://waf.io/"
5255 "waf-" version ".tar.bz2"))
5256 (sha256
5257 (base32
f0e8d85e 5258 "1nc4qaqx2vsanlpp9mcwvf91xjqpkvcc6fcxd5sb4fwvaxamw5v6"))))
feaae484
SB
5259 (build-system python-build-system)
5260 (arguments
5261 '(#:phases
5262 (modify-phases %standard-phases
5263 (replace 'build
5264 (lambda _
5265 (zero? (begin
5266 (system* "python" "waf-light" "configure")
5267 (system* "python" "waf-light" "build")))))
5268 (replace 'check
5269 (lambda _
5270 (zero? (system* "python" "waf" "--version"))))
5271 (replace 'install
5272 (lambda _
5273 (copy-file "waf" %output))))))
5274 (home-page "https://waf.io/")
5275 (synopsis "Python-based build system")
5276 (description
5277 "Waf is a Python-based framework for configuring, compiling and installing
5278applications.")
3f641af0 5279 (license license:bsd-3)))
feaae484
SB
5280
5281(define-public python2-waf
5282 (package-with-python2 python-waf))
45203542
RW
5283
5284(define-public python-pyzmq
5285 (package
5286 (name "python-pyzmq")
3655ee76 5287 (version "15.1.0")
45203542
RW
5288 (source
5289 (origin
5290 (method url-fetch)
3655ee76 5291 (uri (pypi-uri "pyzmq" version))
45203542 5292 (sha256
3655ee76 5293 (base32 "13fhwnlvsvxv72kfhqbpn6qi7msh8mc8377mpabv32skk2cjfnxx"))))
45203542
RW
5294 (build-system python-build-system)
5295 (arguments
5296 `(#:configure-flags
5297 (list (string-append "--zmq=" (assoc-ref %build-inputs "zeromq")))
5298 ;; FIXME: You must build pyzmq with 'python setup.py build_ext
5299 ;; --inplace' for 'python setup.py test' to work.
5300 #:tests? #f))
5301 (inputs
5302 `(("zeromq" ,zeromq)))
5303 (native-inputs
5304 `(("pkg-config" ,pkg-config)
5305 ("python-nose" ,python-nose)
5306 ("python-setuptools" ,python-setuptools)))
5307 (home-page "http://github.com/zeromq/pyzmq")
5308 (synopsis "Python bindings for 0MQ")
5309 (description
5310 "PyZMQ is the official Python binding for the ZeroMQ messaging library.")
3f641af0 5311 (license license:bsd-4)))
45203542
RW
5312
5313(define-public python2-pyzmq
5314 (package-with-python2 python-pyzmq))
d889e6c4
CR
5315
5316(define-public python-pep8
5317 (package
5318 (name "python-pep8")
db251311 5319 (version "1.7.0")
d889e6c4
CR
5320 (source
5321 (origin
5322 (method url-fetch)
db251311 5323 (uri (pypi-uri "pep8" version))
d889e6c4
CR
5324 (sha256
5325 (base32
db251311 5326 "002rkl4lsn6x2mxmf8ar00l0m8i3mzrc6pnzz77blyksmpsxa4x1"))))
d889e6c4
CR
5327 (build-system python-build-system)
5328 (inputs
5329 `(("python-setuptools" ,python-setuptools)))
5330 (home-page "http://pep8.readthedocs.org/")
5331 (synopsis "Python style guide checker")
5332 (description
5333 "This tools checks Python code against some of the style conventions in
5334PEP 8.")
5335 (license license:expat)))
5336
5337(define-public python2-pep8
5338 (package-with-python2 python-pep8))
e31d7f44
CR
5339
5340(define-public python-pyflakes
5341 (package
5342 (name "python-pyflakes")
2abc3972 5343 (version "1.0.0")
e31d7f44
CR
5344 (source
5345 (origin
5346 (method url-fetch)
2abc3972 5347 (uri (pypi-uri "pyflakes" version))
e31d7f44
CR
5348 (sha256
5349 (base32
2abc3972 5350 "0qs2sgqszq7wcplis8509wk2ygqcrwzbs1ghfj3svvivq2j377pk"))))
e31d7f44
CR
5351 (build-system python-build-system)
5352 (inputs
5353 `(("python-setuptools" ,python-setuptools)))
5354 (home-page
5355 "https://github.com/pyflakes/pyflakes")
5356 (synopsis "Passive checker of Python programs")
5357 (description
5358 "Pyflakes statically checks Python source code for common errors.")
5359 (license license:expat)))
a59e017c 5360
7261d9eb
CR
5361(define-public python2-pyflakes
5362 (package-with-python2 python-pyflakes))
5363
a59e017c
CR
5364(define-public python-mccabe
5365 (package
5366 (name "python-mccabe")
c6ebd40d 5367 (version "0.4.0")
a59e017c
CR
5368 (source
5369 (origin
5370 (method url-fetch)
c6ebd40d 5371 (uri (pypi-uri "mccabe" version))
a59e017c
CR
5372 (sha256
5373 (base32
c6ebd40d 5374 "0yr08a36h8lqlif10l4xcikbbig7q8f41gqywir7rrvnv3mi4aws"))))
a59e017c
CR
5375 (build-system python-build-system)
5376 (inputs
c6ebd40d
EF
5377 `(("python-pytest" ,python-pytest)
5378 ("python-pytest-runner" ,python-pytest-runner)
5379 ("python-setuptools" ,python-setuptools)))
a59e017c
CR
5380 (home-page "https://github.com/flintwork/mccabe")
5381 (synopsis "McCabe checker, plugin for flake8")
5382 (description
5383 "This package provides a Flake8 plug-in to compute the McCabe cyclomatic
5384complexity of Python source code.")
7362371d 5385 (license license:expat)))
a59e017c
CR
5386
5387(define-public python2-mccabe
5388 (package-with-python2 python-mccabe))
e8df8f47 5389
7477fbb1
CR
5390(define-public python-mccabe-0.2.1
5391 (package (inherit python-mccabe)
5392 (version "0.2.1")
5393 (source
5394 (origin
5395 (method url-fetch)
5396 (uri (pypi-uri "mccabe" version))
5397 (sha256
5398 (base32
c6ebd40d 5399 "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs"))))
b3546174 5400 (inputs `(("python-setuptools" ,python-setuptools)))))
7477fbb1
CR
5401
5402(define-public python2-mccabe-0.2.1
5403 (package-with-python2 python-mccabe-0.2.1))
5404
e8df8f47
CR
5405;; Flake8 2.4.1 requires an older version of pep8.
5406;; This should be removed ASAP.
5407(define-public python-pep8-1.5.7
5408 (package (inherit python-pep8)
5409 (version "1.5.7")
5410 (source
5411 (origin
5412 (method url-fetch)
5413 (uri (string-append
5414 "https://pypi.python.org/packages/source/p/pep8/pep8-"
5415 version
5416 ".tar.gz"))
5417 (sha256
5418 (base32
5419 "12b9bbdbwnspxgak14xg58c130x2n0blxzlms5jn2dszn8qj3d0m"))))))
5420
5421(define-public python2-pep8-1.5.7
5422 (package-with-python2 python-pep8-1.5.7))
5423
5424;; Flake8 2.4.1 requires an older version of pyflakes.
5425;; This should be removed ASAP.
5426(define-public python-pyflakes-0.8.1
5427 (package (inherit python-pyflakes)
5428 (version "0.8.1")
5429 (source
5430 (origin
5431 (method url-fetch)
5432 (uri (string-append
5433 "https://pypi.python.org/packages/source/p/pyflakes/pyflakes-"
5434 version
5435 ".tar.gz"))
5436 (sha256
5437 (base32
5438 "0sbpq6pqm1i9wqi41mlfrsc5rk92jv4mskvlyxmnhlbdnc80ma1z"))))))
5439
5440(define-public python2-pyflakes-0.8.1
7261d9eb 5441 (package-with-python2 python-pyflakes-0.8.1))
e8df8f47
CR
5442
5443(define-public python-flake8
5444 (package
5445 (name "python-flake8")
43789136 5446 (version "2.5.4")
e8df8f47
CR
5447 (source
5448 (origin
5449 (method url-fetch)
1b995533 5450 (uri (pypi-uri "flake8" version))
e8df8f47
CR
5451 (sha256
5452 (base32
43789136 5453 "0bs9cz4fr99r2rwig1b8jwaadl1nan7kgpdzqwj0bwbckwbmh7nc"))))
e8df8f47
CR
5454 (build-system python-build-system)
5455 (inputs
5456 `(("python-setuptools" ,python-setuptools)
43789136
EF
5457 ("python-pep8" ,python-pep8)
5458 ("python-pyflakes" ,python-pyflakes)
e8df8f47
CR
5459 ("python-mccabe" ,python-mccabe)
5460 ("python-mock" ,python-mock)
5461 ("python-nose" ,python-nose)))
5462 (home-page "https://gitlab.com/pycqa/flake8")
5463 (synopsis
5464 "The modular source code checker: pep8, pyflakes and co")
5465 (description
5466 "Flake8 is a wrapper around PyFlakes, pep8 and python-mccabe.")
5467 (license license:expat)))
5468
5469(define-public python2-flake8
5470 (package-with-python2 python-flake8))
61b9ac53 5471
abf21efc
CR
5472;; This will only be needed by the python-hacking package and will not be
5473;; necessary once python-hacking > 0.10.2 is released.
5474(define-public python-flake8-2.2.4
5475 (package (inherit python-flake8)
5476 (inputs
5477 `(("python-setuptools" ,python-setuptools)
5478 ("python-pep8" ,python-pep8-1.5.7)
5479 ("python-pyflakes" ,python-pyflakes-0.8.1)
5480 ("python-mccabe" ,python-mccabe-0.2.1)
5481 ("python-mock" ,python-mock)
5482 ("python-nose" ,python-nose)))
5483 (version "2.2.4")
5484 (source
5485 (origin
5486 (method url-fetch)
5487 (uri (pypi-uri "flake8" version))
5488 (sha256
5489 (base32
5490 "1r9wsry4va45h1rck5hxd3vzsg2q3y6lnl6pym1bxvz8ry19jwx8"))))))
5491
5492(define-public python2-flake8-2.2.4
5493 (package-with-python2 python-flake8-2.2.4))
5494
61b9ac53
FB
5495(define-public python-mistune
5496 (package
5497 (name "python-mistune")
5498 (version "0.7")
5499 (source
5500 (origin
5501 (method url-fetch)
5502 (uri (string-append
5503 "https://pypi.python.org/packages/source/m/mistune/mistune-"
5504 version
5505 ".tar.gz"))
5506 (sha256
5507 (base32
5508 "17zqjp9m4d1w3jf2rbbq5xshcw24q1vlcv24gkgfqqyyymajxahx"))))
5509 (build-system python-build-system)
5510 (inputs
5511 `(("python-setuptools" ,python-setuptools)
5512 ("python-nose" ,python-nose)
5513 ("python-cython" ,python-cython)))
5514 (home-page "https://github.com/lepture/mistune")
5515 (synopsis "Markdown parser in pure Python")
5516 (description "This package provides a fast markdown parser in pure
5517Python.")
3f641af0 5518 (license license:bsd-3)))
61b9ac53
FB
5519
5520(define-public python2-mistune
5521 (package-with-python2 python-mistune))
6d992d07 5522
b9893908
EE
5523(define-public python-markdown
5524 (package
5525 (name "python-markdown")
5526 (version "2.6.5")
5527 (source
5528 (origin
5529 (method url-fetch)
5530 (uri (pypi-uri "Markdown" version))
5531 (sha256
5532 (base32
5533 "0q758a3fiiawr20b3hhjfs677cwj6xi284yb7xspcvv0fdicz54d"))))
5534 (build-system python-build-system)
5535 (arguments
5536 `(#:phases
5537 (modify-phases %standard-phases
5538 (replace 'check
5539 (lambda _
5540 (zero? (system* "python" "run-tests.py")))))))
5541 (native-inputs
5542 `(("python-nose" ,python-nose)
5543 ("python-pyyaml" ,python-pyyaml)))
5544 (home-page "https://pythonhosted.org/Markdown/")
5545 (synopsis "Python implementation of Markdown")
5546 (description
5547 "This package provides a Python implementation of John Gruber's
5548Markdown. The library features international input, various Markdown
5549extensions, and several HTML output formats. A command line wrapper
5550markdown_py is also provided to convert Markdown files to HTML.")
3f641af0 5551 (license license:bsd-3)))
b9893908
EE
5552
5553(define-public python2-markdown
5554 (package-with-python2 python-markdown))
5555
6d992d07
FB
5556(define-public python-ptyprocess
5557 (package
5558 (name "python-ptyprocess")
5559 (version "0.5")
5560 (source
5561 (origin
5562 (method url-fetch)
5563 (uri (string-append
5564 "https://pypi.python.org/packages/source/p/ptyprocess/ptyprocess-"
5565 version ".tar.gz"))
5566 (sha256
5567 (base32
5568 "0nggns5kikn32yyda2zrj1xdmh49pi3v0drggcdwljbv36r8zdyw"))))
5569 (build-system python-build-system)
5570 (inputs
5571 `(("python-setuptools" ,python-setuptools)
5572 ("python-nose" ,python-nose)))
5573 (arguments
5574 `(#:phases
5575 (modify-phases %standard-phases
5576 (replace 'check
5577 (lambda _
5578 (zero? (system* "nosetests")))))))
5579 (home-page "https://github.com/pexpect/ptyprocess")
5580 (synopsis "Run a subprocess in a pseudo terminal")
5581 (description
5582 "This package provides a Python library used to launch a subprocess in a
5583pseudo terminal (pty), and interact with both the process and its pty.")
3f641af0 5584 (license license:isc)))
6d992d07
FB
5585
5586(define-public python2-ptyprocess
5587 (package-with-python2 python-ptyprocess))
4aadb1df
FB
5588
5589(define-public python-terminado
5590 (package
5591 (name "python-terminado")
783fb0a3 5592 (version "0.6")
4aadb1df
FB
5593 (source
5594 (origin
5595 (method url-fetch)
783fb0a3 5596 (uri (pypi-uri "terminado" version))
4aadb1df
FB
5597 (sha256
5598 (base32
783fb0a3 5599 "09h1kwi86g5mrk14s4pgbhshd602zry29lnpxamcqz864kva22rc"))))
4aadb1df
FB
5600 (build-system python-build-system)
5601 (propagated-inputs
5602 `(("python-tornado" ,python-tornado)
5603 ("python-ptyprocess" ,python-ptyprocess)))
783fb0a3
EF
5604 (native-inputs
5605 `(("python-nose" ,python-nose)))
4aadb1df
FB
5606 (arguments
5607 `(#:phases
5608 (modify-phases %standard-phases
5609 (replace 'check
5610 (lambda _
5611 (zero? (system* "nosetests")))))))
5612 (home-page "https://github.com/takluyver/terminado")
5613 (synopsis "Terminals served to term.js using Tornado websockets")
5614 (description "This package provides a Tornado websocket backend for the
5615term.js Javascript terminal emulator library.")
3f641af0 5616 (license license:bsd-2)
783fb0a3 5617 (properties `((python2-variant . ,(delay python2-terminado))))))
4aadb1df
FB
5618
5619(define-public python2-terminado
783fb0a3 5620 (let ((terminado (package-with-python2 (strip-python2-variant python-terminado))))
4aadb1df 5621 (package (inherit terminado)
783fb0a3
EF
5622 (propagated-inputs
5623 `(("python2-backport-ssl-match-hostname"
5624 ,python2-backport-ssl-match-hostname)
5625 ,@(package-propagated-inputs terminado)))
5626 (native-inputs
5627 `(("python2-setuptools" ,python2-setuptools)
5628 ,@(package-native-inputs terminado))))))
5faa5ce4 5629
d582eaac
SB
5630(define-public python-fonttools
5631 (package
5632 (name "python-fonttools")
5633 (version "2.5")
5634 (source (origin
5635 (method url-fetch)
5636 (uri (string-append
5637 "https://pypi.python.org/packages/source/F/FontTools/"
5638 "fonttools-" version ".tar.gz"))
5639 (sha256
5640 (base32
5641 "08ay3x4ijarwhl60gqx2i9jzq6pxs20p4snc2d1q5jagh4rn39lb"))))
5642 (build-system python-build-system)
5643 (arguments '(#:test-target "check"))
5644 (propagated-inputs
5645 ;; XXX: module not found if setuptools is not available.
5646 `(("python-setuptools" ,python-setuptools)))
5647 (home-page "http://github.com/behdad/fonttools")
5648 (synopsis "Tools to manipulate font files")
5649 (description
5650 "FontTools/TTX is a library to manipulate font files from Python. It
5651supports reading and writinfg of TrueType/OpenType fonts, reading and writing
5652of AFM files, reading (and partially writing) of PS Type 1 fonts. The package
5653also contains a tool called “TTX” which converts TrueType/OpenType fonts to and
5654from an XML-based format.")
3f641af0
DC
5655 (license (license:non-copyleft
5656 "file://LICENSE.txt"
5657 "See LICENSE.txt in the distribution."))))
d582eaac
SB
5658
5659(define-public python2-fonttools
5660 (package-with-python2 python-fonttools))
75710da6 5661
5faa5ce4
RW
5662(define-public python-ly
5663 (package
5664 (name "python-ly")
5135354f 5665 (version "0.9.4")
5faa5ce4
RW
5666 (source
5667 (origin
5668 (method url-fetch)
5135354f
RW
5669 (uri (string-append "https://pypi.python.org/packages/57/4f/"
5670 "889579244947368f28eda66b782331b1e75f83fd72e63f9ece93cd7a18f9"
5671 "/python-ly-" version ".tar.gz"))
5faa5ce4
RW
5672 (sha256
5673 (base32
5135354f 5674 "0g6n288l83sfwavxh1aryi0aqvsr3sp7v6f903mckwqa4scpky62"))))
5faa5ce4
RW
5675 (build-system python-build-system)
5676 (native-inputs
5677 `(("python-setuptools" ,python-setuptools)))
5678 (synopsis "Tool and library for manipulating LilyPond files")
5679 (description "This package provides a Python library to parse, manipulate
5680or create documents in LilyPond format. A command line program ly is also
5681provided that can be used to do various manipulations with LilyPond files.")
5682 (home-page "https://pypi.python.org/pypi/python-ly")
3f641af0 5683 (license license:gpl2+)))
7e7b27d9
CR
5684
5685(define-public python-appdirs
5686 (package
5687 (name "python-appdirs")
5688 (version "1.4.0")
5689 (source
5690 (origin
5691 (method url-fetch)
5692 (uri (string-append
5693 "https://pypi.python.org/packages/source/a/appdirs/appdirs-"
5694 version
5695 ".tar.gz"))
5696 (sha256
5697 (base32
5698 "1iddva7v3fq0aqzsahkazxr7vpw28mqcrsy818z4wyiqnkplbhlg"))))
5699 (build-system python-build-system)
5700 (inputs
5701 `(("python-setuptools" ,python-setuptools)))
5702 (home-page "http://github.com/ActiveState/appdirs")
5703 (synopsis
5704 "Determine platform-specific dirs, e.g. a \"user data dir\"")
5705 (description
5706 "This module provides a portable way of finding out where user data
5707should be stored on various operating systems.")
5708 (license license:expat)))
5709
5710(define-public python2-appdirs
5711 (package-with-python2 python-appdirs))
89b2e0b0
LF
5712
5713(define-public python-llfuse
5714 (package
5715 (name "python-llfuse")
e36ace36 5716 (version "1.1.1")
89b2e0b0
LF
5717 (source (origin
5718 (method url-fetch)
5719 (uri (string-append
5720 "https://bitbucket.org/nikratio/python-llfuse/downloads/"
5721 "llfuse-" version ".tar.bz2"))
5722 (sha256
5723 (base32
e36ace36 5724 "0v6vj9mb286njgd1szg9hz2qdh5f3vkhsvajripfcqg458av310v"))))
89b2e0b0
LF
5725 (build-system python-build-system)
5726 (inputs
5727 `(("fuse" ,fuse)
5728 ("attr" ,attr)))
5729 (native-inputs
5730 `(("pkg-config" ,pkg-config)
5731 ("python-setuptools" ,python-setuptools)))
5732 (synopsis "Python bindings for FUSE")
5733 (description
5734 "Python-LLFUSE is a set of Python bindings for the low level FUSE API.")
5735 (home-page "https://bitbucket.org/nikratio/python-llfuse/")
3f641af0 5736 (license license:lgpl2.0+)
cd0569c4 5737 (properties `((python2-variant . ,(delay python2-llfuse))))))
89b2e0b0
LF
5738
5739(define-public python2-llfuse
cd0569c4
LF
5740 (package (inherit (package-with-python2
5741 (strip-python2-variant python-llfuse)))
5742 (propagated-inputs `(("python2-contextlib2" ,python2-contextlib2)))))
5743
5744;; For attic-0.16
5745(define-public python-llfuse-0.41
5746 (package (inherit python-llfuse)
229b3661 5747 (version "0.41.1")
cd0569c4
LF
5748 (source (origin
5749 (method url-fetch)
5750 (uri (string-append
5751 "https://bitbucket.org/nikratio/python-llfuse/downloads/"
5752 "llfuse-" version ".tar.bz2"))
5753 (sha256
5754 (base32
229b3661 5755 "1imlqw9b73086y97izr036f58pgc5akv4ihc2rrf8j5h75jbrlaa"))))
cd0569c4
LF
5756 ;; Python-LLFUSE < 0.42 includes underscore.js, which is MIT (expat)
5757 ;; licensed. The rest of the package is licensed under LGPL2.0 or later.
3f641af0 5758 (license (list license:expat license:lgpl2.0+))))
641c9871
LF
5759
5760(define-public python-msgpack
5761 (package
5762 (name "python-msgpack")
aed625bd 5763 (version "0.4.8")
641c9871
LF
5764 (source (origin
5765 (method url-fetch)
ae831df4 5766 (uri (pypi-uri "msgpack-python" version))
641c9871
LF
5767 (sha256
5768 (base32
aed625bd 5769 "11pqk5braa6wndpnr1dhg64js82vjgxnm0lzy73rwl831zgijaqs"))))
641c9871 5770 (build-system python-build-system)
641c9871
LF
5771 (synopsis "MessagePack (de)serializer")
5772 (description "MessagePack is a fast, compact binary serialization format,
5773suitable for similar data to JSON. This package provides CPython bindings for
5774reading and writing MessagePack data.")
5775 (home-page "https://pypi.python.org/pypi/msgpack-python/")
3f641af0 5776 (license license:asl2.0)
bd74be7b
LF
5777 (properties `((python2-variant . ,(delay python2-msgpack))))))
5778
5779(define-public python2-msgpack
5780 (package (inherit (package-with-python2
5781 (strip-python2-variant python-msgpack)))
5782 (native-inputs
5783 `(("python2-setuptools" ,python2-setuptools)))))
641c9871 5784
6e5e39f4
CR
5785(define-public python-netaddr
5786 (package
5787 (name "python-netaddr")
5788 (version "0.7.18")
5789 (source
5790 (origin
5791 (method url-fetch)
5792 (uri (string-append
5793 "https://pypi.python.org/packages/source/n/netaddr/netaddr-"
5794 version
5795 ".tar.gz"))
5796 (sha256
5797 (base32
5798 "06dxjlbcicq7q3vqy8agq11ra01kvvd47j4mk6dmghjsyzyckxd1"))))
5799 (build-system python-build-system)
5800 (arguments `(#:tests? #f)) ;; No tests.
5801 (inputs
5802 `(("python-setuptools" ,python-setuptools)))
5803 (home-page "https://github.com/drkjam/netaddr/")
5804 (synopsis "Pythonic manipulation of network addresses")
5805 (description
5806 "A Python library for representing and manipulating IPv4, IPv6, CIDR, EUI
5807and MAC network addresses.")
3f641af0 5808 (license license:bsd-3)))
6e5e39f4
CR
5809
5810(define-public python2-netaddr
5811 (package-with-python2 python-netaddr))
8c692a52
CR
5812
5813(define-public python-wrapt
5814 (package
5815 (name "python-wrapt")
5816 (version "1.10.5")
5817 (source
5818 (origin
5819 (method url-fetch)
5820 (uri (string-append
5821 "https://pypi.python.org/packages/source/w/wrapt/wrapt-"
5822 version
5823 ".tar.gz"))
5824 (sha256
5825 (base32
5826 "0cq8rlpzkxzk48b50yrfhzn1d1hrq4gjcdqlrgq4v5palgiv9jwr"))))
5827 (build-system python-build-system)
5828 (arguments
5829 ;; Tests are not included in the tarball, they are only available in the
5830 ;; git repository.
5831 `(#:tests? #f))
5832 (inputs
5833 `(("python-setuptools" ,python-setuptools)))
5834 (home-page "https://github.com/GrahamDumpleton/wrapt")
5835 (synopsis "Module for decorators, wrappers and monkey patching")
5836 (description
5837 "The aim of the wrapt module is to provide a transparent object proxy for
5838 Python, which can be used as the basis for the construction of function
5839 wrappers and decorator functions.")
3f641af0 5840 (license license:bsd-2)))
8c692a52
CR
5841
5842(define-public python2-wrapt
5843 (package-with-python2 python-wrapt))
b85c85be
CR
5844
5845(define-public python-iso8601
5846 (package
5847 (name "python-iso8601")
fe84bc9a 5848 (version "0.1.11")
b85c85be
CR
5849 (source
5850 (origin
5851 (method url-fetch)
fe84bc9a 5852 (uri (pypi-uri "iso8601" version))
b85c85be 5853 (sha256
fe84bc9a
EF
5854 (base32
5855 "0c7gh3lsdjds262h0v1sqc66l7hqgfwbakn96qrhdbl0i3vm5yz8"))))
b85c85be
CR
5856 (build-system python-build-system)
5857 (inputs
5858 `(("python-setuptools" ,python-setuptools)))
5859 (home-page "https://bitbucket.org/micktwomey/pyiso8601")
5860 (synopsis "Module to parse ISO 8601 dates")
5861 (description
5862 "This module parses the most common forms of ISO 8601 date strings (e.g.
5863@code{2007-01-14T20:34:22+00:00}) into @code{datetime} objects.")
5864 (license license:expat)))
5865
5866(define-public python2-iso8601
5867 (package-with-python2 python-iso8601))
5e412b63
CR
5868
5869(define-public python-monotonic
5870 (package
5871 (name "python-monotonic")
5872 (version "0.3")
5873 (source
5874 (origin
5875 (method url-fetch)
5876 (uri (string-append
5877 "https://pypi.python.org/packages/source/m/monotonic/monotonic-"
5878 version
5879 ".tar.gz"))
5880 (sha256
5881 (base32
5882 "0yz0bcbwx8r2c01czzfpbrxddynxyk9k95jj8h6sgcb7xmfvl998"))))
5883 (build-system python-build-system)
5884 (inputs
5885 `(("python-setuptools" ,python-setuptools)))
5886 (home-page "https://github.com/atdt/monotonic")
5887 (synopsis "Implementation of time.monotonic() for Python 2 & < 3.3")
5888 (description
5889 "This module provides a monotonic() function which returns the value (in
5890fractional seconds) of a clock which never goes backwards.")
3f641af0 5891 (license license:asl2.0)))
5e412b63
CR
5892
5893(define-public python2-monotonic
5894 (package-with-python2 python-monotonic))
de34afac
CR
5895
5896(define-public python-webob
5897 (package
5898 (name "python-webob")
b8834c21 5899 (version "1.5.1")
de34afac
CR
5900 (source
5901 (origin
5902 (method url-fetch)
b8834c21 5903 (uri (pypi-uri "WebOb" version))
de34afac
CR
5904 (sha256
5905 (base32
b8834c21 5906 "02bhhzijfhv8hmi1i54d4b0v43liwhnywhflvxsv4x3zax9s3afq"))))
de34afac
CR
5907 (build-system python-build-system)
5908 (inputs
5909 `(("python-nose" ,python-nose)
5910 ("python-setuptools" ,python-setuptools)))
5911 (home-page "http://webob.org/")
5912 (synopsis "WSGI request and response object")
5913 (description
5914 "WebOb provides wrappers around the WSGI request environment, and an
5915object to help create WSGI responses.")
5916 (license license:expat)))
5917
5918(define-public python2-webob
5919 (package-with-python2 python-webob))
350ba0a3 5920
02a8a187
BW
5921(define-public python-xlrd
5922 (package
5923 (name "python-xlrd")
c2ad4d70 5924 (version "1.0.0")
02a8a187
BW
5925 (source (origin
5926 (method url-fetch)
e775f48e 5927 (uri (pypi-uri "xlrd" version))
02a8a187
BW
5928 (sha256
5929 (base32
c2ad4d70 5930 "0s8hjiz01vbhy85xalrz0qlsmd9ypf36zjqrf97hh984spapvy0g"))))
02a8a187
BW
5931 (build-system python-build-system)
5932 (arguments
5933 `(#:phases
5934 (modify-phases %standard-phases
c2ad4d70 5935 ;; Current test in setup.py does not work as of 1.0.0, so use nose to
02a8a187
BW
5936 ;; run tests instead for now.
5937 (replace 'check (lambda _ (zero? (system* "nosetests")))))))
5938 (native-inputs `(("python-nose" ,python-nose)
5939 ("python-setuptools" ,python-setuptools)))
5940 (home-page "http://www.python-excel.org/")
5941 (synopsis "Library for extracting data from Excel files")
5942 (description "This packages provides a library to extract data from
c598e35c 5943spreadsheets using Microsoft Excel proprietary file formats @samp{.xls} and
02a8a187
BW
5944@samp{.xlsx} (versions 2.0 onwards). It has support for Excel dates and is
5945Unicode-aware. It is not intended as an end-user tool.")
3f641af0 5946 (license license:bsd-3)))
02a8a187
BW
5947
5948(define-public python2-xlrd
5949 (package-with-python2 python-xlrd))
5950
350ba0a3
CR
5951(define-public python-prettytable
5952 (package
5953 (name "python-prettytable")
5954 (version "0.7.2")
5955 (source
5956 (origin
5957 (method url-fetch)
5958 (uri (string-append
5959 "https://pypi.python.org/packages/source/P/PrettyTable/"
5960 "prettytable-" version ".tar.bz2"))
5961 (sha256
5962 (base32
5963 "0diwsicwmiq2cpzpxri7cyl5fmsvicafw6nfqf6p6p322dji2g45"))))
5964 (build-system python-build-system)
5965 (inputs
5966 `(("python-setuptools" ,python-setuptools)))
5967 (home-page "http://code.google.com/p/prettytable/")
5968 (synopsis "Display tabular data in an ASCII table format")
5969 (description
5970 "A library designed to represent tabular data in visually appealing ASCII
5971tables. PrettyTable allows for selection of which columns are to be printed,
5972independent alignment of columns (left or right justified or centred) and
5973printing of sub-tables by specifying a row range.")
3f641af0 5974 (license license:bsd-3)))
350ba0a3
CR
5975
5976(define-public python2-prettytable
5977 (package-with-python2 python-prettytable))
7a8ac75a 5978
9f8ee3fe
RW
5979(define-public python-tables
5980 (package
5981 (name "python-tables")
5982 (version "3.2.2")
5983 (source
5984 (origin
5985 (method url-fetch)
5986 (uri (pypi-uri "tables" version))
5987 (sha256
5988 (base32
5989 "117s6w7s3yxafpmf3zz3svana7xfrsviw01va1xp7h8ylx8v6r1m"))))
5990 (build-system python-build-system)
5991 (arguments
5992 `(;; FIXME: python-build-system does not pass configure-flags to "build"
5993 ;; or "check", so we must override the build and check phases.
5994 #:phases
5995 (modify-phases %standard-phases
5996 (add-after 'unpack 'use-gcc
5997 (lambda _
5998 (substitute* "setup.py"
5999 (("compiler = new_compiler\\(\\)" line)
6000 (string-append line
6001 "\ncompiler.set_executables(compiler='gcc',"
6002 "compiler_so='gcc',"
6003 "linker_exe='gcc',"
6004 "linker_so='gcc -shared')")))
6005 #t))
6006 (replace 'build
6007 (lambda* (#:key inputs #:allow-other-keys)
6008 (zero? (system* "python" "setup.py" "build"
6009 (string-append "--hdf5="
6010 (assoc-ref inputs "hdf5"))))))
6011 (replace 'check
6012 (lambda* (#:key inputs #:allow-other-keys)
6013 (zero? (system* "python" "setup.py" "check"
6014 (string-append "--hdf5="
6015 (assoc-ref inputs "hdf5")))))))))
6016 (propagated-inputs
6017 `(("python-numexpr" ,python-numexpr)
6018 ("python-numpy" ,python-numpy)))
6019 (native-inputs
6020 `(("python-setuptools" ,python-setuptools)
6021 ("python-cython" ,python-cython)
6022 ("pkg-config" ,pkg-config)))
6023 (inputs
6024 `(("hdf5" ,hdf5)
6025 ("bzip2" ,bzip2)
6026 ("zlib" ,zlib)))
6027 (home-page "http://www.pytables.org/")
6028 (synopsis "Hierarchical datasets for Python")
6029 (description "PyTables is a package for managing hierarchical datasets and
6030designed to efficently cope with extremely large amounts of data.")
3f641af0 6031 (license license:bsd-3)))
9f8ee3fe
RW
6032
6033(define-public python2-tables
6034 (package-with-python2 python-tables))
6035
7a8ac75a
RW
6036(define-public python-pyasn1
6037 (package
6038 (name "python-pyasn1")
caa0edb3 6039 (version "0.1.9")
7a8ac75a
RW
6040 (source
6041 (origin
6042 (method url-fetch)
caa0edb3 6043 (uri (pypi-uri "pyasn1" version))
7a8ac75a
RW
6044 (sha256
6045 (base32
caa0edb3 6046 "0zraxni14bqi20kr4bi6nwsh32aibz0fq0xaczfisw0zdpcsqg45"))))
7a8ac75a
RW
6047 (build-system python-build-system)
6048 (home-page "http://pyasn1.sourceforge.net/")
6049 (synopsis "ASN.1 types and codecs")
6050 (description
6051 "This is an implementation of ASN.1 types and codecs in Python. It is
6052suitable for a wide range of protocols based on the ASN.1 specification.")
3f641af0 6053 (license license:bsd-2)))
7a8ac75a
RW
6054
6055(define-public python2-pyasn1
6056 (package-with-python2 python-pyasn1))
9a49a535 6057
5988c299
EF
6058(define-public python-pyasn1-modules
6059 (package
6060 (name "python-pyasn1-modules")
6061 (version "0.0.8")
6062 (source
6063 (origin
6064 (method url-fetch)
6065 (uri (pypi-uri "pyasn1-modules" version))
6066 (sha256
6067 (base32
6068 "0drqgw81xd3fxdlg89kgd79zzrabvfncvkbybi2wr6w2y4s1jmhh"))))
6069 (build-system python-build-system)
6070 (native-inputs
6071 `(("python-setuptools" ,python-setuptools)))
6072 (propagated-inputs
6073 `(("python-pyasn1" ,python-pyasn1)))
6074 (home-page "http://sourceforge.net/projects/pyasn1/")
6075 (synopsis "ASN.1 codec implementations")
6076 (description
6077 "Pyasn1-modules is a collection of Python modules providing ASN.1 types and
6078implementations of ASN.1-based codecs and protocols.")
3f641af0 6079 (license license:bsd-3)))
5988c299
EF
6080
6081(define-public python2-pyasn1-modules
6082 (package-with-python2 python-pyasn1-modules))
6083
520af157 6084(define-public python-ipaddress
9a49a535 6085 (package
520af157
DC
6086 (name "python-ipaddress")
6087 (version "1.0.16")
6088 (source (origin
6089 (method url-fetch)
6090 (uri (pypi-uri "ipaddress" version))
6091 (sha256
6092 (base32
6093 "1c3imabdrw8nfksgjjflzg7h4ynjckqacb188rf541m74arq4cas"))))
9a49a535 6094 (build-system python-build-system)
9a49a535
RW
6095 (home-page "https://github.com/phihag/ipaddress")
6096 (synopsis "IP address manipulation library")
6097 (description
520af157
DC
6098 "This package provides a fast, lightweight IPv4/IPv6 manipulation library
6099 in Python. This library is used to create, poke at, and manipulate IPv4 and
6100 IPv6 addresses and networks. This is a port of the Python 3.3 ipaddress
6101 module to older versions of Python.")
6102 (license license:psfl)
6103 (properties `((python2-variant . ,(delay python2-ipaddress))))))
6104
6105(define-public python2-ipaddress
6106 (let ((base (package-with-python2 (strip-python2-variant python-ipaddress))))
6107 (package (inherit base)
6108 (native-inputs
6109 `(("python2-setuptools" ,python2-setuptools)
6110 ,@(package-native-inputs base))))))
3f00e078 6111
4a238186
HG
6112(define-public python2-ipaddr
6113 (package
6114 (name "python2-ipaddr")
6115 (version "2.1.11")
6116 (source
6117 (origin
6118 (method url-fetch)
6119 (uri (pypi-uri "ipaddr" version))
6120 (sha256
6121 (base32 "1dwq3ngsapjc93fw61rp17fvzggmab5x1drjzvd4y4q0i255nm8v"))))
6122 (build-system python-build-system)
6123 (arguments
6124 `(#:python ,python-2 ;version 2 only
6125 #:phases
6126 (modify-phases %standard-phases
6127 (replace 'check
6128 (lambda* _
6129 (zero? (system* "python" "ipaddr_test.py")))))))
6130 (home-page "https://github.com/google/ipaddr-py")
6131 (synopsis "IP address manipulation library")
6132 (description
6133 "Ipaddr is a Python@tie{}2 library for creating and manupilating IPv4 and
6134IPv6 addresses and networks.
6135
6136For new implementations you may prefer to use the standard module
6137@code{ipaddress}, which was introduced in Python 3.3 and backported to older
6138versions of Python.")
3f641af0 6139 (license license:asl2.0)))
4a238186 6140
3f00e078
RW
6141(define-public python-idna
6142 (package
6143 (name "python-idna")
6144 (version "2.0")
6145 (source
6146 (origin
6147 (method url-fetch)
6148 (uri (string-append "https://pypi.python.org/packages/source/i/"
6149 "idna/idna-" version ".tar.gz"))
6150 (sha256
6151 (base32
6152 "0frxgmgi234lr9hylg62j69j4ik5zhg0wz05w5dhyacbjfnrl68n"))))
6153 (build-system python-build-system)
6154 (native-inputs
6155 `(("python-setuptools" ,python-setuptools)))
6156 (home-page "https://github.com/kjd/idna")
6157 (synopsis "Internationalized domain names in applications")
6158 (description
6159 "This is a library to support the Internationalised Domain Names in
6160Applications (IDNA) protocol as specified in RFC 5891. This version of the
6161protocol is often referred to as “IDNA2008” and can produce different results
6162from the earlier standard from 2003. The library is also intended to act as a
6163suitable drop-in replacement for the “encodings.idna” module that comes with
6164the Python standard library but currently only supports the older 2003
6165specification.")
3f641af0 6166 (license license:bsd-4)))
3f00e078
RW
6167
6168(define-public python2-idna
6169 (package-with-python2 python-idna))
36ebf972
RW
6170
6171(define-public python-pretend
6172 (package
6173 (name "python-pretend")
6174 (version "1.0.8")
6175 (source
6176 (origin
6177 (method url-fetch)
6178 (uri (string-append "https://pypi.python.org/packages/source/p/"
6179 "pretend/pretend-" version ".tar.gz"))
6180 (sha256
6181 (base32
6182 "0r5r7ygz9m6d2bklflbl84cqhjkc2q12xgis8268ygjh30g2q3wk"))))
6183 (build-system python-build-system)
6184 (native-inputs
6185 `(("python-setuptools" ,python-setuptools)))
6186 (home-page "https://github.com/alex/pretend")
6187 (synopsis "Library for stubbing in Python")
6188 (description
6189 "Pretend is a library to make stubbing with Python easier. Stubbing is a
6190technique for writing tests. You may hear the term mixed up with mocks,
6191fakes, or doubles. Basically, a stub is an object that returns pre-canned
6192responses, rather than doing any computation.")
3f641af0 6193 (license license:bsd-3)))
36ebf972
RW
6194
6195(define-public python2-pretend
6196 (package-with-python2 python-pretend))
aa759a51
RW
6197
6198(define-public python-cryptography-vectors
6199 (package
6200 (name "python-cryptography-vectors")
9c509ca9 6201 (version "1.3.4")
aa759a51
RW
6202 (source
6203 (origin
6204 (method url-fetch)
9c509ca9 6205 (uri (pypi-uri "cryptography_vectors" version))
aa759a51
RW
6206 (sha256
6207 (base32
9c509ca9 6208 "15h1iz2klnpb4f8djxy7cpbnyn3wbjp7bnj4pz6s7w6plghbq524"))))
aa759a51
RW
6209 (build-system python-build-system)
6210 (native-inputs
6211 `(("python-setuptools" ,python-setuptools)))
6212 (home-page "https://github.com/pyca/cryptography")
66e07664 6213 (synopsis "Test vectors for the cryptography package")
aa759a51
RW
6214 (description
6215 "This package contains test vectors for the cryptography package.")
6216 ;; Distributed under either BSD-3 or ASL2.0
3f641af0 6217 (license (list license:bsd-3 license:asl2.0))))
aa759a51
RW
6218
6219(define-public python2-cryptography-vectors
6220 (package-with-python2 python-cryptography-vectors))
88b47cb0
RW
6221
6222(define-public python-cryptography
6223 (package
6224 (name "python-cryptography")
9c509ca9 6225 (version "1.3.4")
88b47cb0
RW
6226 (source
6227 (origin
6228 (method url-fetch)
9c509ca9 6229 (uri (pypi-uri "cryptography" version))
88b47cb0
RW
6230 (sha256
6231 (base32
9c509ca9 6232 "1a85l548w5vvq3yhz0az7ajg2ijixzp6gagapw6wgrqvq28ghgs2"))))
88b47cb0 6233 (build-system python-build-system)
470613f9
LF
6234 (arguments
6235 `(#:phases
6236 (modify-phases %standard-phases
6237 (add-before 'check 'disable-failing-test
6238 (lambda _
6239 ;; This test is known to fail with OpenSSL >= 1.0.2i and older
6240 ;; versions of python-cryptography:
6241 ;; https://github.com/pyca/cryptography/issues/3196
6242 ;; TODO: Try re-enabling the test when upgrading
6243 ;; python-cryptography.
6244 (substitute* "tests/hazmat/backends/test_openssl.py"
6245 (("def test_numeric_string_x509_name_entry")
6246 "@pytest.mark.xfail\n def test_numeric_string_x509_name_entry"))
6247 #t)))))
88b47cb0
RW
6248 (inputs
6249 `(("openssl" ,openssl)))
6250 (propagated-inputs
6251 `(("python-cffi" ,python-cffi)
6252 ("python-six" ,python-six)
6253 ("python-pyasn1" ,python-pyasn1)
88b47cb0
RW
6254 ("python-idna" ,python-idna)
6255 ("python-iso8601" ,python-iso8601)))
6256 (native-inputs
6257 `(("python-cryptography-vectors" ,python-cryptography-vectors)
ce6c13ee 6258 ("python-hypothesis" ,python-hypothesis)
88b47cb0
RW
6259 ("python-setuptools" ,python-setuptools)
6260 ("python-pretend" ,python-pretend)
ce6c13ee
EF
6261 ("python-pyasn1" ,python-pyasn1)
6262 ("python-pyasn1-modules" ,python-pyasn1-modules)
88b47cb0
RW
6263 ("python-pytest" ,python-pytest)))
6264 (home-page "https://github.com/pyca/cryptography")
6265 (synopsis "Cryptographic recipes and primitives for Python")
6266 (description
6267 "cryptography is a package which provides cryptographic recipes and
6268primitives to Python developers. It aims to be the “cryptographic standard
6269library” for Python. The package includes both high level recipes, and low
6270level interfaces to common cryptographic algorithms such as symmetric ciphers,
6271message digests and key derivation functions.")
6272 ;; Distributed under either BSD-3 or ASL2.0
3f641af0 6273 (license (list license:bsd-3 license:asl2.0))
519e2f4f 6274 (properties `((python2-variant . ,(delay python2-cryptography))))))
88b47cb0
RW
6275
6276(define-public python2-cryptography
519e2f4f
LF
6277 (let ((crypto (package-with-python2
6278 (strip-python2-variant python-cryptography))))
88b47cb0
RW
6279 (package (inherit crypto)
6280 (propagated-inputs
6281 `(("python2-ipaddress" ,python2-ipaddress)
ce6c13ee
EF
6282 ("python2-backport-ssl-match-hostname"
6283 ,python2-backport-ssl-match-hostname)
68f1cdec 6284 ("python2-enum34" ,python2-enum34)
88b47cb0 6285 ,@(package-propagated-inputs crypto))))))
5af999b8
RW
6286
6287(define-public python-pyopenssl
6288 (package
6289 (name "python-pyopenssl")
eb68d268 6290 (version "16.1.0")
5af999b8
RW
6291 (source
6292 (origin
6293 (method url-fetch)
eb68d268 6294 (uri (pypi-uri "pyOpenSSL" version))
5af999b8
RW
6295 (sha256
6296 (base32
eb68d268 6297 "0prm06zz7hl6bk5s2lqzw25lq6smayfv2fgiliw2rbqxlyiavxw8"))))
5af999b8 6298 (build-system python-build-system)
5af999b8
RW
6299 (propagated-inputs
6300 `(("python-cryptography" ,python-cryptography)
6301 ("python-six" ,python-six)))
6302 (inputs
6303 `(("openssl" ,openssl)))
6304 (native-inputs
6305 `(("python-setuptools" ,python-setuptools)))
6306 (home-page "https://github.com/pyca/pyopenssl")
6307 (synopsis "Python wrapper module around the OpenSSL library")
6308 (description
6309 "PyOpenSSL is a high-level wrapper around a subset of the OpenSSL
6310library.")
3f641af0 6311 (license license:asl2.0)))
5af999b8
RW
6312
6313(define-public python2-pyopenssl
519e2f4f 6314 (package-with-python2 python-pyopenssl))
643725a1
CR
6315
6316(define-public python-pip
6317 (package
6318 (name "python-pip")
6fb54e3b 6319 (version "8.0.2")
643725a1
CR
6320 (source
6321 (origin
6322 (method url-fetch)
6fb54e3b 6323 (uri (pypi-uri "pip" version))
643725a1
CR
6324 (sha256
6325 (base32
6fb54e3b 6326 "08cm8d4228fj0qnrysy3qv1a6022zr3dcs25amd14lgxil6vvx26"))))
643725a1
CR
6327 (build-system python-build-system)
6328 (inputs
6329 `(("python-setuptools" ,python-setuptools)
6330 ("python-virtualenv" ,python-virtualenv)
6331 ;; Tests
6332 ("python-mock" ,python-mock)
6333 ("python-pytest" ,python-pytest)
6334 ("python-scripttest" ,python-scripttest)))
6335 (home-page "https://pip.pypa.io/")
6336 (synopsis
6337 "Package manager for Python software")
6338 (description
6339 "Pip is a package manager for Python software, that finds packages on the
6340Python Package Index (PyPI).")
6341 (license license:expat)))
6342
6343(define-public python2-pip
6344 (package-with-python2 python-pip))
d8c4998f
LC
6345
6346(define-public python-tlsh
6347 (package
6348 (name "python-tlsh")
99b00dc7 6349 (version "3.4.4")
d8c4998f
LC
6350 (home-page "https://github.com/trendmicro/tlsh")
6351 (source (origin
99b00dc7
EF
6352 (method url-fetch)
6353 (uri (string-append "https://github.com/trendmicro/tlsh/archive/v"
6354 version ".tar.gz"))
d8c4998f
LC
6355 (sha256
6356 (base32
99b00dc7
EF
6357 "00bhzjqrlh7v538kbkbn8lgx976j1138al3sdhklaizqjvpwyk4r"))
6358 (file-name (string-append name "-" version ".tar.gz"))))
d8c4998f
LC
6359 (build-system cmake-build-system)
6360 (arguments
6361 '(#:out-of-source? #f
6362 #:phases (modify-phases %standard-phases
6363 (replace
6364 'install
6365 (lambda* (#:key outputs #:allow-other-keys)
6366 ;; Build and install the Python bindings. The underlying
6367 ;; C++ library is apparently not meant to be installed.
6368 (let ((out (assoc-ref outputs "out")))
6369 (with-directory-excursion "py_ext"
6370 (and (system* "python" "setup.py" "build")
6371 (system* "python" "setup.py" "install"
6372 (string-append "--prefix=" out))))))))))
6373 (inputs `(("python" ,python-wrapper))) ;for the bindings
6374 (synopsis "Fuzzy matching library for Python")
6375 (description
6376 "Trend Micro Locality Sensitive Hash (TLSH) is a fuzzy matching library.
6377Given a byte stream with a minimum length of 256 bytes, TLSH generates a hash
6378value which can be used for similarity comparisons. Similar objects have
6379similar hash values, which allows for the detection of similar objects by
6380comparing their hash values. The byte stream should have a sufficient amount
6381of complexity; for example, a byte stream of identical bytes will not generate
6382a hash value.")
3f641af0 6383 (license license:asl2.0)))
d8c4998f
LC
6384
6385(define-public python2-tlsh
6386 (package
6387 (inherit python-tlsh)
6388 (name "python2-tlsh")
6389 (inputs `(("python" ,python-2)))))
d96034ed 6390
67f66812
BW
6391(define-public python-termcolor
6392 (package
6393 (name "python-termcolor")
6394 (version "1.1.0")
6395 (source
6396 (origin
6397 (method url-fetch)
6398 (uri (pypi-uri "python-termcolor" version))
6399 (sha256
6400 (base32
6401 "0fv1vq14rpqwgazxg4981904lfyp84mnammw7y046491cv76jv8x"))))
6402 (build-system python-build-system)
6403 (arguments
6404 ;; There are no tests.
6405 `(#:tests? #f))
6406 (home-page "http://pypi.python.org/pypi/termcolor")
6407 (synopsis "ANSII Color formatting for terminal output")
6408 (description
6409 "This package provides ANSII Color formatting for output in terminals.")
6410 (license license:expat)))
6411
6412(define-public python2-termcolor
6413 (package-with-python2 python-termcolor))
6414
d96034ed
LC
6415(define-public python-libarchive-c
6416 (package
6417 (name "python-libarchive-c")
03fd001c 6418 (version "2.2")
d96034ed
LC
6419 (source (origin
6420 (method url-fetch)
03fd001c 6421 (uri (pypi-uri "libarchive-c" version))
d96034ed
LC
6422 (sha256
6423 (base32
03fd001c 6424 "0z4r7v3dhd6b3120mav05ff08srih176r2rg5k8kn7mjd9pslm2x"))))
d96034ed
LC
6425 (build-system python-build-system)
6426 (arguments
6427 '(#:phases (modify-phases %standard-phases
6428 (add-before
6429 'build 'reference-libarchive
6430 (lambda* (#:key inputs #:allow-other-keys)
6431 ;; Retain the absolute file name of libarchive.so.
6432 (let ((libarchive (assoc-ref inputs "libarchive")))
6433 (substitute* "libarchive/ffi.py"
6434 (("find_library\\('archive'\\)")
6435 (string-append "'" libarchive
6436 "/lib/libarchive.so'"))))
6437
6438 ;; Do not make a compressed egg (see
6439 ;; <http://bugs.gnu.org/20765>).
6440 (let ((port (open-file "setup.cfg" "a")))
6441 (display "\n[easy_install]\nzip_ok = 0\n"
6442 port)
6443 (close-port port)
6444 #t))))))
6445 (inputs
6446 `(("python-setuptools" ,python-setuptools)
6447 ("libarchive" ,libarchive)))
6448 (home-page "https://github.com/Changaco/python-libarchive-c")
6449 (synopsis "Python interface to libarchive")
6450 (description
6451 "This package provides Python bindings to libarchive, a C library to
6452access possibly compressed archives in many different formats. It uses
6453Python's @code{ctypes} foreign function interface (FFI).")
3f641af0 6454 (license license:lgpl2.0+)))
d96034ed
LC
6455
6456(define-public python2-libarchive-c
6457 (package-with-python2 python-libarchive-c))
5e1c9367
LC
6458
6459(define-public python-file
6460 (package
6461 (inherit file)
6462 (name "python-file")
7ffa5d4a
LF
6463 (source (origin
6464 (inherit (package-source file))
6465 ;; This patch should not be applied to python2-file.
6466 (patches (search-patches "python-file-double-encoding-bug.patch"))))
5e1c9367
LC
6467 (build-system python-build-system)
6468 (arguments
6469 '(#:tests? #f ;no tests
00bf74be 6470 #:configure-flags '("--single-version-externally-managed" "--root=/")
5e1c9367
LC
6471 #:phases (modify-phases %standard-phases
6472 (add-before 'build 'change-directory
6473 (lambda _
6474 (chdir "python")
6475 #t))
6476 (add-before 'build 'set-library-file-name
6477 (lambda* (#:key inputs #:allow-other-keys)
6478 (let ((file (assoc-ref inputs "file")))
6479 (substitute* "magic.py"
6480 (("find_library\\('magic'\\)")
6481 (string-append "'" file "/lib/libmagic.so'")))
6482 #t))))))
6483 (inputs `(("file" ,file)))
6484 (self-native-input? #f)
daeeea71
CM
6485 (synopsis "Python bindings to the libmagic file type guesser. Note that
6486this module and the python-magic module both provide a \"magic.py\" file;
6487these two modules, which are different and were developed separately, both
2f87a77f
LF
6488serve the same purpose: provide Python bindings for libmagic.")
6489 (properties `((python2-variant . ,(delay python2-file))))))
5e1c9367
LC
6490
6491(define-public python2-file
2f87a77f
LF
6492 (let ((base (package-with-python2 (strip-python2-variant python-file))))
6493 (package
6494 (inherit base)
7ffa5d4a 6495 (source (package-source file))
2f87a77f
LF
6496 (native-inputs
6497 `(("python2-setuptools" ,python2-setuptools)
6498 ,@(package-native-inputs base))))))
85d4aeac
LC
6499
6500(define-public python-debian
6501 (package
6502 (name "python-debian")
6503 (version "0.1.23")
6504 (source
6505 (origin
6506 (method url-fetch)
6507 (uri (string-append
6508 "https://pypi.python.org/packages/source/p/python-debian/python-debian-"
6509 version ".tar.gz"))
6510 (sha256
6511 (base32
6512 "193faznwnjc3n5991wyzim6h9gyq1zxifmfrnpm3avgkh7ahyynh"))))
6513 (build-system python-build-system)
6514 (inputs
6515 `(("python-six" ,python-six)))
6516 (native-inputs
6517 `(("python-setuptools" ,python-setuptools)))
6518 (home-page "http://packages.debian.org/sid/python-debian")
6519 (synopsis "Debian package related modules")
6520 (description
5c7bdc9a
LC
6521 ;; XXX: Use @enumerate instead of @itemize to work around
6522 ;; <http://bugs.gnu.org/21772>.
85d4aeac
LC
6523 "This package provides Python modules that abstract many formats of
6524Debian-related files, such as:
6525
5c7bdc9a 6526@enumerate
85d4aeac
LC
6527@item Debtags information;
6528@item @file{debian/changelog} files;
6529@item packages files, pdiffs;
6530@item control files of single or multiple RFC822-style paragraphs---e.g.
6531 @file{debian/control}, @file{.changes}, @file{.dsc};
6532@item Raw @file{.deb} and @file{.ar} files, with (read-only) access to
6533 contained files and meta-information.
5c7bdc9a 6534@end enumerate\n")
85d4aeac
LC
6535
6536 ;; Modules are either GPLv2+ or GPLv3+.
3f641af0 6537 (license license:gpl3+)))
85d4aeac
LC
6538
6539(define-public python2-debian
6540 (package-with-python2 python-debian))
816a6538
LC
6541
6542(define-public python-chardet
6543 (package
6544 (name "python-chardet")
6545 (version "2.3.0")
6546 (source
6547 (origin
6548 (method url-fetch)
6549 (uri (string-append
6550 "https://pypi.python.org/packages/source/c/chardet/chardet-"
6551 version
6552 ".tar.gz"))
6553 (sha256
6554 (base32
6555 "1ak87ikcw34fivcgiz2xvi938dmclh078az65l9x3rmgljrkhgp5"))))
6556 (build-system python-build-system)
6557 (native-inputs
6558 `(("python-setuptools" ,python-setuptools)))
6559 (home-page "https://github.com/chardet/chardet")
6560 (synopsis "Universal encoding detector for Python 2 and 3")
6561 (description
6562 "This package provides @code{chardet}, a Python module that can
6563automatically detect a wide range of file encodings.")
3f641af0 6564 (license license:lgpl2.1+)))
816a6538
LC
6565
6566(define-public python2-chardet
6567 (package-with-python2 python-chardet))
2fc5f186 6568
1872f1bb
KM
6569(define-public python-docopt
6570 (package
6571 (name "python-docopt")
6572 (version "0.6.2")
6573 (source
6574 (origin
6575 (method url-fetch)
6576 ;; The release on PyPI does not include tests.
6577 (uri (string-append
6578 "https://github.com/docopt/docopt/archive/"
6579 version ".tar.gz"))
6580 (file-name (string-append name "-" version ".tar.gz"))
6581 (sha256
6582 (base32
6583 "16bf890xbdz3m30rsv2qacklh2rdn1zrfspfnwzx9g7vwz8yw4r1"))))
6584 (build-system python-build-system)
6585 (native-inputs
6586 `(("python-pytest" ,python-pytest)
6587 ("python-setuptools" ,python-setuptools)))
6588 (arguments
6589 `(#:phases (alist-replace
6590 'check
6591 (lambda _ (zero? (system* "py.test")))
6592 %standard-phases)))
6593 (home-page "http://docopt.org")
6594 (synopsis "Command-line interface description language for Python")
6595 (description "This library allows the user to define a command-line
6596interface from a program's help message rather than specifying it
6597programatically with command-line parsers like @code{getopt} and
6598@code{argparse}.")
6599 (license license:expat)))
6600
6601(define-public python2-docopt
6602 (package-with-python2 python-docopt))
6603
2fc5f186
LF
6604(define-public python-zope-event
6605 (package
6606 (name "python-zope-event")
6607 (version "4.1.0")
6608 (source
6609 (origin
6610 (method url-fetch)
6611 (uri (string-append "https://pypi.python.org/packages/source/z"
6612 "/zope.event/zope.event-" version ".tar.gz"))
6613 (sha256
6614 (base32
6615 "11p75zpfz3ffhz21nzx9wb23xs993ck5s6hkjcvhswwizni5jynw"))))
6616 (build-system python-build-system)
6617 (inputs
6618 `(("python-setuptools" ,python-setuptools)))
6619 (home-page "http://pypi.python.org/pypi/zope.event")
6620 (synopsis "Event publishing system for Python")
6621 (description "Zope.event provides an event publishing API, intended for
6622use by applications which are unaware of any subscribers to their events. It
6623is a simple event-dispatching system on which more sophisticated event
6624dispatching systems can be built.")
3f641af0 6625 (license license:zpl2.1)))
2fc5f186
LF
6626
6627(define-public python2-zope-event
6628 (package-with-python2 python-zope-event))
97abe268
LF
6629
6630(define-public python-zope-interface
6631 (package
6632 (name "python-zope-interface")
6633 (version "4.1.3")
6634 (source
6635 (origin
6636 (method url-fetch)
6637 (uri (string-append "https://pypi.python.org/packages/source/z"
6638 "/zope.interface/zope.interface-" version ".tar.gz"))
6639 (sha256
6640 (base32
6641 "0ks8h73b2g4bkad821qbv0wzjppdrwys33i7ka45ik3wxjg1l8if"))))
6642 (build-system python-build-system)
6643 (propagated-inputs
6644 `(("python-zope-event" ,python-zope-event)))
6645 (home-page "https://github.com/zopefoundation/zope.interface")
6646 (synopsis "Python implementation of the \"design by contract\"
6647methodology")
6648 (description "Zope.interface provides an implementation of \"object
6649interfaces\" for Python. Interfaces are a mechanism for labeling objects as
6650conforming to a given API or contract.")
3f641af0 6651 (license license:zpl2.1)))
97abe268
LF
6652
6653(define-public python2-zope-interface
6654 (package-with-python2 python-zope-interface))
81f2373c
LF
6655
6656(define-public python-zope-exceptions
6657 (package
6658 (name "python-zope-exceptions")
6659 (version "4.0.8")
6660 (source
6661 (origin
6662 (method url-fetch)
6663 (uri (string-append "https://pypi.python.org/packages/source/z"
6664 "/zope.exceptions/zope.exceptions-"
6665 version ".tar.gz"))
6666 (sha256
6667 (base32
6668 "0zwxaaa66sqxg5k7zcrvs0fbg9ym1njnxnr28dfmchzhwjvwnfzl"))))
6669 (build-system python-build-system)
6670 (arguments
6671 '(#:tests? #f)) ; circular dependency with zope.testrunner
6672 (propagated-inputs
6673 `(("python-zope-interface" ,python-zope-interface)))
6674 (home-page "http://cheeseshop.python.org/pypi/zope.exceptions")
6675 (synopsis "Zope exceptions")
6676 (description "Zope.exceptions provides general-purpose exception types
6677that have uses outside of the Zope framework.")
3f641af0 6678 (license license:zpl2.1)))
81f2373c
LF
6679
6680(define-public python2-zope-exceptions
6681 (package-with-python2 python-zope-exceptions))
900e3c0e
LF
6682
6683(define-public python-zope-testing
6684 (package
6685 (name "python-zope-testing")
6686 (version "4.5.0")
6687 (source
6688 (origin
6689 (method url-fetch)
6690 (uri (string-append "https://pypi.python.org/packages/source/z"
6691 "/zope.testing/zope.testing-" version ".tar.gz"))
6692 (sha256
6693 (base32
b02f7a21
HG
6694 "1yvglxhzvhl45mndvn9gskx2ph30zz1bz7rrlyfs62fv2pvih90s"))
6695 (modules '((guix build utils)))
6696 (snippet
6697 '(begin
6698 ;; Remove pre-compiled .pyc files backup files from source.
6699 (for-each delete-file (find-files "." "(\\.pyc|~)$"))
6700 #t))))
900e3c0e
LF
6701 (build-system python-build-system)
6702 (native-inputs
6703 `(("python-zope-exceptions" ,python-zope-exceptions)))
6704 (propagated-inputs
6705 `(("python-zope-interface" ,python-zope-interface)))
6706 (home-page "http://pypi.python.org/pypi/zope.testing")
6707 (synopsis "Zope testing helpers")
6708 (description "Zope.testing provides a number of testing utilities for HTML
6709forms, HTTP servers, regular expressions, and more.")
3f641af0 6710 (license license:zpl2.1)))
900e3c0e
LF
6711
6712(define-public python2-zope-testing
6713 (package-with-python2 python-zope-testing))
01614c4f
LF
6714
6715(define-public python-zope-testrunner
6716 (package
6717 (name "python-zope-testrunner")
6718 (version "4.4.9")
6719 (source
6720 (origin
6721 (method url-fetch)
6722 (uri (string-append "https://pypi.python.org/packages/source/z"
6723 "/zope.testrunner/zope.testrunner-"
6724 version ".zip"))
6725 (sha256
6726 (base32
6727 "1r7iqknhh55y45f64mz5hghgvzx34h1i11k350s0avx6q8gznja1"))))
6728 (build-system python-build-system)
6729 (native-inputs
6730 `(("python-six" ,python-six)
6731 ("python-zope-exceptions" ,python-zope-exceptions)
6732 ("python-zope-testing" ,python-zope-testing)
6733 ("unzip" ,unzip)))
6734 (propagated-inputs
6735 `(("python-zope-interface" ,python-zope-interface)))
6736 (home-page "http://pypi.python.org/pypi/zope.testrunner")
6737 (synopsis "Zope testrunner script")
6738 (description "Zope.testrunner provides a script for running Python
6739tests.")
3f641af0 6740 (license license:zpl2.1)))
01614c4f
LF
6741
6742(define-public python2-zope-testrunner
6743 (let ((base (package-with-python2 python-zope-testrunner)))
6744 (package
6745 (inherit base)
6746 (native-inputs
6747 (append (package-native-inputs base)
6748 `(("python2-subunit" ,python2-subunit)
6749 ("python2-mimeparse" ,python2-mimeparse)))))))
6a5c710c
LF
6750
6751(define-public python-zope-i18nmessageid
6752 (package
6753 (name "python-zope-i18nmessageid")
6754 (version "4.0.3")
6755 (source
6756 (origin
6757 (method url-fetch)
6758 (uri (string-append
6759 "https://pypi.python.org/packages/source/z"
6760 "/zope.i18nmessageid/zope.i18nmessageid-"
6761 version ".tar.gz"))
6762 (sha256
6763 (base32
6764 "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml"))))
6765 (build-system python-build-system)
6766 (inputs
6767 `(("python-setuptools" ,python-setuptools)))
6768 (home-page "http://pypi.python.org/pypi/zope.i18nmessageid")
6769 (synopsis "Message identifiers for internationalization")
6770 (description "Zope.i18nmessageid provides facilities for declaring
6771internationalized messages within program source text.")
3f641af0 6772 (license license:zpl2.1)))
6a5c710c
LF
6773
6774(define-public python2-zope-i18nmessageid
6775 (package-with-python2 python-zope-i18nmessageid))
71fb09f3
LF
6776
6777(define-public python-zope-schema
6778 (package
6779 (name "python-zope-schema")
6780 (version "4.4.2")
6781 (source
6782 (origin
6783 (method url-fetch)
6784 (uri (string-append "https://pypi.python.org/packages/source/z"
6785 "/zope.schema/zope.schema-" version ".tar.gz"))
6786 (sha256
6787 (base32
6788 "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank"))))
6789 (build-system python-build-system)
6790 (propagated-inputs
6791 `(("python-zope-event" ,python-zope-event)
6792 ("python-zope-interface" ,python-zope-interface)))
6793 (native-inputs
6794 `(("python-zope-testing" ,python-zope-testing)))
6795 (home-page "http://pypi.python.org/pypi/zope.schema")
6796 (synopsis "Zope data schemas")
6797 (description "Zope.scheme provides extensions to zope.interface for
6798defining data schemas.")
3f641af0 6799 (license license:zpl2.1)))
71fb09f3
LF
6800
6801(define-public python2-zope-schema
6802 (package-with-python2 python-zope-schema))
fbac9b17
LF
6803
6804(define-public python-zope-configuration
6805 (package
6806 (name "python-zope-configuration")
6807 (version "4.0.3")
6808 (source (origin
6809 (method url-fetch)
6810 (uri (string-append "https://pypi.python.org/packages/source/z"
6811 "/zope.configuration/zope.configuration-"
6812 version ".tar.gz"))
6813 (sha256
6814 (base32
6815 "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n"))))
6816 (build-system python-build-system)
6817 (propagated-inputs
6818 `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
6819 ("python-zope-schema" ,python-zope-schema)))
6820 (home-page "http://pypi.python.org/pypi/zope.configuration")
6821 (synopsis "Zope Configuration Markup Language")
6822 (description "Zope.configuration implements ZCML, the Zope Configuration
6823Markup Language.")
3f641af0 6824 (license license:zpl2.1)))
fbac9b17
LF
6825
6826(define-public python2-zope-configuration
6827 (package-with-python2 python-zope-configuration))
2ad52086
LF
6828
6829(define-public python-zope-proxy
6830 (package
6831 (name "python-zope-proxy")
6832 (version "4.1.6")
6833 (source
6834 (origin
6835 (method url-fetch)
6836 (uri (string-append "https://pypi.python.org/packages/source/z"
6837 "/zope.proxy/zope.proxy-" version ".tar.gz"))
6838 (sha256
6839 (base32
6840 "0pqwwmvm1prhwv1ziv9lp8iirz7xkwb6n2kyj36p2h0ppyyhjnm4"))))
6841 (build-system python-build-system)
6842 (propagated-inputs
6843 `(("python-zope-interface" ,python-zope-interface)))
6844 (home-page "http://pypi.python.org/pypi/zope.proxy")
6845 (synopsis "Generic, transparent proxies")
6846 (description "Zope.proxy provides generic, transparent proxies for Python.
6847Proxies are special objects which serve as mostly-transparent wrappers around
6848another object, intervening in the apparent behavior of the wrapped object
6849only when necessary to apply the policy (e.g., access checking, location
6850brokering, etc.) for which the proxy is responsible.")
3f641af0 6851 (license license:zpl2.1)))
2ad52086
LF
6852
6853(define-public python2-zope-proxy
6854 (package-with-python2 python-zope-proxy))
f404b5ea
LF
6855
6856(define-public python-zope-location
6857 (package
6858 (name "python-zope-location")
6859 (version "4.0.3")
6860 (source
6861 (origin
6862 (method url-fetch)
6863 (uri (string-append "https://pypi.python.org/packages/source/z"
6864 "/zope.location/zope.location-" version ".tar.gz"))
6865 (sha256
6866 (base32
6867 "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74"))))
6868 (build-system python-build-system)
6869 (native-inputs
6870 `(("python-zope-proxy" ,python-zope-proxy)
6871 ("python-zope-schema" ,python-zope-schema)))
6872 (home-page "http://pypi.python.org/pypi/zope.location/")
6873 (synopsis "Zope location library")
6874 (description "Zope.location implements the concept of \"locations\" in
6875Zope3, which are are special objects that have a structural location.")
3f641af0 6876 (license license:zpl2.1)))
f404b5ea
LF
6877
6878(define-public python2-zope-location
6879 (package-with-python2 python-zope-location))
d4b77f36
LF
6880
6881(define-public python-zope-security
6882 (package
6883 (name "python-zope-security")
6884 (version "4.0.3")
6885 (source
6886 (origin
6887 (method url-fetch)
6888 (uri (string-append "https://pypi.python.org/packages/source/z"
6889 "/zope.security/zope.security-" version ".tar.gz"))
6890 (sha256
6891 (base32
6892 "14zmf684amc0x32kq05yxnhfqd1cmyhafkw05gn81rn90zjv6ssy"))))
6893 (build-system python-build-system)
6894 (propagated-inputs
6895 `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
6896 ("python-zope-component" ,python-zope-component)
6897 ("python-zope-location" ,python-zope-location)
6898 ("python-zope-proxy" ,python-zope-proxy)
6899 ("python-zope-schema" ,python-zope-schema)
6900 ("python-zope-testrunner" ,python-zope-testrunner)
6901 ("python-zope-testing" ,python-zope-testing)))
6902 (home-page "http://pypi.python.org/pypi/zope.security")
6903 (synopsis "Zope security framework")
6904 (description "Zope.security provides a generic mechanism to implement
6905security policies on Python objects.")
3f641af0 6906 (license license:zpl2.1)))
d4b77f36
LF
6907
6908(define-public python2-zope-security
04417662
EF
6909 (let ((zope-security (package-with-python2 python-zope-security)))
6910 (package (inherit zope-security)
6911 (propagated-inputs
6912 `(("python2-zope-testrunner" ,python2-zope-testrunner)
6913 ,@(alist-delete
6914 "python-zope-testrunner"
6915 (package-propagated-inputs zope-security)))))))
a6b61b27
LF
6916
6917(define-public python-zope-component
6918 (package
6919 (name "python-zope-component")
6920 (version "4.2.2")
6921 (source
6922 (origin
6923 (method url-fetch)
6924 (uri (string-append "https://pypi.python.org/packages/source/z"
6925 "/zope.component/zope.component-" version ".tar.gz"))
6926 (sha256
6927 (base32
6928 "06pqr8m5jv12xjyy5b59hh9anl61cxkzhw9mka33r3nxalmi2b18"))))
6929 (build-system python-build-system)
6930 (arguments
6931 ;; Skip tests due to circular dependency with python-zope-security.
6932 '(#:tests? #f))
6933 (native-inputs
6934 `(("python-zope-testing" ,python-zope-testing)))
6935 (propagated-inputs
6936 `(("python-zope-event" ,python-zope-event)
6937 ("python-zope-interface" ,python-zope-interface)
6938 ("python-zope-i18nmessageid" ,python-zope-i18nmessageid)
6939 ("python-zope-configuration" ,python-zope-configuration)))
6940 (home-page "https://github.com/zopefoundation/zope.component")
6941 (synopsis "Zope Component Architecture")
6942 (description "Zope.component represents the core of the Zope Component
6943Architecture. Together with the zope.interface package, it provides
6944facilities for defining, registering and looking up components.")
3f641af0 6945 (license license:zpl2.1)))
a6b61b27
LF
6946
6947(define-public python2-zope-component
6948 (package-with-python2 python-zope-component))
3859ac12 6949
1ae44b80 6950(define-public python-pythondialog
b5f218be 6951 (package
1ae44b80 6952 (name "python-pythondialog")
42c4b246 6953 (version "3.4.0")
b5f218be
LF
6954 (source
6955 (origin
6956 (method url-fetch)
1ae44b80 6957 (uri (pypi-uri "pythondialog" version))
b5f218be
LF
6958 (sha256
6959 (base32
1ae44b80 6960 "1728ghsran47jczn9bhlnkvk5bvqmmbihabgif5h705b84r1272c"))))
b5f218be
LF
6961 (build-system python-build-system)
6962 (arguments
6963 `(#:phases
6964 (modify-phases %standard-phases
6965 (add-after 'unpack 'patch-path
6966 (lambda* (#:key inputs #:allow-other-keys)
6967 (let* ((dialog (assoc-ref inputs "dialog")))
6968 ;; Since this library really wants to grovel the search path, we
6969 ;; must hardcode dialog's store path into it.
6970 (substitute* "dialog.py"
6971 (("os.getenv\\(\"PATH\", \":/bin:/usr/bin\"\\)")
6972 (string-append "os.getenv(\"PATH\") + \":" dialog "/bin\"")))
6973 #t))))
b5f218be
LF
6974 #:tests? #f)) ; no test suite
6975 (propagated-inputs
6976 `(("dialog" ,dialog)))
6977 (home-page "http://pythondialog.sourceforge.net/")
6978 (synopsis "Python interface to the UNIX dialog utility")
6979 (description "A Python wrapper for the dialog utility. Its purpose is to
6980provide an easy to use, pythonic and comprehensive Python interface to dialog.
6981This allows one to make simple text-mode user interfaces on Unix-like systems")
3f641af0 6982 (license license:lgpl2.1)
1ae44b80
LF
6983 (properties `((python2-variant . ,(delay python2-pythondialog))))))
6984
6985(define-public python2-pythondialog
6986 (let ((base (package-with-python2 (strip-python2-variant python-pythondialog))))
6987 (package
6988 (inherit base)
6989 (version (package-version python-pythondialog))
6990 (source (origin
6991 (method url-fetch)
6992 (uri (pypi-uri "python2-pythondialog" version))
6993 (sha256
6994 (base32
6995 "0d8k7lxk50imdyx85lv8j98i4c93a71iwpapnl1506rpkbm9qvd9")))))))
b5f218be 6996
3859ac12
LF
6997(define-public python-pyrfc3339
6998 (package
6999 (name "python-pyrfc3339")
d9aa097b 7000 (version "1.0")
3859ac12
LF
7001 (source
7002 (origin
7003 (method url-fetch)
d9aa097b 7004 (uri (pypi-uri "pyRFC3339" version))
3859ac12
LF
7005 (sha256
7006 (base32
d9aa097b 7007 "0dgm4l9y8jiax5cp6yxjd2i27cq8h33sh81n1wfbmnmqb32cdywd"))))
3859ac12
LF
7008 (build-system python-build-system)
7009 (propagated-inputs
7010 `(("python-pytz" ,python-pytz)))
7011 (native-inputs
7012 `(("python-nose" ,python-nose)
7013 ("python-setuptools" ,python-setuptools)))
7014 (home-page "https://github.com/kurtraschke/pyRFC3339")
7015 (synopsis "Python timestamp library")
7016 (description "Python library for generating and parsing RFC 3339-compliant
7017timestamps.")
7018 (license license:expat)))
7019
7020(define-public python2-pyrfc3339
7021 (package-with-python2 python-pyrfc3339))
5eea2005
LF
7022
7023(define-public python-werkzeug
7024 (package
7025 (name "python-werkzeug")
0580e383 7026 (version "0.11.11")
5eea2005
LF
7027 (source
7028 (origin
7029 (method url-fetch)
4b47cbfa 7030 (uri (pypi-uri "Werkzeug" version))
5eea2005
LF
7031 (sha256
7032 (base32
0580e383 7033 "1rgpq8a2qv26d75v9j3b074inirlyy6y4b5x4rxblp202jy4cb77"))))
5eea2005
LF
7034 (build-system python-build-system)
7035 (native-inputs
7036 `(("python-pytest" ,python-pytest)))
7037 (home-page "http://werkzeug.pocoo.org/")
7038 (synopsis "Utilities for WSGI applications")
7039 (description "One of the most advanced WSGI utility modules. It includes a
7040powerful debugger, full-featured request and response objects, HTTP utilities to
7041handle entity tags, cache control headers, HTTP dates, cookie handling, file
7042uploads, a powerful URL routing system and a bunch of community-contributed
7043addon modules.")
3f641af0 7044 (license license:x11)))
5eea2005
LF
7045
7046(define-public python2-werkzeug
7047 (package-with-python2 python-werkzeug))
99fffa8a
LF
7048
7049(define-public python-configobj
7050 (package
7051 (name "python-configobj")
7052 (version "5.0.6")
7053 (source (origin
7054 (method url-fetch)
7055 (uri (string-append
7056 "https://pypi.python.org/packages/source/c/configobj/"
7057 "configobj-" version ".tar.gz"))
7058 (sha256
7059 (base32
7060 "00h9rcmws03xvdlfni11yb60bz3kxfvsj6dg6nrpzj71f03nbxd2"))
7061 ;; Patch setup.py so it looks for python-setuptools, which is
7062 ;; required to parse the keyword 'install_requires' in setup.py.
fc1adab1 7063 (patches (search-patches "python-configobj-setuptools.patch"))))
99fffa8a
LF
7064 (build-system python-build-system)
7065 (native-inputs
7066 `(("python-setuptools" ,python-setuptools)
7067 ("python-six" ,python-six)))
7068 (synopsis "Config file reading, writing and validation")
7069 (description "ConfigObj is a simple but powerful config file reader and
7070writer: an ini file round tripper. Its main feature is that it is very easy to
7071use, with a straightforward programmer’s interface and a simple syntax for
7072config files.")
7073 (home-page "https://github.com/DiffSK/configobj")
3f641af0 7074 (license license:bsd-3)))
99fffa8a
LF
7075
7076(define-public python2-configobj
7077 (package-with-python2 python-configobj))
79e8a291
LF
7078
7079(define-public python-configargparse
7080 (package
7081 (name "python-configargparse")
7082 (version "0.10.0")
7083 (source (origin
7084 (method url-fetch)
7085 (uri (string-append
7086 "https://pypi.python.org/packages/source/C/ConfigArgParse/"
7087 "ConfigArgParse-" version ".tar.gz"))
7088 (sha256
7089 (base32
7090 "19wh919gbdbzxzpagg52q3lm62yicm95ddlcx77dyjc1slyshl1v"))))
7091 (build-system python-build-system)
7092 (arguments
7093 ;; FIXME: Bug in test suite filed upstream:
7094 ;; https://github.com/bw2/ConfigArgParse/issues/32
7095 '(#:tests? #f))
7096 (synopsis "Replacement for argparse")
7097 (description "A drop-in replacement for argparse that allows options to also
7098be set via config files and/or environment variables.")
7099 (home-page "https://github.com/bw2/ConfigArgParse")
7100 (license license:expat)))
7101
7102(define-public python2-configargparse
7103 (package-with-python2 python-configargparse))
ab41f979
LF
7104
7105(define-public python-ndg-httpsclient
7106 (package
7107 (name "python-ndg-httpsclient")
7108 (version "0.4.0")
7109 (source (origin
7110 (method url-fetch)
7111 (uri (string-append
7112 "https://pypi.python.org/packages/source/n/ndg-httpsclient/"
7113 "ndg_httpsclient-" version ".tar.gz"))
7114 (sha256
7115 (base32
7116 "0x32ibixm3vv5m9xfk83xsqm8xcqw4dd0khbh6qbri6rxgymbhg8"))))
7117 (build-system python-build-system)
a39cc016
LF
7118 (arguments
7119 '(;; The tests appear to require networking.
7120 #:tests? #f))
ab41f979
LF
7121 (propagated-inputs
7122 `(("python-pyopenssl" ,python-pyopenssl)))
7123 (synopsis "HTTPS support for Python's httplib and urllib2")
7124 (description "This is a HTTPS client implementation for httplib and urllib2
7125based on PyOpenSSL. PyOpenSSL provides a more fully featured SSL implementation
7126over the default provided with Python and importantly enables full verification
7127of the SSL peer.")
7128 (home-page "https://github.com/cedadev/ndg_httpsclient/")
3f641af0 7129 (license license:bsd-3)))
ab41f979
LF
7130
7131;; python2-openssl requires special care, so package-with-python2 is
7132;; insufficient.
7133(define-public python2-ndg-httpsclient
7134 (package (inherit python-ndg-httpsclient)
7135 (name "python2-ndg-httpsclient")
7136 (arguments `(#:python ,python-2))
7137 (propagated-inputs
7138 `(("python2-pyopenssl" ,python2-pyopenssl)))))
03f964a5
CM
7139
7140(define-public python-contextlib2
7141 (package
7142 (name "python-contextlib2")
7143 (version "0.4.0")
7144 (source
7145 (origin
7146 (method url-fetch)
7147 (uri (pypi-uri "contextlib2" version))
7148 (sha256
7149 (base32
7150 "0cmp131dlh0d0zvw0aza1zd13glvngzk8lb4avks0hm7yxwdr9am"))))
7151 (build-system python-build-system)
7152 (arguments
7153 `(#:phases
7154 (modify-phases %standard-phases
7155 (replace 'check
7156 (lambda _ (zero?
7157 (system*
b3546174 7158 "python" "test_contextlib2.py" "-v")))))))
03f964a5
CM
7159 (home-page "http://contextlib2.readthedocs.org/")
7160 (synopsis "Tools for decorators and context managers")
7161 (description "This module is primarily a backport of the Python
71623.2 contextlib to earlier Python versions. Like contextlib, it
7163provides utilities for common tasks involving decorators and context
7164managers. It also contains additional features that are not part of
7165the standard library.")
3f641af0 7166 (license license:psfl)))
03f964a5
CM
7167
7168(define-public python2-contextlib2
7169 (package-with-python2 python-contextlib2))
210bf497
DT
7170
7171(define-public python-texttable
7172 (package
7173 (name "python-texttable")
7174 (version "0.8.4")
7175 (source
7176 (origin
7177 (method url-fetch)
7178 (uri (pypi-uri "texttable" version))
7179 (sha256
7180 (base32
7181 "0bkhs4dx9s6g7fpb969hygq56hyz4ncfamlynw72s0n6nqfbd1w5"))))
7182 (build-system python-build-system)
7183 (arguments '(#:tests? #f)) ; no tests
7184 (home-page "https://github.com/foutaise/texttable/")
7185 (synopsis "Python module for creating simple ASCII tables")
7186 (description "Texttable is a Python module for creating simple ASCII
7187tables.")
3f641af0 7188 (license license:lgpl2.1+)))
210bf497
DT
7189
7190(define-public python2-texttable
7191 (package-with-python2 python-texttable))
67c52bb3
DT
7192
7193(define-public python-websocket-client
7194 (package
7195 (name "python-websocket-client")
6b810897 7196 (version "0.37.0")
67c52bb3
DT
7197 (source
7198 (origin
7199 (method url-fetch)
6b810897 7200 (uri (pypi-uri "websocket_client" version))
67c52bb3
DT
7201 (sha256
7202 (base32
6b810897 7203 "0h9glp1jll3z76ly3kg08aqgxqk0a68p4zi9yn50353bh5nj92v7"))))
67c52bb3
DT
7204 (build-system python-build-system)
7205 (native-inputs
7206 `(("python-six" ,python-six))) ; for tests
7207 (inputs
7208 `(("python-setuptools" ,python-setuptools)))
7209 (home-page "https://github.com/liris/websocket-client")
7210 (synopsis "WebSocket client for Python")
7211 (description "The Websocket-client module provides the low level APIs for
7212WebSocket usage in Python programs.")
3f641af0 7213 (license license:lgpl2.1+)))
67c52bb3
DT
7214
7215(define-public python2-websocket-client
7216 (package-with-python2 python-websocket-client))
5c6eea2a
LF
7217
7218(define-public python-atomicwrites
7219 (package
7220 (name "python-atomicwrites")
4e92d76a 7221 (version "1.1.0")
5c6eea2a
LF
7222 (source (origin
7223 (method url-fetch)
7224 (uri (pypi-uri "atomicwrites" version))
7225 (sha256
7226 (base32
4e92d76a 7227 "1s01dci8arsl9d9vr5nz1fk9znldp1z3l4yl43f0c27z12b8yxl0"))))
5c6eea2a
LF
7228 (build-system python-build-system)
7229 (synopsis "Atomic file writes in Python")
7230 (description "Library for atomic file writes using platform dependent tools
8f65585b 7231for atomic file system operations.")
5c6eea2a 7232 (home-page "https://github.com/untitaker/python-atomicwrites")
9bb6d184
LF
7233 (license license:expat)
7234 (properties `((python2-variant . ,(delay python2-atomicwrites))))))
7235
7236(define-public python2-atomicwrites
7237 (package (inherit (package-with-python2
7238 (strip-python2-variant python-atomicwrites)))
7239 (native-inputs
7240 `(("python2-setuptools" ,python2-setuptools)))))
561bb3cb
LF
7241
7242(define-public python-requests-toolbelt
7243 (package
7244 (name "python-requests-toolbelt")
c02af1c8 7245 (version "0.6.2")
561bb3cb
LF
7246 (source (origin
7247 (method url-fetch)
c02af1c8
LF
7248 (uri (string-append
7249 "https://pypi.python.org/packages/"
7250 "e1/a4/a94c037bc72ad70441aff1403d3243510d2542ddca7759faaeffeb11aefe/"
7251 "requests-toolbelt-" version ".tar.gz"))
561bb3cb
LF
7252 (sha256
7253 (base32
c02af1c8 7254 "15q9nrgp85nqlr4kdz1zvj8z2npafi2sr12y7fqgxbkq28j1aci6"))))
561bb3cb 7255 (build-system python-build-system)
759aadd4
LF
7256 (native-inputs
7257 `(("python-betamax" ,python-betamax)
7258 ("python-mock" ,python-mock)
7259 ("python-pytest" ,python-pytest)))
561bb3cb
LF
7260 (propagated-inputs
7261 `(("python-requests" ,python-requests)))
7262 (synopsis "Extensions to python-requests")
7263 (description "This is a toolbelt of useful classes and functions to be used
7264with python-requests.")
7265 (home-page "https://github.com/sigmavirus24/requests-toolbelt")
3f641af0 7266 (license license:asl2.0)))
d1deb90b
LF
7267
7268(define-public python-click-threading
7269 (package
7270 (name "python-click-threading")
3d2e0dbc 7271 (version "0.2.0")
d1deb90b
LF
7272 (source (origin
7273 (method url-fetch)
3d2e0dbc
LF
7274 (uri (string-append
7275 "https://pypi.python.org/packages/"
7276 "fe/b7/e7f609d18a2a351cb71616adcf54df1acd82f83cb9b5936935a4d20e2c23/"
7277 "click-threading-" version ".tar.gz"))
d1deb90b
LF
7278 (sha256
7279 (base32
3d2e0dbc 7280 "18bcqikxwb3drb8rf60cclxkxw52521b38ax3byah6j8cn8y9p4j"))))
d1deb90b
LF
7281 (build-system python-build-system)
7282 (propagated-inputs
7283 `(("python-click" ,python-click)))
7284 (synopsis "Utilities for multithreading in Click")
7285 (description "This package provides utilities for multithreading in Click
7286applications.")
7287 (home-page "https://github.com/click-contrib/click-threading")
7288 (license license:expat)))
7b17cab9
LF
7289
7290(define-public python-click-log
7291 (package
7292 (name "python-click-log")
a9da8fec 7293 (version "0.1.3")
7b17cab9
LF
7294 (source (origin
7295 (method url-fetch)
7296 (uri (pypi-uri "click-log" version))
7297 (sha256
7298 (base32
a9da8fec 7299 "0kdd1vminxpcfczxl2kkf285n0dr1gxh2cdbx1p6vkj7b7bci3gx"))))
7b17cab9
LF
7300 (build-system python-build-system)
7301 (propagated-inputs
7302 `(("python-click" ,python-click)))
7303 (synopsis "Logging for click applications")
7304 (description "This package provides a Python library for logging Click
7305applications.")
7306 (home-page "https://github.com/click-contrib/click-log")
7307 (license license:expat)))
7b3a4ee4
LF
7308
7309(define-public python-apipkg
7310 (package
7311 (name "python-apipkg")
7312 (version "1.4")
7313 (source (origin
7314 (method url-fetch)
7315 (uri (pypi-uri "apipkg" version))
7316 (sha256
7317 (base32
7318 "1iks5701qnp3dlr3q1d9qm68y2plp2m029irhpz92a44psfkjf1f"))))
7319 (build-system python-build-system)
b43bab3c 7320 (inputs
7b3a4ee4
LF
7321 `(("python-pytest" ,python-pytest)))
7322 (synopsis "Namespace control and lazy-import mechanism")
7323 (description "With apipkg you can control the exported namespace of a Python
7324package and greatly reduce the number of imports for your users. It is a small
7325pure Python module that works on virtually all Python versions.")
7326 (home-page "https://bitbucket.org/hpk42/apipkg")
e08739c3
CAW
7327 (license license:expat)
7328 (properties `((python2-variant . ,(delay python2-apipkg))))))
7329
7330(define-public python2-apipkg
7331 (package
7332 (inherit (package-with-python2
7333 (strip-python2-variant python-apipkg)))
7334 (native-inputs
7335 `(("python2-setuptools" ,python2-setuptools)))))
848964fe
LF
7336
7337(define-public python-execnet
7338 (package
7339 (name "python-execnet")
7340 (version "1.4.1")
7341 (source (origin
7342 (method url-fetch)
7343 (uri (pypi-uri "execnet" version))
7344 (sha256
7345 (base32
7346 "1rpk1vyclhg911p3hql0m0nrpq7q7mysxnaaw6vs29cpa6kx8vgn"))))
7347 (build-system python-build-system)
ca0eee9d
LF
7348 (arguments
7349 `(;; 2 failed, 275 passed, 670 skipped, 4 xfailed
7350 ;; The two test failures are caused by the lack of an `ssh` executable.
7351 ;; The test suite can be run with pytest after the 'install' phase.
7352 #:tests? #f))
848964fe 7353 (native-inputs
ca0eee9d
LF
7354 `(("python-pytest" ,python-pytest)
7355 ("python-setuptools-scm" ,python-setuptools-scm)))
584d068f 7356 (inputs
848964fe
LF
7357 `(("python-apipkg" ,python-apipkg)))
7358 (synopsis "Rapid multi-Python deployment")
7359 (description "Execnet provides a share-nothing model with
7360channel-send/receive communication for distributing execution across many
7361Python interpreters across version, platform and network barriers. It has a
7362minimal and fast API targetting the following uses:
7363@enumerate
7364@item distribute tasks to (many) local or remote CPUs
7365@item write and deploy hybrid multi-process applications
7366@item write scripts to administer multiple environments
7367@end enumerate")
7368 (home-page "http://codespeak.net/execnet/")
16c84f90
CAW
7369 (license license:expat)
7370 (properties `((python2-variant . ,(delay python2-execnet))))))
7371
7372(define-public python2-execnet
7373 (let ((execnet (package-with-python2
7374 (strip-python2-variant python-execnet))))
7375 (package
7376 (inherit execnet)
7377 (native-inputs
7378 `(("python2-setuptools" ,python2-setuptools)
7379 ,@(package-native-inputs execnet))))))
6720dbb4
LF
7380
7381;;; The software provided by this package was integrated into pytest 2.8.
7382(define-public python-pytest-cache
7383 (package
7384 (name "python-pytest-cache")
7385 (version "1.0")
7386 (source (origin
7387 (method url-fetch)
7388 (uri (pypi-uri "pytest-cache" version))
7389 (sha256
7390 (base32
7391 "1a873fihw4rhshc722j4h6j7g3nj7xpgsna9hhg3zn6ksknnhx5y"))))
7392 (build-system python-build-system)
630d938f
EF
7393 (inputs
7394 `(("python-apipkg" ,python-apipkg)
7395 ("python-execnet" ,python-execnet)
7396 ("python-py" ,python-py)
7397 ("python-pytest" ,python-pytest)))
6720dbb4
LF
7398 (synopsis "Py.test plugin with mechanisms for caching across test runs")
7399 (description "The pytest-cache plugin provides tools to rerun failures from
7400the last py.test invocation.")
7401 (home-page "https://bitbucket.org/hpk42/pytest-cache/")
0adc21c2
EF
7402 (license license:expat)
7403 (properties `((python2-variant . ,(delay python2-pytest-cache))))))
7404
7405(define-public python2-pytest-cache
7406 (let ((pytest-cache (package-with-python2
7407 (strip-python2-variant python-pytest-cache))))
7408 (package
7409 (inherit pytest-cache)
7410 (native-inputs
7411 `(("python2-setuptools" ,python2-setuptools)
7412 ,@(package-native-inputs pytest-cache))))))
d7e729fe
LF
7413
7414(define-public python-pytest-localserver
7415 (package
7416 (name "python-pytest-localserver")
29f20168 7417 (version "0.3.5")
d7e729fe
LF
7418 (source (origin
7419 (method url-fetch)
29f20168 7420 (uri (pypi-uri "pytest-localserver" version))
d7e729fe
LF
7421 (sha256
7422 (base32
29f20168 7423 "0dvqspjr6va55zwmnnc2mmpqc7mm65kxig9ya44x1z8aadzxpa4p"))))
d7e729fe
LF
7424 (build-system python-build-system)
7425 (arguments
7426 `(#:phases (modify-phases %standard-phases
7427 (replace 'check
7428 (lambda _
7429 (zero? (system* "py.test" "--genscript=runtests.py"))
7430 (zero? (system* "py.test")))))))
7431 (native-inputs
d7e729fe
LF
7432 `(("python-pytest" ,python-pytest)
7433 ("python-requests" ,python-requests)
9ba40f05
EF
7434 ("python-six" ,python-six)))
7435 (inputs
7436 `(("python-werkzeug" ,python-werkzeug)))
d7e729fe
LF
7437 (synopsis "Py.test plugin to test server connections locally")
7438 (description "Pytest-localserver is a plugin for the pytest testing
7439framework which enables you to test server connections locally.")
7440 (home-page "https://pypi.python.org/pypi/pytest-localserver")
7441 (license license:expat)))
28cecbb7
LF
7442
7443(define-public python-wsgi-intercept
7444 (package
7445 (name "python-wsgi-intercept")
909fbd2b 7446 (version "1.2.2")
28cecbb7
LF
7447 (source (origin
7448 (method url-fetch)
909fbd2b
LF
7449 (uri (string-append
7450 "https://pypi.python.org/packages/"
7451 "38/76/ebcbc24d0cb77db34520a3ca6ed1bd43ace17d182bbd8dd7d976f1c176fb/"
7452 "wsgi_intercept-" version ".tar.gz"))
28cecbb7
LF
7453 (sha256
7454 (base32
909fbd2b 7455 "0kjj2v2dvmnpdd5h5gk9rzz0f54rhjb0yiz3zg65bmp65slfw65d"))))
28cecbb7
LF
7456 (build-system python-build-system)
7457 (native-inputs
9d813ec1 7458 `(("python-pytest" ,python-pytest)
8757f050
LF
7459 ("python-six" ,python-six)
7460 ("python-urllib3" ,python-urllib3)))
28cecbb7
LF
7461 (propagated-inputs
7462 `(("python-httplib2" ,python-httplib2)
7463 ("python-requests" ,python-requests)))
7464 (synopsis "Puts a WSGI application in place of a real URI for testing")
7465 (description "Wsgi_intercept installs a WSGI application in place of a real
7466URI for testing. Testing a WSGI application normally involves starting a
7467server at a local host and port, then pointing your test code to that address.
7468Instead, this library lets you intercept calls to any specific host/port
7469combination and redirect them into a WSGI application importable by your test
7470program. Thus, you can avoid spawning multiple processes or threads to test
7471your Web app.")
7472 (home-page "https://github.com/cdent/wsgi-intercept")
7473 (license license:expat)))
89b8a551
LF
7474
7475(define-public python-pytest-xprocess
7476 (package
7477 (name "python-pytest-xprocess")
7478 (version "0.9.1")
7479 (source (origin
7480 (method url-fetch)
7481 (uri (pypi-uri "pytest-xprocess" version))
7482 (sha256
7483 (base32
7484 "17zlql1xqw3ywcgwwbqmw633aly99lab12hm02asr8awvg5603pp"))))
7485 (build-system python-build-system)
7486 (propagated-inputs
7487 `(("python-pytest" ,python-pytest)
7488 ("python-pytest-cache" ,python-pytest-cache)
7489 ("python-psutil" ,python-psutil)))
7490 (synopsis "Pytest plugin to manage external processes across test runs")
7491 (description "Pytest-xprocess is an experimental py.test plugin for managing
7492processes across test runs.")
7493 (home-page "https://bitbucket.org/pytest-dev/pytest-xprocess")
7494 (license license:expat)))
5c299bf0
LF
7495
7496(define-public python-icalendar
7497 (package
7498 (name "python-icalendar")
f2f53353 7499 (version "3.10")
5c299bf0
LF
7500 (source (origin
7501 (method url-fetch)
7502 (uri (pypi-uri "icalendar" version))
7503 (sha256
7504 (base32
f2f53353 7505 "01amnk3621s7fagfla86npd25knbqirchg7h1jpqxqp103d02bs7"))))
5c299bf0
LF
7506 (build-system python-build-system)
7507 (propagated-inputs
7508 `(("python-dateutil-2" ,python-dateutil-2)
7509 ("python-pytz" ,python-pytz)))
7510 (synopsis "Python library for parsing iCalendar files")
7511 (description "The icalendar package is a parser/generator of iCalendar
7512files for use with Python.")
7513 (home-page "https://github.com/collective/icalendar")
3f641af0 7514 (license license:bsd-2)))
6bbbb53e
LF
7515
7516(define-public python-sphinxcontrib-newsfeed
7517 (package
7518 (name "python-sphinxcontrib-newsfeed")
7519 (version "0.1.4")
7520 (source (origin
7521 (method url-fetch)
7522 (uri (pypi-uri "sphinxcontrib-newsfeed" version))
7523 (sha256
7524 (base32
7525 "1d7gam3mn8v4in4p16yn3v10vps7nnaz6ilw99j4klij39dqd37p"))))
7526 (build-system python-build-system)
7527 (propagated-inputs
7528 `(("python-docutils" ,python-docutils)
7529 ("python-sphinx" ,python-sphinx)))
7530 (synopsis "News Feed extension for Sphinx")
7531 (description "Sphinxcontrib-newsfeed is an extension for adding a simple
7532Blog, News or Announcements section to a Sphinx website.")
7533 (home-page "https://bitbucket.org/prometheus/sphinxcontrib-newsfeed")
3f641af0 7534 (license license:bsd-2)))
2216e15c
SB
7535
7536(define-public python-args
7537 (package
7538 (name "python-args")
7539 (version "0.1.0")
7540 (source (origin
7541 (method url-fetch)
7542 (uri (pypi-uri "args" version))
7543 (sha256
7544 (base32
7545 "057qzi46h5dmxdqknsbrssn78lmqjlnm624iqdhrnpk26zcbi1d7"))))
7546 (build-system python-build-system)
7547 (inputs
7548 `(("python-setuptools" ,python-setuptools)))
7549 (home-page "https://github.com/kennethreitz/args")
7550 (synopsis "Command-line argument parser")
7551 (description
7552 "This library provides a Python module to parse command-line arguments.")
3f641af0 7553 (license license:bsd-3)))
2216e15c
SB
7554
7555(define-public python2-args
7556 (package-with-python2 python-args))
c06a3de9
SB
7557
7558(define-public python-clint
7559 (package
7560 (name "python-clint")
7561 (version "0.5.1")
7562 (source (origin
7563 (method url-fetch)
7564 (uri (pypi-uri "clint" version))
7565 (sha256
7566 (base32
7567 "1an5lkkqk1zha47198p42ji3m94xmzx1a03dn7866m87n4r4q8h5"))))
7568 (build-system python-build-system)
7569 (inputs
7570 `(("python-args" ,python-args)
7571 ("python-setuptools" ,python-setuptools)))
7572 (home-page "https://github.com/kennethreitz/clint")
7573 (synopsis "Command-line interface tools")
7574 (description
7575 "Clint is a Python module filled with a set of tools for developing
7576command-line applications, including tools for colored and indented
7577output, progress bar display, and pipes.")
3f641af0 7578 (license license:isc)))
c06a3de9
SB
7579
7580(define-public python2-clint
7581 (package-with-python2 python-clint))
4ecdeef8
SB
7582
7583(define-public python-astor
7584 (package
7585 (name "python-astor")
7586 (version "0.5")
7587 (source (origin
7588 (method url-fetch)
7589 (uri (pypi-uri "astor" version))
7590 (sha256
7591 (base32
7592 "1fdafq5hkis1fxqlmhw0sn44zp2ar46nxhbc22cvwg7hsd8z5gsa"))))
7593 (build-system python-build-system)
7594 (inputs
7595 `(("python-setuptools" ,python-setuptools)))
7596 (home-page "https://github.com/berkerpeksag/astor")
7597 (synopsis "Read and write Python ASTs")
7598 (description
7599 "Astor is designed to allow easy manipulation of Python source via the
7600Abstract Syntax Tree.")
3f641af0 7601 (license license:bsd-3)))
4ecdeef8
SB
7602
7603(define-public python2-astor
7604 (package-with-python2 python-astor))
e224b7d0
SB
7605
7606(define-public python-rply
7607 (package
7608 (name "python-rply")
7609 (version "0.7.4")
7610 (source (origin
7611 (method url-fetch)
7612 (uri (pypi-uri "rply" version))
7613 (sha256
7614 (base32
7615 "12rp1d9ba7nvd5rhaxi6xzx1rm67r1k1ylsrkzhpwnphqpb06cvj"))))
7616 (build-system python-build-system)
7617 (inputs
7618 `(("python-appdirs" ,python-appdirs)
7619 ("python-setuptools" ,python-setuptools)))
7620 (home-page "https://github.com/alex/rply")
7621 (synopsis "Parser generator for Python")
7622 (description
7623 "This package provides a pure Python based parser generator, that also
7624works with RPython. It is a more-or-less direct port of David Bazzley's PLY,
7625with a new public API, and RPython support.")
3f641af0 7626 (license license:bsd-3)))
e224b7d0
SB
7627
7628(define-public python2-rply
7629 (package-with-python2 python-rply))
c3e919d7
SB
7630
7631(define-public python-hy
7632 (package
7633 (name "python-hy")
7634 (version "0.11.1")
7635 (source (origin
7636 (method url-fetch)
7637 (uri (pypi-uri "hy" version))
7638 (sha256
7639 (base32
7640 "1msqv747iz12r73mz4qvsmlwkddwjvrahlrk7ysrcz07h7dsscxs"))))
7641 (build-system python-build-system)
7642 (inputs
7643 `(("python-astor" ,python-astor)
7644 ("python-clint" ,python-clint)
7645 ("python-rply" ,python-rply)
7646 ("python-setuptools" ,python-setuptools)))
7647 (home-page "http://hylang.org/")
7648 (synopsis "Lisp frontend to Python")
7649 (description
7650 "Hy is a dialect of Lisp that's embedded in Python. Since Hy transforms
7651its Lisp code into the Python Abstract Syntax Tree, you have the whole world of
7652Python at your fingertips, in Lisp form.")
7653 (license license:expat)))
7654
7655(define-public python2-hy
7656 (package-with-python2 python-hy))
7a5b944e 7657
81f7f297
EF
7658(define-public python-rauth
7659 (package
7660 (name "python-rauth")
7661 (version "0.7.2")
7662 (source
7663 (origin
7664 (method url-fetch)
7665 (uri (pypi-uri "rauth" version))
7666 (sha256
7667 (base32
7668 "00pq7zw429hhza9c0qzxiqp77m653jv09z92nralnmzwdf6pzicf"))))
7669 (build-system python-build-system)
7670 (arguments
7671 `(#:test-target "check"))
0848d8d3 7672 (inputs
81f7f297
EF
7673 `(("python-requests" ,python-requests)))
7674 (home-page "https://github.com/litl/rauth")
7675 (synopsis "Python library for OAuth 1.0/a, 2.0, and Ofly")
7676 (description
7677 "Rauth is a Python library for OAuth 1.0/a, 2.0, and Ofly. It also
7678provides service wrappers for convenient connection initialization and
7679authenticated session objects providing things like keep-alive.")
0848d8d3
EF
7680 (license license:expat)
7681 (properties `((python2-variant . ,(delay python2-rauth))))))
81f7f297
EF
7682
7683(define-public python2-rauth
0848d8d3
EF
7684 (let ((base (package-with-python2 (strip-python2-variant python-rauth))))
7685 (package
7686 (inherit base)
7687 (native-inputs `(("python2-setuptools" ,python2-setuptools)
7688 ("python2-unittest2" ,python2-unittest2)
7689 ,@(package-native-inputs base))))))
81f7f297 7690
1abe448d
EF
7691(define-public python2-functools32
7692 (package
7693 (name "python2-functools32")
7694 (version "3.2.3-2")
7695 (source
7696 (origin
7697 (method url-fetch)
7698 (uri (pypi-uri "functools32" version))
7699 (sha256
7700 (base32
7701 "0v8ya0b58x47wp216n1zamimv4iw57cxz3xxhzix52jkw3xks9gn"))))
7702 (build-system python-build-system)
7703 (arguments
7704 `(#:python ,python-2
7705 #:tests? #f)) ; no test target
7706 (native-inputs
7707 `(("python2-setuptools" ,python2-setuptools)))
7708 (home-page "https://github.com/MiCHiLU/python-functools32")
7709 (synopsis
7710 "Backport of the functools module from Python 3.2.3")
7711 (description
7712 "This package is a backport of the @code{functools} module from Python
77133.2.3 for use with older versions of Python and PyPy.")
7714 (license license:expat)))
7715
877889f3 7716(define-public python2-futures
7a5b944e 7717 (package
877889f3 7718 (name "python2-futures")
7a5b944e
EF
7719 (version "3.0.3")
7720 (source
7721 (origin
7722 (method url-fetch)
7723 (uri (pypi-uri "futures" version))
7724 (sha256
7725 (base32
7726 "1vcb34dqhzkhbq1957vdjszhhm5y3j9ba88dgwhqx2zynhmk9qig"))))
7727 (build-system python-build-system)
877889f3 7728 (arguments `(#:python ,python-2))
7a5b944e 7729 (native-inputs
877889f3 7730 `(("python2-setuptools" ,python2-setuptools)))
7a5b944e
EF
7731 (home-page "https://github.com/agronholm/pythonfutures")
7732 (synopsis
7733 "Backport of the concurrent.futures package from Python 3.2")
7734 (description
7735 "The concurrent.futures module provides a high-level interface for
7736asynchronously executing callables. This package backports the
7737concurrent.futures package from Python 3.2")
3f641af0 7738 (license license:bsd-3)))
7a5b944e 7739
5cb2fe44
EF
7740(define-public python-promise
7741 (package
7742 (name "python-promise")
7743 (version "0.4.2")
7744 (source
7745 (origin
7746 (method url-fetch)
7747 (uri (pypi-uri "promise" version))
7748 (sha256
7749 (base32
7750 "1k19ms8l3d5jzjh557rgkxb5sg4mqgfc315rn4hx1z3n8qq6lr3h"))))
7751 (build-system python-build-system)
7752 ;; Tests wants python-futures, which is a python2 only program, and
7753 ;; can't be found by python-promise at test time.
7754 (arguments `(#:tests? #f))
7755 (home-page "https://github.com/syrusakbary/promise")
7756 (synopsis "Promises/A+ implementation for Python")
7757 (description
7758 "Promises/A+ implementation for Python")
7759 (properties `((python2-variant . ,(delay python2-promise))))
7760 (license license:expat)))
7761
7762(define-public python2-promise
7763 (let ((promise (package-with-python2
7764 (strip-python2-variant python-promise))))
7765 (package (inherit promise)
7766 (arguments (substitute-keyword-arguments (package-arguments promise)
7767 ((#:tests? _) #t)))
7768 (native-inputs
7769 `(("python2-futures" ,python2-futures)
7770 ("python2-pytest" ,python2-pytest)
7771 ("python2-setuptools" ,python2-setuptools)
7772 ,@(package-native-inputs promise))))))
7773
c18f6368
EF
7774(define-public python-urllib3
7775 (package
7776 (name "python-urllib3")
7777 (version "1.13.1")
7778 (source
7779 (origin
7780 (method url-fetch)
7781 (uri (pypi-uri "urllib3" version))
7782 (sha256
7783 (base32
7784 "10rrbr6c6k7j5dvfsyj4b2gsgxg9gggnn708qixf6ll57xqivfkf"))))
7785 (build-system python-build-system)
7786 (arguments `(#:tests? #f))
7787 (native-inputs
7788 `(("python-setuptools" ,python-setuptools)
7789 ;; some packages for tests
7790 ("python-nose" ,python-nose)
7791 ("python-mock" ,python-mock)
7792 ("python-tornado" ,python-tornado)))
7793 (propagated-inputs
7794 `(;; packages for https security
7795 ("python-certifi" ,python-certifi)
7796 ("python-ndg-httpsclient" ,python-ndg-httpsclient)
7797 ("python-pyasn1" ,python-pyasn1)
7798 ("python-pyopenssl" ,python-pyopenssl)))
7799 (home-page "http://urllib3.readthedocs.org/")
7800 (synopsis "HTTP library with thread-safe connection pooling")
7801 (description
7802 "Urllib3 supports features left out of urllib and urllib2 libraries. It
7803can reuse the same socket connection for multiple requests, it can POST files,
7804supports url redirection and retries, and also gzip and deflate decoding.")
7805 (license license:expat)))
7806
7807(define-public python2-urllib3
7808 (package-with-python2 python-urllib3))
2b2f2fc1
DT
7809
7810(define-public python-colorama
7811 (package
7812 (name "python-colorama")
7813 (version "0.3.3")
7814 (source
7815 (origin
7816 (method url-fetch)
7817 (uri (pypi-uri "colorama" version))
7818 (sha256
7819 (base32
7820 "1716z9pq1r5ys3nkg7wdrb3h2f9rmd0zdxpxzmx3bgwgf6xg48gb"))))
7821 (build-system python-build-system)
7822 (inputs
7823 `(("python-setuptools" ,python-setuptools)))
7824 (synopsis "colored terminal text rendering for Python")
7825 (description "Colorama is a Python library for rendering colored terminal
7826text.")
7827 (home-page "https://pypi.python.org/pypi/colorama")
3f641af0 7828 (license license:bsd-3)))
2b2f2fc1
DT
7829
7830(define-public python2-colorama
7831 (package-with-python2 python-colorama))
f5bcec6e
DT
7832
7833(define-public python-rsa
7834 (package
7835 (name "python-rsa")
ecd68c53 7836 (version "3.4.2")
f5bcec6e
DT
7837 (source
7838 (origin
7839 (method url-fetch)
7840 (uri (pypi-uri "rsa" version))
7841 (sha256
7842 (base32
ecd68c53 7843 "1dcxvszbikgzh99ybdc7jq0zb9wspy2ds8z9mjsqiyv3q884xpr5"))))
f5bcec6e
DT
7844 (build-system python-build-system)
7845 (inputs
7846 `(("python-pyasn1" ,python-pyasn1)
7847 ("python-setuptools" ,python-setuptools)))
7848 (synopsis "Pure-Python RSA implementation")
7849 (description "Python-RSA is a pure-Python RSA implementation. It supports
7850encryption and decryption, signing and verifying signatures, and key
7851generation according to PKCS#1 version 1.5. It can be used as a Python
7852library as well as on the command line.")
7853 (home-page "http://stuvel.eu/rsa")
3f641af0 7854 (license license:asl2.0)))
f5bcec6e
DT
7855
7856(define-public python2-rsa
7857 (package-with-python2 python-rsa))
c0aacfa5
DT
7858
7859(define-public python-pluggy
7860 (package
7861 (name "python-pluggy")
7862 (version "0.3.1")
7863 (source
7864 (origin
7865 (method url-fetch)
7866 (uri (pypi-uri "pluggy" version))
7867 (sha256
7868 (base32
7869 "18qfzfm40bgx672lkg8q9x5hdh76n7vax99aank7vh2nw21wg70m"))))
7870 (build-system python-build-system)
7871 (inputs
7872 `(("python-setuptools" ,python-setuptools)))
7873 (synopsis "Plugin and hook calling mechanism for Python")
7874 (description "Pluggy is an extraction of the plugin manager as used by
7875Pytest but stripped of Pytest specific details.")
7876 (home-page "https://pypi.python.org/pypi/pluggy")
7877 (license license:expat)))
7878
7879(define-public python2-pluggy
7880 (package-with-python2 python-pluggy))
a4af21ca
DT
7881
7882(define-public python-tox
7883 (package
7884 (name "python-tox")
7885 (version "2.3.1")
7886 (source
7887 (origin
7888 (method url-fetch)
7889 (uri (pypi-uri "tox" version))
7890 (sha256
7891 (base32
7892 "1vj73ar4rimq3fwy5r2z3jv4g9qbh8rmpmncsc00g0k310acqzxz"))))
7893 (build-system python-build-system)
7894 (arguments
7895 ;; FIXME: Tests require a newer version of pytest, but upgrading our
7896 ;; pytest breaks other packages.
7897 '(#:tests? #f))
7898 (inputs
7899 `(("python-setuptools" ,python-setuptools)
7900 ("python-pluggy" ,python-pluggy)
7901 ("python-py" ,python-py)
7902 ("python-virtualenv" ,python-virtualenv)
7903 ("python-pytest" ,python-pytest)))
7904 (home-page "http://tox.testrun.org/")
7905 (synopsis "Virtualenv-based automation of test activities")
7906 (description "Tox is a generic virtualenv management and test command line
7907tool. It can be used to check that a package installs correctly with
7908different Python versions and interpreters, or run tests in each type of
7909supported environment, or act as a frontend to continuous integration
7910servers.")
7911 (license license:expat)))
7912
7913(define-public python2-tox
7914 (package-with-python2 python-tox))
ba9da248
DT
7915
7916(define-public python-jmespath
7917 (package
7918 (name "python-jmespath")
7919 (version "0.9.0")
7920 (source
7921 (origin
7922 (method url-fetch)
7923 (uri (pypi-uri "jmespath" version))
7924 (sha256
7925 (base32
7926 "0g9xvl69y7nr3w7ag4fsp6sm4fqf6vrqjw7504x2hzrrsh3ampq8"))))
7927 (build-system python-build-system)
7928 (inputs
7929 `(("python-setuptools" ,python-setuptools)))
7930 (synopsis "JSON Matching Expressions")
7931 (description "JMESPath (pronounced “james path”) is a Python library that
7932allows one to declaratively specify how to extract elements from a JSON
7933document.")
7934 (home-page "https://github.com/jmespath/jmespath.py")
7935 (license license:expat)))
7936
7937(define-public python2-jmespath
7938 (package-with-python2 python-jmespath))
935fcd5c
DT
7939
7940(define-public python-botocore
7941 (package
7942 (name "python-botocore")
e09f952d 7943 (version "1.4.62")
935fcd5c
DT
7944 (source
7945 (origin
7946 (method url-fetch)
7947 (uri (pypi-uri "botocore" version))
7948 (sha256
7949 (base32
e09f952d 7950 "1zxczlwqy9bl27d9bc5x99mb5mcsxm350240lp5nx7014xb311lj"))))
935fcd5c
DT
7951 (build-system python-build-system)
7952 (inputs
7953 `(("python-dateutil" ,python-dateutil-2)
7954 ("python-docutils" ,python-docutils)
7955 ("python-mock" ,python-mock)
7956 ("python-nose" ,python-nose)
7957 ("python-setuptools" ,python-setuptools)
7958 ("python-tox" ,python-tox)
7959 ("python-wheel" ,python-wheel)
7960 ("python-jmespath" ,python-jmespath)))
7961 (home-page "https://github.com/boto/botocore")
7962 (synopsis "Low-level interface to AWS")
7963 (description "Botocore is a Python library that provides a low-level
7964interface to the Amazon Web Services (AWS) API.")
3f641af0 7965 (license license:asl2.0)))
935fcd5c
DT
7966
7967(define-public python2-botocore
7968 (package-with-python2 python-botocore))
f861b8b8
DT
7969
7970(define-public awscli
7971 (package
7972 (name "awscli")
d5ccf71e 7973 (version "1.11.5")
f861b8b8
DT
7974 (source
7975 (origin
7976 (method url-fetch)
d5ccf71e 7977 (uri (pypi-uri name version))
f861b8b8
DT
7978 (sha256
7979 (base32
d5ccf71e 7980 "0lclasm0wnayd3b8zl9l91i32nbgrhh0ncf9lksss4cv0myfwmfg"))))
f861b8b8
DT
7981 (build-system python-build-system)
7982 (inputs
7983 `(("python-colorama" ,python-colorama)
7984 ("python-docutils" ,python-docutils)
7985 ("python-mock" ,python-mock)
7986 ("python-nose" ,python-nose)
7987 ("python-rsa" ,python-rsa)
7988 ("python-setuptools" ,python-setuptools)
7989 ("python-sphinx" ,python-sphinx)
7990 ("python-tox" ,python-tox)
7991 ("python-wheel" ,python-wheel)
d5ccf71e
LF
7992 ("python-botocore" ,python-botocore)
7993 ("python-s3transfer" ,python-s3transfer)))
f861b8b8
DT
7994 (home-page "http://aws.amazon.com/cli/")
7995 (synopsis "Command line client for AWS")
7996 (description "AWS CLI provides a unified command line interface to the
7997Amazon Web Services (AWS) API.")
3f641af0 7998 (license license:asl2.0)))
6a44697d
LF
7999
8000(define-public python-hypothesis
8001 (package
8002 (name "python-hypothesis")
bea6d94d 8003 (version "3.1.0")
6a44697d
LF
8004 (source (origin
8005 (method url-fetch)
8006 (uri (pypi-uri "hypothesis" version))
8007 (sha256
8008 (base32
bea6d94d 8009 "0qyqq9akm4vshhn8cngjc1qykcvsn7cz6dlm6njfsgpbraqrmbbw"))))
6a44697d 8010 (build-system python-build-system)
6a44697d
LF
8011 (propagated-inputs
8012 `(("python-flake8" ,python-flake8)
8013 ("python-pytest" ,python-pytest)))
8014 (synopsis "Library for property based testing")
8015 (description "Hypothesis is a library for testing your Python code against a
8016much larger range of examples than you would ever want to write by hand. It’s
8017based on the Haskell library, Quickcheck, and is designed to integrate
8018seamlessly into your existing Python unit testing work flow.")
8019 (home-page "https://github.com/DRMacIver/hypothesis")
3f641af0 8020 (license license:mpl2.0)
6f068e08 8021 (properties `((python2-variant . ,(delay python2-hypothesis))))))
6a44697d
LF
8022
8023(define-public python2-hypothesis
6f068e08
EF
8024 (let ((hypothesis (package-with-python2
8025 (strip-python2-variant python-hypothesis))))
8026 (package (inherit hypothesis)
8027 (native-inputs
8028 `(("python2-enum34" ,python2-enum34)
8029 ("python2-setuptools" ,python2-setuptools))))))
7517e73c
LF
8030
8031(define-public python-pytest-subtesthack
8032 (package
8033 (name "python-pytest-subtesthack")
8034 (version "0.1.1")
8035 (source (origin
8036 (method url-fetch)
8037 (uri (pypi-uri "pytest-subtesthack" version))
8038 (sha256
8039 (base32
8040 "15kzcr5pchf3id4ikdvlv752rc0j4d912n589l4rifp8qsj19l1x"))))
8041 (build-system python-build-system)
8042 (native-inputs
8043 `(;; setuptools required for python-2 variant
8044 ("python-setuptools" ,python-setuptools)))
8045 (propagated-inputs
8046 `(("python-pytest" ,python-pytest)))
8047 (synopsis "Set-up and tear-down fixtures for unit tests")
8048 (description "This plugin allows you to set up and tear down fixtures within
8049unit test functions that use @code{py.test}. This is useful for using
8050@command{hypothesis} inside py.test, as @command{hypothesis} will call the test
8051function multiple times, without setting up or tearing down fixture state as is
8052normally the case.")
8053 (home-page "https://github.com/untitaker/pytest-subtesthack/")
3f641af0 8054 (license license:unlicense)))
7517e73c
LF
8055
8056(define-public python2-pytest-subtesthack
8057 (package-with-python2 python-pytest-subtesthack))
0bdc1671
CAW
8058
8059(define-public python2-xdo
8060 (package
8061 (name "python2-xdo")
8062 (version "0.2")
8063 (source (origin
8064 (method url-fetch)
8065 (uri (string-append
8066 "http://http.debian.net/debian/pool/main/p/python-xdo/"
8067 "python-xdo_" version ".orig.tar.gz"))
8068 (sha256
8069 (base32
8070 "1kl5c1p0dyxf62plnk6fl77ycfb4whwjms16r14dxx8kn90hlqz4"))))
8071 (build-system python-build-system)
8072 (arguments
8073 `(#:python ,python-2
8074 #:tests? #f)) ; no tests provided
8075 (inputs
8076 `(("xdotool" ,xdotool)
8077 ("libX11" ,libx11)))
8078 (home-page "https://tracker.debian.org/pkg/python-xdo")
8079 (synopsis "Python library for simulating X11 keyboard/mouse input")
8080 (description "Provides bindings to libxdo for manipulating X11 via simulated
8081input. (Note that this is mostly a legacy library; you may wish to look at
8082python-xdo for newer bindings.)")
3f641af0 8083 (license license:bsd-3)))
0bdc1671 8084
cb34dc6c
CAW
8085(define-public python-wtforms
8086 (package
8087 (name "python-wtforms")
8088 (version "2.1")
8089 (source
8090 (origin
8091 (method url-fetch)
8092 (uri (pypi-uri "WTForms" version ".zip"))
8093 (sha256
8094 (base32
8095 "0vyl26y9cg409cfyj8rhqxazsdnd0jipgjw06civhrd53yyi1pzz"))))
8096 (build-system python-build-system)
13c4d874
EF
8097 (arguments
8098 '(#:phases
8099 (modify-phases %standard-phases
8100 (add-after 'unpack 'remove-django-test
8101 ;; Don't fail the tests when the inputs for the optional tests cannot be found.
8102 (lambda _
8103 (substitute*
8104 "tests/runtests.py"
8105 (("'ext_django.tests', 'ext_sqlalchemy', 'ext_dateutil', 'locale_babel'") "")
8106 (("sys.stderr.write(\"### Disabled test '%s', dependency not found\n\" % name)") ""))
8107 #t)))))
cb34dc6c
CAW
8108 (native-inputs
8109 `(("unzip" ,unzip)))
8110 (home-page "http://wtforms.simplecodes.com/")
8111 (synopsis
8112 "Form validation and rendering library for Python web development")
8113 (description
8114 "WTForms is a flexible forms validation and rendering library
8115for Python web development. It is very similar to the web form API
8116available in Django, but is a standalone package.")
3f641af0 8117 (license license:bsd-3)
cb34dc6c
CAW
8118 (properties `((python2-variant . ,(delay python2-wtforms))))))
8119
8120(define-public python2-wtforms
8121 (package
8122 (inherit (package-with-python2
8123 (strip-python2-variant python-wtforms)))
8124 (inputs `(("python2-setuptools" ,python2-setuptools)))))
50aaec25
DT
8125
8126(define-public python-mako
8127 (package
8128 (name "python-mako")
8129 (version "1.0.3")
8130 (source
8131 (origin
8132 (method url-fetch)
8133 (uri (pypi-uri "Mako" version))
8134 (sha256
8135 (base32
8136 "136kcjbs0s98qkx8a418b05dfblqp0kiiqyx8vhx4rarwc7bqi3n"))))
8137 (build-system python-build-system)
8138 (native-inputs
8139 `(("python-markupsafe" ,python-markupsafe)
8140 ("python-mock" ,python-mock)
8141 ("python-nose" ,python-nose)))
8142 (home-page "http://www.makotemplates.org/")
8143 (synopsis "Templating language for Python")
8144 (description "Mako is a templating language for Python that compiles
8145templates into Python modules.")
8146 (license license:expat)
8147 (properties `((python2-variant . ,(delay python2-mako))))))
8148
8149(define-public python2-mako
8150 (let ((base (package-with-python2
8151 (strip-python2-variant python-mako))))
8152 (package
8153 (inherit base)
8154 (native-inputs
8155 (cons `("python2-setuptools" ,python2-setuptools)
8156 (package-native-inputs base))))))
ae00a41f
CAW
8157
8158(define-public python-waitress
8159 (package
8160 (name "python-waitress")
8161 (version "0.8.10")
8162 (source
8163 (origin
8164 (method url-fetch)
8165 (uri (pypi-uri "waitress" version))
8166 (sha256
8167 (base32
8168 "017n9ra6vvmq9d5sfhdzyzr1mg15x2hj2dhm4pdlw98c1ypw2h3w"))))
8169 (build-system python-build-system)
8170 (home-page "https://github.com/Pylons/waitress")
8171 (synopsis "Waitress WSGI server")
8172 (description "Waitress is meant to be a production-quality pure-Python WSGI
8173server with very acceptable performance.")
3f641af0 8174 (license license:zpl2.1)
ae00a41f
CAW
8175 (properties `((python2-variant . ,(delay python2-waitress))))))
8176
8177(define-public python2-waitress
8178 (package
8179 (inherit (package-with-python2
8180 (strip-python2-variant python-waitress)))
8181 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
778a284b
CAW
8182
8183(define-public python-wsgiproxy2
8184 (package
8185 (name "python-wsgiproxy2")
8186 (version "0.4.2")
8187 (source
8188 (origin
8189 (method url-fetch)
8190 (uri (pypi-uri "WSGIProxy2" version ".zip"))
8191 (sha256
8192 (base32
8193 "13kf9bdxrc95y9vriaz0viry3ah11nz4rlrykcfvb8nlqpx3dcm4"))))
8194 (build-system python-build-system)
8195 (native-inputs
8196 `(("unzip" ,unzip)
8197 ("python-nose" ,python-nose)
8198 ("python-coverage" ,python-coverage)))
8199 (propagated-inputs
8200 `(("python-six" ,python-six)
8201 ("python-webob" ,python-webob)))
8202 (home-page
8203 "https://github.com/gawel/WSGIProxy2/")
8204 (synopsis "WSGI Proxy with various http client backends")
8205 (description "WSGI turns HTTP requests into WSGI function calls.
8206WSGIProxy turns WSGI function calls into HTTP requests.
8207It also includes code to sign requests and pass private data,
8208and to spawn subprocesses to handle requests.")
8209 (license license:expat)
8210 (properties `((python2-variant . ,(delay python2-wsgiproxy2))))))
8211
8212(define-public python2-wsgiproxy2
8213 (let ((wsgiproxy2 (package-with-python2
8214 (strip-python2-variant python-wsgiproxy2))))
8215 (package
8216 (inherit wsgiproxy2)
8217 (inputs `(("python2-setuptools" ,python2-setuptools)
8218 ,@(package-inputs wsgiproxy2))))))
bb7518b1
CAW
8219
8220(define-public python-pastedeploy
8221 (package
8222 (name "python-pastedeploy")
8223 (version "1.5.2")
8224 (source
8225 (origin
8226 (method url-fetch)
8227 (uri (pypi-uri "PasteDeploy" version))
8228 (sha256
8229 (base32
8230 "1jz3m4hq8v6hyhfjz9425nd3nvn52cvbfipdcd72krjmla4qz1fm"))))
8231 (build-system python-build-system)
8232 (native-inputs
8233 `(("python-nose" ,python-nose)))
8234 (propagated-inputs
8235 ;; This package uses pkg_resources, part of setuptools, during runtime,
8236 ;; hence why not a native-input.
8237 `(("python-setuptools" ,python-setuptools)))
8238 (home-page "http://pythonpaste.org/deploy/")
8239 (synopsis
8240 "Load, configure, and compose WSGI applications and servers")
8241 (description
8242 "This tool provides code to load WSGI applications and servers from URIs;
8243these URIs can refer to Python Eggs for INI-style configuration files. Paste
8244Script provides commands to serve applications based on this configuration
8245file.")
8246 (license license:expat)))
8247
8248(define-public python2-pastedeploy
8249 (package-with-python2 python-pastedeploy))
1cf53652 8250
c4a7904c
CAW
8251(define-public python-paste
8252 (package
8253 (name "python-paste")
8254 (version "2.0.2")
8255 (source
8256 (origin
8257 (method url-fetch)
8258 (uri (pypi-uri "Paste" version))
8259 (sha256
8260 (base32
8261 "16dsv9qi0r4qsrsb6dilpq2rx0fnglvh36flzywcdnm2jg43mb5d"))
fc1adab1
AK
8262 (patches (search-patches "python-paste-remove-website-test.patch"
8263 "python-paste-remove-timing-test.patch"))))
c4a7904c
CAW
8264 (build-system python-build-system)
8265 (native-inputs
8266 `(("python-nose" ,python-nose)))
8267 (propagated-inputs
8268 `(;; Uses pkg_resources provided by setuptools internally.
8269 ("python-setuptools" ,python-setuptools)
8270 ("python-six" ,python-six)))
8271 (arguments
8272 '(;; Tests don't pass on Python 3, but work fine on Python 2.
8273 ;; (As of 2.0.2, Python 3 support in Paste is presently a bit broken,
8274 ;; but is usable enough for the minimal amount it's used in MediaGoblin
8275 ;; still... things should be better by the next Paste release.)
8276 #:tests? #f))
8277 (home-page "http://pythonpaste.org")
8278 (synopsis
8279 "Python web development tools, focusing on WSGI")
8280 (description
8281 "Paste provides a variety of web development tools and middleware which
8282can be nested together to build web applications. Paste's design closely
8283follows ideas flowing from WSGI (Web Standard Gateway Interface).")
8284 (license license:expat)
8285 (properties `((python2-variant . ,(delay python2-paste))))))
8286
8287(define-public python2-paste
8288 (let ((paste (package-with-python2
8289 (strip-python2-variant python-paste))))
8290 (package
8291 (inherit paste)
8292 (arguments
8293 ;; Tests are back for Python 2!
8294 `(#:tests? #t
8295 ,@(package-arguments paste))))))
8296
a8f20f63
CAW
8297(define-public python-pastescript
8298 (package
8299 (name "python-pastescript")
8300 (version "2.0.2")
8301 (source
8302 (origin
8303 (method url-fetch)
8304 (uri (pypi-uri "PasteScript" version))
8305 (sha256
8306 (base32
8307 "1h3nnhn45kf4pbcv669ik4faw04j58k8vbj1hwrc532k0nc28gy0"))))
8308 (build-system python-build-system)
8309 (native-inputs
8310 `(("python-nose" ,python-nose)))
8311 (propagated-inputs
8312 `(;; Uses pkg_resources provided by setuptools internally.
8313 ("python-setuptools" ,python-setuptools)
8314 ("python-paste" ,python-paste)
8315 ("python-pastedeploy" ,python-pastedeploy)))
8316 (home-page "http://pythonpaste.org/script/")
8317 (arguments
8318 '(;; Unfortunately, this requires the latest unittest2,
8319 ;; but that requires traceback2 which requires linecache2 which requires
8320 ;; unittest2. So we're skipping tests for now.
8321 ;; (Note: Apparently linetest2 only needs unittest2 for its tests,
8322 ;; so in theory we could get around this situation somehow.)
8323 #:tests? #f))
8324 (synopsis
8325 "Pluggable command line tool for serving web applications and more")
8326 (description
8327 "PasteScript is a plugin-friendly command line tool which provides a
8328variety of features, from launching web applications to bootstrapping project
8329layouts.")
8330 (license license:expat)))
8331
8332(define-public python2-pastescript
8333 (package-with-python2 python-pastescript))
8334
1cf53652
CAW
8335(define-public python-pyquery
8336 (package
8337 (name "python-pyquery")
aab76e80 8338 (version "1.2.13")
1cf53652
CAW
8339 (source
8340 (origin
8341 (method url-fetch)
8342 (uri (pypi-uri "pyquery" version))
8343 (sha256
8344 (base32
aab76e80 8345 "0j9fsisip21qv4xljsg5dmni1pgpvwrjyyhhql0glydc4bs5rjgv"))))
1cf53652
CAW
8346 (build-system python-build-system)
8347 (propagated-inputs
8348 `(("python-lxml" ,python-lxml)
8349 ("python-cssselect" ,python-cssselect)))
8350 (home-page "https://github.com/gawel/pyquery")
8351 (synopsis "Make jQuery-like queries on xml documents")
8352 (description "pyquery allows you to make jQuery queries on xml documents.
8353The API is as much as possible the similar to jQuery. pyquery uses lxml for
8354fast xml and html manipulation.")
3f641af0 8355 (license license:bsd-3)
1cf53652
CAW
8356 (properties `((python2-variant . ,(delay python2-pyquery))))))
8357
8358(define-public python2-pyquery
8359 (let ((pyquery (package-with-python2
8360 (strip-python2-variant python-pyquery))))
8361 (package
8362 (inherit pyquery)
8363 (native-inputs `(("python2-setuptools" ,python2-setuptools))))))
aa6313d6
CAW
8364
8365(define-public python-webtest
8366 (package
8367 (name "python-webtest")
8368 (version "2.0.20")
8369 (source
8370 (origin
8371 (method url-fetch)
8372 (uri (pypi-uri "WebTest" version))
8373 (sha256
8374 (base32
8375 "0bv0qhdjakdsdgj4sk21gnpp8xp8bga4x03p6gjb83ihrsb7n4xv"))))
8376 (build-system python-build-system)
8377 (arguments
8378 `(;; Unfortunately we have to disable tests!
8379 ;; This release of WebTest is pinned to python-nose < 1.3,
8380 ;; but older versions of python-nose are plagued with the following
8381 ;; bug(s), which rears its ugly head during test execution:
8382 ;; https://github.com/nose-devs/nose/issues/759
8383 ;; https://github.com/nose-devs/nose/pull/811
8384 #:tests? #f))
8385 ;; Commented out code is no good, but in this case, once tests
8386 ;; are ready to be enabled again, we should put the following
8387 ;; in place:
8388 ;; (native-inputs
8389 ;; `(("python-nose" ,python-nose) ; technially < 1.3,
8390 ;; ; but see above comment
8391 ;; ("python-coverage" ,python-coverage)
8392 ;; ("python-mock" ,python-mock)
8393 ;; ("python-pastedeploy" ,python-pastedeploy)
8394 ;; ("python-wsgiproxy2" ,python-wsgiproxy2)
8395 ;; ("python-pyquery" ,python-pyquery)))
8396 (propagated-inputs
8397 `(("python-waitress" ,python-waitress)
8398 ("python-webob" ,python-webob)
8399 ("python-six" ,python-six)
8400 ("python-beautifulsoup4" ,python-beautifulsoup4)))
8401 (home-page "http://webtest.pythonpaste.org/")
8402 (synopsis "Helper to test WSGI applications")
8403 (description "Webtest allows you to test your Python web applications
8404without starting an HTTP server. It supports anything that supports the
8405minimum of WSGI.")
8406 (license license:expat)
8407 (properties `((python2-variant . ,(delay python2-webtest))))))
8408
8409(define-public python2-webtest
8410 (let ((webtest (package-with-python2
8411 (strip-python2-variant python-webtest))))
8412 (package
8413 (inherit webtest)
8414 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8415 ,@(package-native-inputs webtest))))))
4cb122cd
CAW
8416
8417(define-public python-anyjson
8418 (package
8419 (name "python-anyjson")
8420 (version "0.3.3")
8421 (source
8422 (origin
8423 (method url-fetch)
8424 (uri (pypi-uri "anyjson" version))
8425 (sha256
8426 (base32
8427 "1fjph4alvcscsl5d4b6qpv1yh31jy05jxi1l0xff7lws7j32v09p"))))
8428 (build-system python-build-system)
8429 (arguments
8430 `(;; We could possibly get tests working, but on Python 3 it's not so easy.
8431 ;; Very strangely, 2to3 is run *during setup.py install* (or bdist, or
8432 ;; whatever) so this transformation needs to be done before the tests
8433 ;; can be run. Maybe we could add a build step to transform beforehand
8434 ;; but it could be annoying/difficult.
8435 ;; We can enable tests for the Python 2 version, though, and do below.
8436 #:tests? #f))
8437 (home-page "http://bitbucket.org/runeh/anyjson/")
8438 (synopsis
8439 "Wraps best available JSON implementation in a common interface")
8440 (description
8441 "Anyjson loads whichever is the fastest JSON module installed
8442and provides a uniform API regardless of which JSON implementation is used.")
3f641af0 8443 (license license:bsd-3)
4cb122cd
CAW
8444 (properties `((python2-variant . ,(delay python2-anyjson))))))
8445
8446(define-public python2-anyjson
8447 (let ((anyjson (package-with-python2
8448 (strip-python2-variant python-anyjson))))
8449 (package
8450 (inherit anyjson)
8451 (arguments `(;; Unlike the python 3 variant, we do run tests. See above!
8452 #:tests? #t
8453 ,@(package-arguments anyjson)))
8454 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8455 ("python2-nose" ,python2-nose))))))
8dfceab7
CAW
8456
8457(define-public python-amqp
8458 (package
8459 (name "python-amqp")
8460 (version "1.4.9")
8461 (source
8462 (origin
8463 (method url-fetch)
8464 (uri (pypi-uri "amqp" version))
8465 (sha256
8466 (base32
8467 "06n6q0kxhjnbfz3vn8x9yz09lwmn1xi9d6wxp31h5jbks0b4vsid"))))
8468 (build-system python-build-system)
8469 (native-inputs
8470 `(("python-nose" ,python-nose)
8471 ("python-mock" ,python-mock)))
8472 (home-page "http://github.com/celery/py-amqp")
8473 (synopsis
8474 "Low-level AMQP client for Python (fork of amqplib)")
8475 (description
8476 "This is a fork of amqplib which was originally written by Barry Pederson.
8477It is maintained by the Celery project, and used by kombu as a pure python
8478alternative when librabbitmq is not available.")
3f641af0 8479 (license license:lgpl2.1+)
8dfceab7
CAW
8480 (properties `((python2-variant . ,(delay python2-amqp))))))
8481
8482(define-public python2-amqp
8483 (let ((amqp (package-with-python2
8484 (strip-python2-variant python-amqp))))
8485 (package
8486 (inherit amqp)
8487 (arguments `(;; Tries to run coverage tests with nose-cover3, which seems
8488 ;; unmaintained. Weirdly, does not do this on the python 3
8489 ;; version?
8490 #:tests? #f
8491 ,@(package-arguments amqp)))
8492 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8493 ,@(package-native-inputs amqp))))))
7d387305
CAW
8494
8495(define-public python-kombu
8496 (package
8497 (name "python-kombu")
0cb59822 8498 (version "3.0.37")
7d387305
CAW
8499 (source
8500 (origin
8501 (method url-fetch)
8502 (uri (pypi-uri "kombu" version))
8503 (sha256
8504 (base32
0cb59822 8505 "0l16chb314gpq2v7fh94a22c30lcv6w3ylmhsa60bldlcq6a0r70"))))
7d387305
CAW
8506 (build-system python-build-system)
8507 (native-inputs
8508 `(("python-mock" ,python-mock)
8509 ("python-nose" ,python-nose)))
8510 (propagated-inputs
8511 `(("python-anyjson" ,python-anyjson)
0cb59822
LF
8512 ("python-amqp" ,python-amqp)
8513 ("python-redis" ,python-redis)))
7d387305
CAW
8514 (home-page "http://kombu.readthedocs.org")
8515 (synopsis "Message passing library for Python")
8516 (description "The aim of Kombu is to make messaging in Python as easy as
8517possible by providing an idiomatic high-level interface for the AMQ protocol,
8518and also provide proven and tested solutions to common messaging problems.
8519AMQP is the Advanced Message Queuing Protocol, an open standard protocol for
8520message orientation, queuing, routing, reliability and security, for which the
8521RabbitMQ messaging server is the most popular implementation.")
3f641af0 8522 (license license:bsd-3)
7d387305
CAW
8523 (properties `((python2-variant . ,(delay python2-kombu))))))
8524
8525(define-public python2-kombu
8526 (let ((kombu (package-with-python2
8527 (strip-python2-variant python-kombu))))
8528 (package
8529 (inherit kombu)
8530 (inputs `(("python2-setuptools" ,python2-setuptools)
8531 ("python2-unittest2" ,python2-unittest2)
8532 ,@(package-inputs kombu))))))
b6f0b9fb
CAW
8533
8534(define-public python-billiard
8535 (package
8536 (name "python-billiard")
a6bb9e44 8537 (version "3.3.0.23")
b6f0b9fb
CAW
8538 (source
8539 (origin
8540 (method url-fetch)
8541 (uri (pypi-uri "billiard" version))
8542 (sha256
8543 (base32
a6bb9e44 8544 "02wxsc6bhqvzh8j6w758kvgqbnj14l796mvmrcms8fgfamd2lak9"))))
b6f0b9fb
CAW
8545 (build-system python-build-system)
8546 (native-inputs
8547 `(("python-nose" ,python-nose)))
8548 (home-page "http://github.com/celery/billiard")
8549 (synopsis
8550 "Python multiprocessing fork with improvements and bugfixes")
8551 (description
8552 "Billiard is a fork of the Python 2.7 multiprocessing package. The
8553multiprocessing package itself is a renamed and updated version of R Oudkerk's
8554pyprocessing package. This standalone variant is intended to be compatible with
8555Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.")
3f641af0 8556 (license license:bsd-3)
b6f0b9fb
CAW
8557 (properties `((python2-variant . ,(delay python2-billiard))))))
8558
8559(define-public python2-billiard
8560 (let ((billiard (package-with-python2
8561 (strip-python2-variant python-billiard))))
8562 (package
8563 (inherit billiard)
8564 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8565 ("python2-unittest2" ,python2-unittest2)
8566 ("python2-mock" ,python2-mock)
8567 ,@(package-native-inputs billiard))))))
22df6419
CAW
8568
8569(define-public python-celery
8570 (package
8571 (name "python-celery")
9ebe87fe 8572 (version "3.1.24")
22df6419
CAW
8573 (source
8574 (origin
8575 (method url-fetch)
8576 (uri (pypi-uri "celery" version))
8577 (sha256
8578 (base32
9ebe87fe 8579 "0yh2prhdnx2dgkb67a5drj12hh2zvzx5f611p7mqqg01ydghif4r"))))
22df6419 8580 (build-system python-build-system)
9ebe87fe
LF
8581 (arguments
8582 `(#:phases
8583 (modify-phases %standard-phases
8584 ;; These tests break with Python 3.5:
8585 ;; https://github.com/celery/celery/issues/2897#issuecomment-253066295
8586 (replace 'check
8587 (lambda _
8588 (zero?
8589 (system* "nosetests" "--exclude=^test_safe_to_remove.*")))))))
22df6419
CAW
8590 (native-inputs
8591 `(("python-nose" ,python-nose)))
a64cbb6f 8592 (inputs
22df6419 8593 `(("python-pytz" ,python-pytz)
a64cbb6f
EF
8594 ("python-amqp" ,python-amqp)
8595 ("python-anyjson" ,python-anyjson)
22df6419
CAW
8596 ("python-billiard" ,python-billiard)
8597 ("python-kombu" ,python-kombu)))
8598 (home-page "http://celeryproject.org")
8599 (synopsis "Distributed Task Queue")
8600 (description "Celery is an asynchronous task queue/job queue based on
8601distributed message passing. It is focused on real-time operation, but
8602supports scheduling as well. The execution units, called tasks, are executed
8603concurrently on a single or more worker servers using multiprocessing,
8604Eventlet, or gevent. Tasks can execute asynchronously (in the background) or
8605synchronously (wait until ready).")
3f641af0 8606 (license license:bsd-3)
22df6419
CAW
8607 (properties `((python2-variant . ,(delay python2-celery))))))
8608
8609(define-public python2-celery
8610 (let ((celery (package-with-python2
8611 (strip-python2-variant python-celery))))
8612 (package
8613 (inherit celery)
8614 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8615 ("python2-unittest2" ,python2-unittest2)
8616 ("python2-mock" ,python2-mock)
8617 ,@(package-native-inputs celery))))))
97e32948
CAW
8618
8619(define-public python-translitcodec
8620 (package
8621 (name "python-translitcodec")
8622 (version "0.4.0")
8623 (source
8624 (origin
8625 (method url-fetch)
8626 (uri (pypi-uri "translitcodec" version))
8627 (sha256
8628 (base32
8629 "10x6pvblkzky1zhjs8nmx64nb9jdzxad4bxhq4iwv0j4z2aqjnki"))))
8630 (build-system python-build-system)
8631 (arguments
8632 `(#:tests? #f)) ; no tests provided
8633 (home-page
8634 "https://github.com/claudep/translitcodec")
8635 (synopsis
8636 "Unicode to 8-bit charset transliteration codec")
8637 (description
8638 "This package contains codecs for transliterating ISO 10646 texts into
8639best-effort representations using smaller coded character sets (ASCII,
8640ISO 8859, etc.).")
8641 (license license:expat)
8642 (properties `((python2-variant . ,(delay python2-translitcodec))))))
8643
8644(define-public python2-translitcodec
8645 (package
8646 (inherit (package-with-python2
8647 (strip-python2-variant python-translitcodec)))
8648 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
0c3b90d4
CAW
8649
8650(define-public python-editor
8651 (package
8652 (name "python-editor")
8653 (version "0.5")
8654 (source
8655 (origin
8656 (method url-fetch)
8657 (uri (pypi-uri "python-editor" version))
8658 (sha256
8659 (base32
8660 "1ypnpgvzpkbwsg4rdvy4sy51j28b5xq9v8pnkwxncn07vqz06p7n"))))
8661 (build-system python-build-system)
8662 (home-page
8663 "https://github.com/fmoo/python-editor")
8664 (synopsis
8665 "Programmatically open an editor, capture the result")
8666 (description
8667 "python-editor is a library that provides the editor module for
8668programmatically interfacing with your system's $EDITOR.")
3f641af0 8669 (license license:asl2.0)
0c3b90d4
CAW
8670 (properties `((python2-variant . ,(delay python2-editor))))))
8671
8672(define-public python2-editor
8673 (package
8674 (inherit (package-with-python2
8675 (strip-python2-variant python-editor)))
8676 (inputs `(("python2-setuptools" ,python2-setuptools)))))
3276517c
LF
8677
8678(define-public python-sphinxcontrib-programoutput
8679 (package
8680 (name "python-sphinxcontrib-programoutput")
8681 (version "0.8")
8682 (source (origin
8683 (method url-fetch)
8684 (uri (pypi-uri "sphinxcontrib-programoutput" version))
8685 (sha256
8686 (base32
8687 "098as6z1s0gb4dh5xcr1fd2vpm91zj93jzvgawspxf5s4hqs0xhp"))))
8688 (build-system python-build-system)
8689 (propagated-inputs
8690 `(("python-docutils" ,python-docutils)
8691 ("python-sphinx" ,python-sphinx)))
8692 (synopsis "Sphinx extension to include program output")
8693 (description "A Sphinx extension to literally insert the output of arbitrary
8694commands into documents, helping you to keep your command examples up to date.")
8695 (home-page "https://github.com/lunaryorn/sphinxcontrib-programoutput")
3f641af0 8696 (license license:bsd-2)
3276517c
LF
8697 (properties `((python2-variant . ,(delay python2-sphinxcontrib-programoutput))))))
8698
8699(define-public python2-sphinxcontrib-programoutput
8700 (package
8701 (inherit (package-with-python2
8702 (strip-python2-variant python-sphinxcontrib-programoutput)))
8703 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
548d7165
LF
8704
8705(define-public python-sphinx-repoze-autointerface
8706 (package
8707 (name "python-sphinx-repoze-autointerface")
328ae341 8708 (version "0.8")
548d7165
LF
8709 (source (origin
8710 (method url-fetch)
8711 (uri (pypi-uri "repoze.sphinx.autointerface" version))
8712 (sha256
8713 (base32
328ae341 8714 "08ycivzf7bh4a1zcyp31hbyqs1b2c9r26raa3vxjwwmbfqr3iw4f"))))
548d7165
LF
8715 (build-system python-build-system)
8716 (propagated-inputs
8717 `(("python-docutils" ,python-docutils)
8718 ("python-sphinx" ,python-sphinx)
8719 ("python-zope-interface" ,python-zope-interface)))
8720 (synopsis "Auto-generate Sphinx API docs from Zope interfaces")
8721 (description "This package defines an extension for the Sphinx documentation
8722system. The extension allows generation of API documentation by
8723introspection of @code{zope.interface} instances in code.")
8724 (home-page "https://github.com/repoze/repoze.sphinx.autointerface")
3f641af0 8725 (license license:repoze)))
548d7165
LF
8726
8727(define-public python2-sphinx-repoze-autointerface
8728 (package-with-python2 python-sphinx-repoze-autointerface))
b31fbea5
DM
8729
8730(define-public python-psycopg2
8731 (package
8732 (name "python-psycopg2")
8733 (version "2.6.1")
8734 (source
8735 (origin
8736 (method url-fetch)
8737 (uri (pypi-uri "psycopg2" version))
8738 (sha256
8739 (base32
8740 "0k4hshvrwsh8yagydyxgmd0pjm29lwdxkngcq9fzfzkmpsxrmkva"))))
8741 (build-system python-build-system)
8742 (arguments
8743 ;; Tests would require a postgresql database "psycopg2_test"
8744 ;; and a running postgresql database management service.
8745 `(#:tests? #f)) ; TODO re-enable after providing a test-db.
8746 (inputs
8747 `(("postgresql" ,postgresql))) ; libpq
8748 (home-page "http://initd.org/psycopg/")
8749 (synopsis "Python PostgreSQL adapter")
8750 (description
8751 "psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API 2.0. ")
3f641af0 8752 (license license:lgpl3+)
b31fbea5
DM
8753 (properties `((python2-variant . ,(delay python2-psycopg2))))))
8754
8755(define-public python2-psycopg2
8756 (package
8757 (inherit (package-with-python2
8758 (strip-python2-variant python-psycopg2)))
8759 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
eed1a61f
LF
8760
8761(define-public python-vobject
8762 (package
8763 (name "python-vobject")
9bed9b15 8764 (version "0.9.2")
eed1a61f
LF
8765 (source (origin
8766 (method url-fetch)
8767 (uri (pypi-uri "vobject" version))
8768 (sha256
8769 (base32
9bed9b15 8770 "1qfnwlx8qwkgr6nf5wvl6ff1r3kll53dh3z6nyp173nmlhhhqccb"))))
eed1a61f 8771 (build-system python-build-system)
a9871b7b
LF
8772 (arguments
8773 '(;; The test suite relies on some non-portable Windows interfaces.
8774 #:tests? #f))
eed1a61f
LF
8775 (inputs
8776 `(("python-dateutil-2" ,python-dateutil-2)
8777 ("python-pyicu" ,python-pyicu)))
8778 (synopsis "Parse and generate vCard and vCalendar files")
8779 (description "Vobject is intended to be a full featured Python package for
8780parsing and generating vCard and vCalendar files. Currently, iCalendar files
8781are supported and well tested. vCard 3.0 files are supported, and all data
8782should be imported, but only a few components are understood in a sophisticated
8783way.")
8784 (home-page "http://eventable.github.io/vobject/")
3f641af0 8785 (license license:asl2.0)
eed1a61f
LF
8786 (properties `((python2-variant . ,(delay python2-vobject))))))
8787
8788(define-public python2-vobject
8789 (package
8790 (inherit (package-with-python2
8791 (strip-python2-variant python-vobject)))
8792 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
cedac813
LF
8793
8794(define-public python-munkres
8795 (package
8796 (name "python-munkres")
8797 (version "1.0.7")
8798 (source (origin
8799 (method url-fetch)
8800 (uri (pypi-uri "munkres" version))
8801 (sha256
8802 (base32
8803 "1i6nf45i0kkzdx6k70giybsqxz4dxsjbrkrfqgjd7znfkf25sjik"))))
8804 (build-system python-build-system)
8805 (arguments
8806 '(#:tests? #f)) ; no test suite
8807 (home-page "http://software.clapper.org/munkres/")
8808 (synopsis "Implementation of the Munkres algorithm")
8809 (description "The Munkres module provides an implementation of the Munkres
8810algorithm (also called the Hungarian algorithm or the Kuhn-Munkres algorithm),
8811useful for solving the Assignment Problem.")
3f641af0 8812 (license license:bsd-3)))
cedac813
LF
8813
8814(define-public python2-munkres
8815 (package-with-python2 python-munkres))
f3b3d78f
LF
8816
8817(define-public python-flask
8818 (package
8819 (name "python-flask")
8820 (version "0.10.1")
8821 (source (origin
8822 (method url-fetch)
8823 (uri (pypi-uri "Flask" version))
8824 (sha256
8825 (base32
8826 "0wrkavjdjndknhp8ya8j850jq7a1cli4g5a93mg8nh1xz2gq50sc"))))
8827 (build-system python-build-system)
8828 (propagated-inputs
8829 `(("python-itsdangerous" ,python-itsdangerous)
8830 ("python-jinja2" ,python-jinja2)
8831 ("python-werkzeug" ,python-werkzeug)))
8832 (home-page "https://github.com/mitsuhiko/flask/")
8833 (synopsis "Microframework based on Werkzeug, Jinja2 and good intentions")
8834 (description "Flask is a micro web framework based on the Werkzeug toolkit
8835and Jinja2 template engine. It is called a micro framework because it does not
8836presume or force a developer to use a particular tool or library.")
3f641af0 8837 (license license:bsd-3)
f3b3d78f
LF
8838 (properties `((python2-variant . ,(delay python2-flask))))))
8839
8840(define-public python2-flask
8841 (package (inherit (package-with-python2
8842 (strip-python2-variant python-flask)))
8843 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
603d665b
LF
8844
8845(define-public python-cookies
8846 (package
8847 (name "python-cookies")
8848 (version "2.2.1")
8849 (source (origin
8850 (method url-fetch)
8851 (uri (pypi-uri "cookies" version))
8852 (sha256
8853 (base32
8854 "13pfndz8vbk4p2a44cfbjsypjarkrall71pgc97glk5fiiw9idnn"))))
8855 (build-system python-build-system)
8856 (arguments
8857 `(;; test are broken: https://gitlab.com/sashahart/cookies/issues/3
8858 #:tests? #f))
8859 (native-inputs
8860 `(("python-pytest" ,python2-pytest)))
8861 (synopsis "HTTP cookie parser and renderer")
8862 (description "A RFC 6265-compliant HTTP cookie parser and renderer in
8863Python.")
8864 (home-page "https://gitlab.com/sashahart/cookies")
8865 (license license:expat)
8866 (properties `((python2-variant . ,(delay python2-cookies))))))
8867
8868(define-public python2-cookies
8869 (let ((cookies (package-with-python2
8870 (strip-python2-variant python-cookies))))
8871 (package (inherit cookies)
8872 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8873 ,@(package-native-inputs cookies))))))
0efde7d6
LF
8874
8875(define-public python-responses
8876 (package
8877 (name "python-responses")
8878 (version "0.5.1")
8879 (source (origin
8880 (method url-fetch)
8881 (uri (pypi-uri "responses" version))
8882 (sha256
8883 (base32
8884 "1spcfxixyk9k7pk82jm6zqkwk031s95lh8q0mz7539jrb7269bcc"))))
8885 (build-system python-build-system)
8886 (arguments
8887 `(;; Test suite is not distributed:
8888 ;; https://github.com/getsentry/responses/issues/38
8889 #:tests? #f))
8890 (native-inputs
8891 `(("python-cookies" ,python-cookies)
8892 ("python-mock" ,python-mock)))
8893 (propagated-inputs
8894 `(("python-requests" ,python-requests)
8895 ("python-six" ,python-six)))
8896 (home-page "https://github.com/getsentry/responses")
8897 (synopsis "Utility for mocking out the `requests` Python library")
8898 (description "A utility library for mocking out the `requests` Python
8899library.")
3f641af0 8900 (license license:asl2.0)
0efde7d6
LF
8901 (properties `((python2-variant . ,(delay python2-responses))))))
8902
8903(define-public python2-responses
8904 (let ((responses (package-with-python2
8905 (strip-python2-variant python-responses))))
8906 (package (inherit responses)
8907 (native-inputs `(("python2-setuptools" ,python2-setuptools)
8908 ,@(package-native-inputs responses))))))
76b94885 8909
b7afd018
RW
8910(define-public python-whoosh
8911 (package
8912 (name "python-whoosh")
8913 (version "2.7.4")
8914 (source
8915 (origin
8916 (method url-fetch)
8917 (uri (pypi-uri "Whoosh" version))
8918 (sha256
8919 (base32
8920 "10qsqdjpbc85fykc1vgcs8xwbgn4l2l52c8d83xf1q59pwyn79bw"))))
8921 (build-system python-build-system)
8922 (native-inputs
8923 `(("python-setuptools" ,python-setuptools)
8924 ("python-pytest" ,python-pytest)))
8925 (home-page "http://bitbucket.org/mchaput/whoosh")
8926 (synopsis "Full text indexing, search, and spell checking library")
8927 (description
8928 "Whoosh is a fast, pure-Python full text indexing, search, and spell
8929checking library.")
8930 (license license:bsd-2)))
8931
8932(define-public python2-whoosh
8933 (let ((whoosh (package-with-python2 (strip-python2-variant python-whoosh))))
8934 (package (inherit whoosh)
8935 (propagated-inputs
8936 `(("python2-backport-ssl-match-hostname"
8937 ,python2-backport-ssl-match-hostname)
8938 ,@(package-propagated-inputs whoosh))))))
8939
76b94885
LF
8940(define-public python-pathlib
8941 (package
8942 (name "python-pathlib")
8943 (version "1.0.1")
8944 (source (origin
8945 (method url-fetch)
8946 (uri (pypi-uri "pathlib" version))
8947 (sha256
8948 (base32
8949 "17zajiw4mjbkkv6ahp3xf025qglkj0805m9s41c45zryzj6p2h39"))))
8950 (build-system python-build-system)
92a312dc
RW
8951 ;; The tests depend on the internal "test" module, which does not provide
8952 ;; a stable interface.
8953 (arguments `(#:tests? #f))
76b94885 8954 (home-page "https://pathlib.readthedocs.org/")
8f65585b
JD
8955 (synopsis "Object-oriented file system paths")
8956 (description "Pathlib offers a set of classes to handle file system paths.
76b94885
LF
8957It offers the following advantages over using string objects:
8958
8959@enumerate
8960@item No more cumbersome use of os and os.path functions. Everything can
8961be done easily through operators, attribute accesses, and method calls.
8962@item Embodies the semantics of different path types. For example,
8963comparing Windows paths ignores casing.
8964@item Well-defined semantics, eliminating any inconsistencies or
8965ambiguities (forward vs. backward slashes, etc.).
7a8894e8
HG
8966@end enumerate
8967
8968Note: In Python 3.4, pathlib is now part of the standard library. For other
8969Python versions please consider python-pathlib2 instead, which tracks the
8970standard library module. This module (python-pathlib) isn't maintained
8971anymore.")
76b94885
LF
8972 (license license:expat)))
8973
8974(define-public python2-pathlib
8975 (package-with-python2 python-pathlib))
25a7db0a 8976
b7703c81
HG
8977(define-public python2-pathlib2
8978 (package
8979 (name "python2-pathlib2")
8980 (version "2.1.0")
8981 (source (origin
8982 (method url-fetch)
8983 (uri (pypi-uri "pathlib2" version))
8984 (sha256
8985 (base32
8986 "0p050msg5c8d0kadv702jnfshaxrb0il765cpkgnhn6mq5hakcyy"))))
8987 (build-system python-build-system)
8988 (arguments
8989 `(#:python ,python-2))
8990 (native-inputs
8991 `(("python2-setuptools" ,python2-setuptools)
8992 ("python2-six" ,python2-six)))
8993 (home-page "http://pypi.python.org/pypi/pathlib2/")
8994 (synopsis "Object-oriented file system paths - backport of standard
8995pathlib module")
8996 (description "The goal of pathlib2 is to provide a backport of standard
8997pathlib module which tracks the standard library module, so all the newest
8998features of the standard pathlib can be used also on older Python versions.
8999
9000Pathlib offers a set of classes to handle file system paths. It offers the
9001following advantages over using string objects:
9002
9003@enumerate
9004@item No more cumbersome use of os and os.path functions. Everything can
9005be done easily through operators, attribute accesses, and method calls.
9006@item Embodies the semantics of different path types. For example,
9007comparing Windows paths ignores casing.
9008@item Well-defined semantics, eliminating any inconsistencies or
9009ambiguities (forward vs. backward slashes, etc.).
9010@end enumerate")
9011 (license license:expat)))
9012
25a7db0a
LF
9013(define-public python-jellyfish
9014 (package
9015 (name "python-jellyfish")
9016 (version "0.5.3")
9017 (source (origin
9018 (method url-fetch)
9019 (uri (pypi-uri "jellyfish" version))
9020 (sha256
9021 (base32
9022 "12bxh8cy9xmvyrjz7aw159nd5pyvb645rkvw4r6bvm4xbvs8gd07"))))
9023 (build-system python-build-system)
9024 (native-inputs
9025 `(("python-pytest" ,python-pytest)))
9026 (home-page "https://github.com/jamesturk/jellyfish")
9027 (synopsis "Approximate and phonetic matching of strings")
9028 (description "Jellyfish uses a variety of string comparison and phonetic
9029encoding algorithms to do fuzzy string matching.")
3f641af0 9030 (license license:bsd-2)
25a7db0a
LF
9031 (properties `((python2-variant . ,(delay python2-jellyfish))))))
9032
9033(define-public python2-jellyfish
9034 (let ((jellyfish (package-with-python2
9035 (strip-python2-variant python-jellyfish))))
9036 (package (inherit jellyfish)
9037 (native-inputs `(("python2-setuptools" ,python2-setuptools)
9038 ("python2-unicodecsv" ,python2-unicodecsv)
9039 ,@(package-native-inputs jellyfish))))))
13edb0e5
LF
9040
9041(define-public python2-unicodecsv
9042 (package
9043 (name "python2-unicodecsv")
9044 (version "0.14.1")
9045 (source (origin
9046 (method url-fetch)
9047 ;; The test suite is not included in the PyPi release.
9048 ;; https://github.com/jdunck/python-unicodecsv/issues/19
9049 (uri (string-append "https://github.com/jdunck/python-unicodecsv/"
9050 "archive/" version ".tar.gz"))
9051 (file-name (string-append name "-" version ".tar.gz"))
9052 (sha256
9053 (base32
9054 "087nqanfcyp6mlfbbr5lva5f3w6iz1bybls9xlrb8icmc474wh4w"))))
9055 (build-system python-build-system)
9056 (arguments
9057 `(;; It supports Python 3, but Python 3 can already do Unicode CSV.
9058 #:python ,python-2))
9059 (native-inputs
9060 `(("python2-setuptools" ,python2-setuptools)
9061 ("python2-unittest2" ,python2-unittest2)))
9062 (home-page "https://github.com/jdunck/python-unicodecsv")
9063 (synopsis "Unicode CSV module for Python 2")
9064 (description "Unicodecsv is a drop-in replacement for Python 2.7's CSV
9065module, adding support for Unicode strings.")
3f641af0 9066 (license license:bsd-2)))
064503aa
LF
9067
9068(define-public python-rarfile
9069 (package
9070 (name "python-rarfile")
9071 (version "2.7")
9072 (source (origin
9073 (method url-fetch)
9074 (uri (pypi-uri "rarfile" version))
9075 (sha256
9076 (base32
9077 "0d8n1dlpiz7av8dmbp0vclrwl9cnxizr4f2c9xvj1h5nvn480527"))
9078 ;; https://github.com/markokr/rarfile/pull/17/
fc1adab1 9079 (patches (search-patches "python-rarfile-fix-tests.patch"))))
064503aa
LF
9080 (build-system python-build-system)
9081 (arguments
9082 '(#:phases
9083 (modify-phases %standard-phases
9084 (replace 'check
9085 ;; Many tests fail, but the installation proceeds.
9086 (lambda _ (zero? (system* "make" "-C" "test" "test")))))))
9087 (native-inputs
9088 `(("which" ,which))) ; required for tests
9089 (propagated-inputs
9090 `(("libarchive" ,libarchive)))
9091 (home-page "https://github.com/markokr/rarfile")
9092 (synopsis "RAR archive reader for Python")
9093 (description "This is Python module for RAR archive reading. The interface
9094is made as zipfile like as possible.")
3f641af0 9095 (license license:isc)))
064503aa
LF
9096
9097(define-public python2-rarfile
9098 (package-with-python2 python-rarfile))
daeeea71
CM
9099
9100(define-public python-magic
9101 (package
9102 (name "python-magic")
9103 (version "0.4.3")
9104 (source
9105 (origin
9106 (method url-fetch)
9107 (uri (string-append "https://github.com/ahupp/python-magic/archive/"
9108 version ".tar.gz"))
9109 (sha256
9110 (base32
9111 "17bgy92i7sb021f2s4mw1dcvpm6p1mi9jihridwy1pyn8mzvpjgk"))
9112 (file-name (string-append name "-" version "-checkout"))))
9113 (build-system python-build-system)
9114 (arguments
9115 ;; The tests are unreliable, so don't run them. The tests fail
9116 ;; under Python3 because they were written for Python2 and
9117 ;; contain import statements that do not work in Python3. One of
9118 ;; the tests fails under Python2 because its assertions are
9119 ;; overly stringent; it relies on comparing output strings which
9120 ;; are brittle and can change depending on the version of
9121 ;; libmagic being used and the system on which the test is
9122 ;; running. In my case, under GuixSD 0.10.0, only one test
9123 ;; failed, and it seems to have failed only because the version
9124 ;; of libmagic that is packaged in Guix outputs a slightly
9125 ;; different (but not wrong) string than the one that the test
9126 ;; expected.
9127 '(#:tests? #f
9128 #:phases (modify-phases %standard-phases
9129 ;; Replace a specific method call with a hard-coded
9130 ;; path to the necessary libmagic.so file in the
9131 ;; store. If we don't do this, then the method call
9132 ;; will fail to find the libmagic.so file, which in
9133 ;; turn will cause any application using
9134 ;; python-magic to fail.
9135 (add-before 'build 'hard-code-path-to-libmagic
9136 (lambda* (#:key inputs #:allow-other-keys)
9137 (let ((file (assoc-ref inputs "file")))
9138 (substitute* "magic.py"
9139 (("ctypes.util.find_library\\('magic'\\)")
9140 (string-append "'" file "/lib/libmagic.so'")))
77432686
LF
9141 #t)))
9142 (add-before 'install 'disable-egg-compression
9143 (lambda _
9144 (let ((port (open-file "setup.cfg" "a")))
9145 (display "\n[easy_install]\nzip_ok = 0\n"
9146 port)
9147 (close-port port)
9148 #t))))))
daeeea71
CM
9149 (native-inputs
9150 `(("python-setuptools" ,python-setuptools)))
9151 (inputs
9152 ;; python-magic needs to be able to find libmagic.so.
9153 `(("file" ,file)))
9154 (home-page "https://github.com/ahupp/python-magic")
9155 (synopsis "File type identification using libmagic")
9156 (description
9157 "This module uses ctypes to access the libmagic file type
9158identification library. It makes use of the local magic database and
9159supports both textual and MIME-type output. Note that this module and
9160the python-file module both provide a \"magic.py\" file; these two
9161modules, which are different and were developed separately, both serve
9162the same purpose: to provide Python bindings for libmagic.")
9163 (license license:expat)))
9164
9165(define-public python2-magic
9166 (package-with-python2 python-magic))
12af303f
CM
9167
9168(define-public python2-s3cmd
9169 (package
9170 (name "python2-s3cmd")
9171 (version "1.6.1")
9172 (source
9173 (origin
9174 (method url-fetch)
de67e922 9175 (uri (string-append "mirror://sourceforge/s3tools/s3cmd/" version "/"
12af303f
CM
9176 "s3cmd-" version ".tar.gz"))
9177 (sha256
9178 (base32
9179 "0ki1rzhm5icvi9ry5jswi4b22yqwyj0d2wsqsgilwx6qhi7pjxa6"))))
9180 (build-system python-build-system)
9181 (arguments
9182 ;; s3cmd is written for python2 only and contains no tests.
9183 `(#:python ,python-2
9184 #:tests? #f))
9185 (native-inputs
9186 `(("python2-setuptools" ,python2-setuptools)))
9187 (inputs
9188 `(("python2-dateutil" ,python2-dateutil)
9189 ;; The python-file package also provides a magic.py module.
9190 ;; This is an unfortunate state of affairs; however, s3cmd
9191 ;; fails to install if it cannot find specifically the
9192 ;; python-magic package. Thus we include it, instead of using
9193 ;; python-file. Ironically, s3cmd sometimes works better
9194 ;; without libmagic bindings at all:
9195 ;; https://github.com/s3tools/s3cmd/issues/198
9196 ("python2-magic" ,python2-magic)))
9197 (home-page "http://s3tools.org/s3cmd")
9198 (synopsis "Command line tool for S3-compatible storage services")
9199 (description
9200 "S3cmd is a command line tool for uploading, retrieving and managing data
9201in storage services that are compatible with the Amazon Simple Storage
9202Service (S3) protocol, including S3 itself. It supports rsync-like backup,
9203GnuPG encryption, and more. It also supports management of Amazon's
9204CloudFront content delivery network.")
3f641af0 9205 (license license:gpl2+)))
4323a5f0
AE
9206
9207(define-public python-pkgconfig
9208 (package
9209 (name "python-pkgconfig")
9210 (version "1.1.0")
9211 (source
9212 (origin
9213 (method url-fetch)
9214 (uri (pypi-uri "pkgconfig" version))
9215 (sha256
9216 (base32
9217 "1pw0kmvc57sjmaxi6c54fqsnihqj6hvhc9y1vaz36axafzqam7bh"))))
9218 (build-system python-build-system)
9219 (native-inputs
9220 `(("python-nose" ,python-nose)
9221 ("python-setuptools" ,python-setuptools)))
9222 (inputs
9223 `(("pkg-config" ,pkg-config)))
9224 (arguments
9225 `(;; Tests fail with "ValueError: _type_ 'v' not supported" on Python 3,
9226 ;; and on Python 2 they need the dl module deprecated since Python 2.6.
9227 #:tests? #f
9228 ;; Prevent creation of the egg. This works around
9229 ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 .
9230 #:configure-flags '("--single-version-externally-managed" "--root=/")
9231 ;; Hard-code the path to pkg-config.
9232 #:phases
9233 (modify-phases %standard-phases
9234 (add-before
9235 'build 'patch
9236 (lambda _
9237 (substitute* "pkgconfig/pkgconfig.py"
9238 (("cmd = 'pkg-config")
9239 (string-append "cmd = '" (which "pkg-config"))))
9240 #t)))))
9241 (home-page "http://github.com/matze/pkgconfig")
9242 (synopsis "Python interface for pkg-config")
9243 (description "This module provides a Python interface to pkg-config. It
9244can be used to find all pkg-config packages, check if a package exists,
9245check if a package meets certain version requirements, query CFLAGS and
9246LDFLAGS and parse the output to build extensions with setup.py.")
a0c6a36b 9247 (license license:expat)))
4323a5f0
AE
9248
9249(define-public python2-pkgconfig
9250 (package-with-python2 python-pkgconfig))
9251
2e697322
BW
9252(define-public python-bz2file
9253 (package
9254 (name "python-bz2file")
9255 (version "0.98")
9256 (source
9257 (origin
9258 (method url-fetch)
9259 (uri (pypi-uri "bz2file" version))
9260 (sha256
9261 (base32
9262 "126s53fkpx04f33a829yqqk8fj4png3qwg4m66cvlmhmwc8zihb4"))))
9263 (build-system python-build-system)
9264 (arguments
124df723 9265 `(#:tests? #f)) ; Tests use deprecated python modules.
2e697322
BW
9266 (home-page "https://github.com/nvawda/bz2file")
9267 (synopsis "Read and write bzip2-compressed files")
9268 (description
9269 "Bz2file is a Python library for reading and writing bzip2-compressed
9270files. It contains a drop-in replacement for the I/O interface in the
9271standard library's @code{bz2} module, including features from the latest
9272development version of CPython that are not available in older releases.")
3f641af0 9273 (license license:asl2.0)
2e697322
BW
9274 (properties `((python2-variant . ,(delay python2-bz2file))))))
9275
9276(define-public python2-bz2file
9277 (let ((base (package-with-python2
9278 (strip-python2-variant python-bz2file))))
9279 (package
9280 (inherit base)
9281 (native-inputs
124df723
BW
9282 `(("python2-setuptools" ,python2-setuptools)))
9283 (arguments
752bb447
BW
9284 `(#:python ,python-2
9285 #:phases
124df723
BW
9286 (modify-phases %standard-phases
9287 ;; 'python setup.py test' does not work as of 0.98.
9288 ;; There is only the one test file, so we run it directly.
9289 (replace 'check
9290 (lambda _ (zero? (system* "python"
9291 "test_bz2file.py"))))))))))
2e697322 9292
da4ac1aa
BW
9293(define-public python-future
9294 (package
9295 (name "python-future")
9296 (version "0.15.2")
9297 (source
9298 (origin
9299 (method url-fetch)
9300 (uri (pypi-uri "future" version))
9301 (sha256
9302 (base32
9303 "15wvcfzssc68xqnqi1dq4fhd0848hwi9jn42hxyvlqna40zijfrx"))))
9304 (build-system python-build-system)
9305 ;; Many tests connect to the network or are otherwise flawed.
9306 ;; https://github.com/PythonCharmers/python-future/issues/210
9307 (arguments
9308 `(#:tests? #f))
9309 (home-page "http://python-future.org")
9310 (synopsis "Single-source support for Python 3 and 2")
9311 (description
9312 "@code{python-future} is the missing compatibility layer between Python 2 and
9313Python 3. It allows you to use a single, clean Python 3.x-compatible codebase
9314to support both Python 2 and Python 3 with minimal overhead.")
9315 (license license:expat)
9316 (properties `((python2-variant . ,(delay python2-future))))))
9317
9318(define-public python2-future
9319 (let ((base (package-with-python2
9320 (strip-python2-variant python-future))))
9321 (package
9322 (inherit base)
9323 (native-inputs `(("python2-setuptools" ,python2-setuptools))))))
9324
8e451885
AE
9325(define-public python-cysignals
9326 (package
9327 (name "python-cysignals")
9328 (version "1.1.0")
9329 (source
9330 (origin
9331 (method url-fetch)
9332 (uri (pypi-uri "cysignals" version ".tar.bz2"))
9333 (sha256
9334 (base32
9335 "14cbyd9znlz6cxy1s3g6v6dv5jj45hn27pywkidd9b1zanaysqc6"))))
9336 (build-system python-build-system)
9337 (native-inputs
9338 `(("python-cython" ,python-cython)
9339 ("python-setuptools" ,python-setuptools)
9340 ("python-sphinx" ,python-sphinx)))
9341 (inputs
9342 `(("pari-gp" ,pari-gp)))
9343 (arguments
9344 `(#:modules ((guix build python-build-system)
9345 ((guix build gnu-build-system) #:prefix gnu:)
9346 (guix build utils))
9347 ;; FIXME: Tests are executed after installation and currently fail
9348 ;; when not installing into standard locations; the author is working
9349 ;; on a fix.
9350 #:tests? #f
9351 #:phases
9352 (modify-phases %standard-phases
9353 (add-before
9354 'build 'configure
9355 (assoc-ref gnu:%standard-phases 'configure)))))
9356 (home-page
9357 "https://github.com/sagemath/cysignals")
9358 (synopsis
9359 "Handling of interrupts and signals for Cython")
9360 (description
9361 "The cysignals package provides mechanisms to handle interrupts (and
9362other signals and errors) in Cython code, using two related approaches,
9363for mixed Cython/Python code or external C libraries and pure Cython code,
9364respectively.")
3f641af0 9365 (license license:lgpl3+)))
8e451885
AE
9366
9367(define-public python2-cysignals
9368 (package-with-python2 python-cysignals))
9369
63bcec71
DM
9370(define-public python2-shedskin
9371 (package
9372 (name "python2-shedskin")
9373 (version "0.9.4")
9374 (source
9375 (origin
9376 (method url-fetch)
9377 (uri (string-append "https://github.com/shedskin/shedskin/"
9378 "releases/download/v" version
9379 "/shedskin-" version ".tgz"))
9380 (sha256
9381 (base32
9382 "0nzwrzgw1ga8rw6f0ryq7zr9kkiavd1cqz5hzxkcbicl1dk7kz41"))))
9383 (build-system python-build-system)
9384 (arguments
9385 `(#:python ,python-2
9386 #:phases (modify-phases %standard-phases
9387 (add-after 'unpack 'fix-resulting-include-libs
9388 (lambda* (#:key inputs #:allow-other-keys)
9389 (let ((libgc (assoc-ref inputs "libgc"))
9390 (pcre (assoc-ref inputs "pcre")))
9391 (substitute* "shedskin/makefile.py"
9392 (("variable == 'CCFLAGS':[ ]*")
9393 (string-append "variable == 'CCFLAGS':\n"
9394 " line += ' -I " pcre "/include"
9395 " -I " libgc "/include'"))
9396 (("variable == 'LFLAGS':[ ]*")
9397 (string-append "variable == 'LFLAGS':\n"
9398 " line += ' -L" pcre "/lib"
9399 " -L " libgc "/lib'")))
9400 #t))))))
9401 (native-inputs `(("python2-setuptools" ,python2-setuptools)))
9402 (inputs `(("pcre" ,pcre)
9403 ("libgc" ,libgc)))
9404 (home-page "https://shedskin.github.io/")
9405 (synopsis "Experimental Python-2 to C++ Compiler")
9406 (description (string-append "This is an experimental compiler for a subset of
9407Python. It generates C++ code and a Makefile."))
3f641af0 9408 (license (list license:gpl3 license:bsd-3 license:expat))))
88bb4197
LG
9409
9410(define-public python2-rope
9411 (package
9412 (name "python2-rope")
9413 (version "0.10.3")
9414 (source
9415 (origin
9416 (method url-fetch)
9417 (uri (pypi-uri "rope" version))
9418 (sha256
9419 (base32
9420 "18k5znhpwvrfck3yp0jmhd5j8r0f0s8bk1zh5yhs2cfgmfhbwigb"))))
9421 (arguments
9422 ;; Rope is currently python-2 only.
9423 ;; https://github.com/python-rope/rope/issues/57
9424 `(#:python ,python-2))
9425 (build-system python-build-system)
9426 (native-inputs
9427 `(("python2-unittest2" ,python2-unittest2)
9428 ("python2-setuptools" ,python2-setuptools)))
9429 (home-page "https://github.com/python-rope/rope")
9430 (synopsis "Refactoring library for Python")
9431 (description "Rope is a refactoring library for Python. It facilitates
9432the renaming, moving and extracting of attributes, functions, modules, fields
9433and parameters in Python 2 source code. These refactorings can also be applied
9434to occurences in strings and comments.")
3f641af0 9435 (license license:gpl2)))
6ba8ca17
9436
9437(define-public python-py3status
9438 (package
9439 (name "python-py3status")
d2262d70 9440 (version "3.1")
6ba8ca17
9441 (source
9442 (origin
9443 (method url-fetch)
9444 (uri (pypi-uri "py3status" version))
9445 (sha256
9446 (base32
d2262d70 9447 "0i283z1pivmir61z8kbiycigc94l61v33ygzkhczf1ifq7cppyds"))))
6ba8ca17
9448 (build-system python-build-system)
9449 (native-inputs
9450 `(("python-setuptools" ,python-setuptools)))
9451 (home-page "https://github.com/ultrabug/py3status")
9452 (synopsis "Extensible i3status wrapper written in Python")
9453 (description "py3status is an i3status wrapper which extends i3status
9454functionality in a modular way, allowing you to extend your panel with your
9455own code, responding to click events and updating clock every second.")
3f641af0 9456 (license license:bsd-3)))
b8fdbca3
HG
9457
9458(define-public python-tblib
9459 (package
9460 (name "python-tblib")
9461 (version "1.3.0")
9462 (source (origin
9463 (method url-fetch)
9464 (uri (pypi-uri "tblib" version))
9465 (sha256 (base32
9466 "02iahfkfa927hb4jq2bak36ldihwapzacfiq5lyxg8llwn98a1yi"))))
9467 (build-system python-build-system)
9468 (arguments
9469 `(#:phases
9470 (modify-phases %standard-phases
9471 (replace 'check
9472 (lambda _
9473 ;; Upstream runs tests after installation and the package itself
9474 ;; resides in a subdirectory. Extend PYTHONPATH so it will be
9475 ;; found.
9476 (setenv "PYTHONPATH"
9477 (string-append (getcwd) "/build/lib:"
9478 (getenv "PYTHONPATH")))
9479 (zero? (system* "py.test" "-vv" "tests" "README.rst")))))))
9480 (native-inputs
9481 `(("python-pytest" ,python-pytest)
9482 ("python-setuptools" ,python-setuptools)
9483 ("python-six" ,python-six)))
9484 (home-page "https://github.com/ionelmc/python-tblib")
9485 (synopsis "Traceback serialization library")
9486 (description
9487 "Traceback serialization allows you to:
9488
9489@enumerate
9490@item Pickle tracebacks and raise exceptions with pickled tracebacks in
9491different processes. This allows better error handling when running code over
9492multiple processes (imagine multiprocessing, billiard, futures, celery etc).
9493
9494@item Parse traceback strings and raise with the parsed tracebacks.
9495@end itemize")
3f641af0 9496 (license license:bsd-3)))
b8fdbca3
HG
9497
9498(define-public python2-tblib
9499 (package-with-python2 python-tblib))
1a024de4
HG
9500
9501(define-public python-sqlparse
9502 (package
9503 (name "python-sqlparse")
9504 (version "0.1.19")
9505 (source (origin
9506 (method url-fetch)
9507 (uri (pypi-uri "sqlparse" version))
9508 (sha256
9509 (base32
9510 "1s2fvaxgh9kqzrd6iwy5h7i61ckn05plx9np13zby93z3hdbx5nq"))))
9511 (build-system python-build-system)
9512 (arguments
9513 `(#:phases
9514 (modify-phases %standard-phases
9515 (replace 'check
9516 (lambda* _
9517 ;; setup.py-integrated 2to3 only affects the build files, but
9518 ;; py.test is using the source files. So we need to convert them
9519 ;; manually.
9520 (when (zero? (system* "python3"))
9521 (system* "2to3" "--no-diff" "-wn" "sqlparse" "tests"))
9522 (zero? (system* "py.test")))))))
9523 (native-inputs
9524 `(("python-pytest" ,python-pytest)
9525 ("python-setuptools" ,python-setuptools)))
9526 (home-page "https://github.com/andialbrecht/sqlparse")
9527 (synopsis "Non-validating SQL parser")
9528 (description "Sqlparse is a non-validating SQL parser for Python. It
9529provides support for parsing, splitting and formatting SQL statements.")
3f641af0 9530 (license license:bsd-3)))
1a024de4
HG
9531
9532(define-public python2-sqlparse
9533 (package-with-python2 python-sqlparse))
68b9d242
SB
9534
9535(define-public python-greenlet
9536 (package
9537 (name "python-greenlet")
9538 (version "0.4.9")
9539 (source (origin
9540 (method url-fetch)
9541 (uri (pypi-uri "greenlet" version))
9542 (sha256
9543 (base32
9544 "04h0m54dyqg49vyarq26mry6kbivnpl47rnmmrk9qn8wpfxviybr"))))
9545 (build-system python-build-system)
9546 (native-inputs
9547 `(("python-setuptools" ,python-setuptools)))
9548 (home-page "https://greenlet.readthedocs.io/")
9549 (synopsis "Lightweight in-process concurrent programming")
9550 (description
9551 "Greenlet package is a spin-off of Stackless, a version of CPython
9552that supports micro-threads called \"tasklets\". Tasklets run
9553pseudo-concurrently (typically in a single or a few OS-level threads) and
9554are synchronized with data exchanges on \"channels\".")
3f641af0 9555 (license (list license:psfl license:expat))))
68b9d242
SB
9556
9557(define-public python2-greenlet
9558 (package-with-python2 python-greenlet))
d79a343b
SB
9559
9560(define-public python-gevent
9561 (package
9562 (name "python-gevent")
9563 (version "1.1.1")
9564 (source (origin
9565 (method url-fetch)
9566 (uri (pypi-uri "gevent" version))
9567 (sha256
9568 (base32
9569 "1smf3kvidpdiyi2c81alal74p2zm0clrm6xbyy6y1k9a3f2vkrbf"))
9570 (modules '((guix build utils)))
9571 (snippet
9572 '(begin
9573 ;; unbunding libev and c-ares
9574 (for-each delete-file-recursively '("libev" "c-ares"))
9575 ;; fixing testsuite
9576 (call-with-output-file "greentest/__init__.py" noop)
9577 (substitute* "greentest/testrunner.py"
9578 (("import util") "from . import util")
9579 (("from util import log") "from .util import log"))))))
9580 (build-system python-build-system)
9581 (propagated-inputs
9582 `(("python-greenlet" ,python-greenlet)))
9583 (native-inputs
9584 `(("python-setuptools" ,python-setuptools)
9585 ("python-six" ,python-six)))
9586 (inputs
9587 `(("c-ares" ,c-ares)
9588 ("libev" ,libev)))
9589 (home-page "http://www.gevent.org/")
9590 (synopsis "Coroutine-based network library")
9591 (description
9592 "gevent is a coroutine-based Python networking library that uses greenlet
9593to provide a high-level synchronous API on top of the libev event loop.")
9594 (license license:expat)))
9595
9596(define-public python2-gevent
9597 (package-with-python2 python-gevent))
da3aeeb6
SB
9598
9599(define-public python-twisted
9600 (package
9601 (name "python-twisted")
9602 (version "16.2.0")
9603 (source (origin
9604 (method url-fetch)
8ea8e8d3 9605 (uri (pypi-uri "Twisted" version ".tar.bz2"))
da3aeeb6
SB
9606 (sha256
9607 (base32
9608 "0ydxrp9myw1mvsz3qfzx5579y5llmqa82pxvqchgp5syczffi450"))))
9609 (build-system python-build-system)
9610 (native-inputs
45912170
SB
9611 `(("python-setuptools" ,python-setuptools)))
9612 (propagated-inputs
9613 `(("python-zope-interface" ,python-zope-interface)))
da3aeeb6
SB
9614 (home-page "https://twistedmatrix.com/")
9615 (synopsis "Asynchronous networking framework written in Python")
9616 (description
9617 "Twisted is an extensible framework for Python programming, with special
9618focus on event-based network programming and multiprotocol integration.")
9619 (license license:expat)))
9620
9621(define-public python2-twisted
9622 (package-with-python2 python-twisted))
d0b6fed6 9623
4d3fa5a4
EF
9624(define-public python-pika
9625 (package
9626 (name "python-pika")
9627 (version "0.10.0")
9628 (source
9629 (origin
9630 (method url-fetch)
9631 (uri (pypi-uri "pika" version))
9632 (sha256
9633 (base32
9634 "0nb4h08di432lv7dy2v9kpwgk0w92f24sqc2hw2s9vwr5b8v8xvj"))))
9635 (build-system python-build-system)
9636 (native-inputs
9637 `(("python-twisted" ,python-twisted)))
9638 (home-page "https://pika.readthedocs.org")
9639 (synopsis "Pure Python AMQP Client Library")
9640 (description
9641 "Pika is a pure-Python implementation of the AMQP (Advanced Message Queuing
9642Protocol) 0-9-1 protocol that tries to stay fairly independent of the underlying
9643network support library.")
9644 (license license:bsd-3)))
9645
9646(define-public python2-pika
9647 (package-with-python2 python-pika))
9648
d0b6fed6
DM
9649(define-public python-ply
9650 (package
9651 (name "python-ply")
9652 (version "3.8")
9653 (source
9654 (origin
9655 (method url-fetch)
9656 (uri (string-append
9657 "https://pypi.python.org/packages/"
9658 "96/e0/430fcdb6b3ef1ae534d231397bee7e9304be14a47a267e82ebcb3323d0b5"
9659 "/ply-" version ".tar.gz"))
9660 (sha256
9661 (base32
9662 "1f70ipynmiy09k6px2j7v4w5cdrc21za3xs2k6f1bsvb0bzvvlg7"))))
9663 (build-system python-build-system)
9664 (home-page "http://www.dabeaz.com/ply/")
9665 (synopsis "Python Lex & Yacc")
9666 (description "PLY is a @code{lex}/@code{yacc} implemented purely in Python.
9667It uses LR parsing and does extensive error checking.")
3f641af0 9668 (license license:bsd-3)
d0b6fed6
DM
9669 (properties `((python2-variant . ,(delay python2-ply))))))
9670
9671(define-public python2-ply
9672 (package
9673 (inherit (package-with-python2
9674 (strip-python2-variant python-ply)))
9675 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
d951bd54
SB
9676
9677(define-public python-tabulate
9678 (package
9679 (name "python-tabulate")
9680 (version "0.7.5")
9681 (source (origin
9682 (method url-fetch)
9683 (uri (pypi-uri "tabulate" version))
9684 (sha256
9685 (base32
9686 "03l1r7ddd1a0j2snv1yd0hlnghjad3fg1an1jr8936ksv75slwch"))
9687 ;; Fix tests
9688 (modules '((guix build utils)))
9689 (snippet '(substitute* '("test/test_cli.py"
9690 "test/test_input.py"
9691 "test/test_output.py"
9692 "test/test_regression.py")
9693 (("from common") "from nose.tools")))))
9694 (build-system python-build-system)
9695 (native-inputs
9696 `(("python-setuptools" ,python-setuptools)
9697 ;; For testing
9698 ("python-nose" ,python-nose)))
9699 (home-page "https://bitbucket.org/astanin/python-tabulate")
9700 (synopsis "Pretty-print tabular data")
9701 (description
9702 "Tabulate is a library and command-line utility to pretty-print tabular
9703data in Python.")
9704 (license license:expat)))
9705
9706(define-public python2-tabulate
9707 (package-with-python2 python-tabulate))
1c4c8a33
SB
9708
9709(define-public python-kazoo
9710 (package
9711 (name "python-kazoo")
9712 (version "2.2.1")
9713 (source
9714 (origin
9715 (method url-fetch)
9716 (uri (pypi-uri "kazoo" version))
9717 (sha256
9718 (base32
9719 "10pb864if9qi2pq9lfb9m8f7z7ss6rml80gf1d9h64lap5crjnjj"))))
9720 (build-system python-build-system)
9721 (arguments '(#:tests? #f)) ; XXX: needs zookeeper
9722 (native-inputs
c18899e8
SB
9723 `(("python-setuptools" ,python-setuptools)))
9724 (propagated-inputs
9725 `(("python-six" ,python-six)))
1c4c8a33
SB
9726 (home-page "https://kazoo.readthedocs.org")
9727 (synopsis "High-level Zookeeper client library")
9728 (description
9729 "Kazoo is a Python client library for the Apache Zookeeper distributed
9730application service. It is designed to be easy to use and to avoid common
9731programming errors.")
3f641af0 9732 (license license:asl2.0)))
1c4c8a33
SB
9733
9734(define-public python2-kazoo
9735 (package-with-python2 python-kazoo))
45dda35e
SB
9736
9737(define-public python-pykafka
9738 (package
9739 (name "python-pykafka")
9740 (version "2.4.0")
9741 (source (origin
9742 (method url-fetch)
c6bccf71
EF
9743 (uri (string-append
9744 "https://pypi.python.org/packages/8b/3e/"
9745 "384eeff406b06315738b62483fd2126c6e4f544167116b17cc04ea7d2a59/"
9746 "pykafka-" version ".tar.gz"))
45dda35e
SB
9747 (sha256
9748 (base32
9749 "1id6sr159p6aa13bxcqyr9gln8sqg1l0ddzns5iws8kk5q1p5cfv"))))
9750 (build-system python-build-system)
9751 (arguments '(#:tests? #f)) ; XXX: needs zookeeper, kafka, etc.
9752 (native-inputs
c8fa3d9b
SB
9753 `(("python-setuptools" ,python-setuptools)))
9754 (propagated-inputs
45dda35e
SB
9755 `(("python-gevent" ,python-gevent)
9756 ("python-kazoo" ,python-kazoo)
45dda35e
SB
9757 ("python-tabulate" ,python-tabulate)))
9758 (inputs
9759 `(("librdkafka" ,librdkafka)))
9760 (home-page "https://pykafka.readthedocs.io/")
9761 (synopsis "Apache Kafka client for Python")
9762 (description
9763 "PyKafka is a client for the Apache Kafka distributed messaging system.
9764It includes Python implementations of Kafka producers and consumers, which
9765are optionally backed by a C extension built on librdkafka.")
3f641af0 9766 (license license:asl2.0)))
45dda35e
SB
9767
9768(define-public python2-pykafka
9769 (package-with-python2 python-pykafka))
a44fd439
DM
9770
9771(define-public python-wcwidth
9772 (package
9773 (name "python-wcwidth")
9774 (version "0.1.6")
9775 (source
9776 (origin
9777 (method url-fetch)
9778 (uri (string-append
9779 "https://pypi.python.org/packages/"
9780 "c2/d1/7689293086a8d5320025080cde0e3155b94ae0a7496fb89a3fbaa92c354a/"
9781 "wcwidth-" version ".tar.gz"))
9782 (sha256
9783 (base32
9784 "02wjrpf001gjdjsaxxbzcwfg19crlk2dbddayrfc2v06f53yrcyw"))))
9785 (build-system python-build-system)
9786 (home-page "https://github.com/jquast/wcwidth")
66e07664 9787 (synopsis "Measure number of terminal column cells of wide-character codes")
a44fd439
DM
9788 (description "Wcwidth measures the number of terminal column cells of
9789wide-character codes. It is useful for those implementing a terminal emulator,
9790or programs that carefully produce output to be interpreted by one. It is a
9791Python implementation of the @code{wcwidth} and @code{wcswidth} C functions
9792specified in POSIX.1-2001 and POSIX.1-2008.")
e4875826
LF
9793 (license license:expat)
9794 (properties `((python2-variant . ,(delay python2-wcwidth))))))
a44fd439
DM
9795
9796(define-public python2-wcwidth
9797 (package
9798 (inherit (package-with-python2
9799 (strip-python2-variant python-wcwidth)))
9800 (native-inputs `(("python2-setuptools" ,python2-setuptools)))))
0de78c95
DP
9801
9802(define-public python2-jsonrpclib
9803 (package
9804 (name "python2-jsonrpclib")
9805 (version "0.1.7")
9806 (source (origin
9807 (method url-fetch)
9808 (uri (string-append
9809 "https://pypi.python.org/packages/source/j/jsonrpclib/"
9810 "jsonrpclib-" version ".tar.gz"))
9811 (sha256
9812 (base32
9813 "02vgirw2bcgvpcxhv5hf3yvvb4h5wzd1lpjx8na5psdmaffj6l3z"))))
9814 (build-system python-build-system)
9815 (native-inputs
9816 `(("python2-setuptools" ,python2-setuptools)))
9817 (arguments
9818 `(#:tests? #f
9819 #:python ,python-2))
9820 (home-page "https://github.com/joshmarshall/jsonrpclib/")
9821 (synopsis "Implementation of JSON-RPC specification for Python")
9822 (description
9823 "This library is an implementation of the JSON-RPC specification.
9824It supports both the original 1.0 specification, as well as the
9825new (proposed) 2.0 spec, which includes batch submission, keyword arguments,
9826etc.")
3f641af0 9827 (license license:asl2.0)))
9250b0f3
SB
9828
9829(define-public python-chai
9830 (package
9831 (name "python-chai")
9832 (version "1.1.1")
9833 (source (origin
9834 (method url-fetch)
9835 (uri (pypi-uri "chai" version))
9836 (sha256
9837 (base32
9838 "016kf3irrclpkpvcm7q0gmkfibq7jgy30a9v73pp42bq9h9a32bl"))))
9839 (build-system python-build-system)
9840 (native-inputs
9841 `(("python-setuptools" ,python-setuptools)))
9842 (home-page "https://github.com/agoragames/chai")
9843 (synopsis "Mocking framework for Python")
9844 (description
9845 "Chai provides an api for mocking, stubbing and spying your python
9846objects, patterned after the Mocha library for Ruby.")
3f641af0 9847 (license license:bsd-3)))
9250b0f3
SB
9848
9849(define-public python2-chai
9850 (package-with-python2 python-chai))
9851
ae43baa8
SB
9852(define-public python-arrow
9853 (package
9854 (name "python-arrow")
9855 (version "0.8.0")
9856 (source (origin
9857 (method url-fetch)
9858 (uri (pypi-uri "arrow" version))
9859 (sha256
9860 (base32
9861 "1bz7hkdgpqcjs866y58z8jywpy7al0f4rxdr00bh2l5qddyw245j"))))
9862 (build-system python-build-system)
9863 (native-inputs
9864 `(("python-setuptools" ,python-setuptools)
ae43baa8
SB
9865 ;; For testing
9866 ("python-chai" ,python-chai)
9867 ("python-simplejson" ,python-simplejson)))
36aed736
SB
9868 (propagated-inputs
9869 `(("python-dateutil" ,python-dateutil-2)))
ae43baa8
SB
9870 (home-page "https://github.com/crsmithdev/arrow/")
9871 (synopsis "Dates and times for Python")
9872 (description
9873 "Arrow is a Python library to creating, manipulating, formatting and
9874converting dates, times, and timestamps. It implements and updates the
9875datetime type.")
3f641af0 9876 (license license:asl2.0)))
ae43baa8
SB
9877
9878(define-public python2-arrow
9879 (package-with-python2 python-arrow))
9880
1f2b62a4
SB
9881(define-public python-inflection
9882 (package
9883 (name "python-inflection")
9884 (version "0.3.1")
9885 (source
9886 (origin (method url-fetch)
9887 (uri (pypi-uri "inflection" version))
9888 (sha256
9889 (base32
9890 "1jhnxgnw8y3mbzjssixh6qkc7a3afc4fygajhqrqalnilyvpzshq"))))
9891 (build-system python-build-system)
9892 (native-inputs
9893 `(("python-setuptools" ,python-setuptools)))
9894 (home-page "http://github.com/jpvanhal/inflection")
9895 (synopsis "Python string transformation library")
9896 (description
9897 "Inflection is a string transformation library. It singularizes
9898and pluralizes English words, and transforms strings from CamelCase to
9899underscored string.")
9900 (license license:expat)))
9901
9902(define-public python2-inflection
9903 (package-with-python2 python-inflection))
9904
18995566
SB
9905(define-public python-pylev
9906 (package
9907 (name "python-pylev")
9908 (version "1.3.0")
9909 (source (origin
9910 (method url-fetch)
9911 (uri (pypi-uri "pylev" version))
9912 (sha256
9913 (base32
9914 "1hz1x9blsbxya1y9nnhnwwdnqmakxi9mc0jkwj0rn6b1h44i0f86"))))
9915 (build-system python-build-system)
9916 (native-inputs
9917 `(("python-setuptools" ,python-setuptools)))
9918 (home-page "http://github.com/toastdriven/pylev")
9919 (synopsis "Levenshtein distance implementation in Python")
9920 (description "Pure Python Levenshtein implementation, based off the
9921Wikipedia code samples at
9922@url{http://en.wikipedia.org/wiki/Levenshtein_distance}.")
3f641af0 9923 (license license:bsd-3)))
18995566
SB
9924
9925(define-public python2-pylev
9926 (package-with-python2 python-pylev))
9927
f5deff7a
SB
9928(define-public python-cleo
9929 (package
9930 (name "python-cleo")
9931 (version "0.4.1")
9932 (source (origin
9933 (method url-fetch)
9934 (uri (pypi-uri "cleo" version))
9935 (sha256
9936 (base32
9937 "1k2dcl6mqpn5bljyl6w42rqyd9mb3y9kh2mg7m2x3kfjwvg0rpva"))))
9938 (build-system python-build-system)
9939 (native-inputs
9403150a 9940 `(("python-setuptools" ,python-setuptools)
f5deff7a
SB
9941 ;; For testing
9942 ("python-mock" ,python-mock)
9943 ("python-pytest" ,python-pytest)))
9403150a
SB
9944 (propagated-inputs
9945 `(("python-psutil" ,python-psutil)
9946 ("python-pylev" ,python-pylev)))
f5deff7a
SB
9947 (home-page "https://github.com/sdispater/cleo")
9948 (synopsis "Command-line arguments library for Python")
9949 (description
9950 "Cleo allows you to create command-line commands with signature in
9951docstring and colored output.")
9952 (license license:expat)))
9953
9954(define-public python2-cleo
9955 (package-with-python2 python-cleo))
9956
77cadb43
SB
9957(define-public python-lazy-object-proxy
9958 (package
9959 (name "python-lazy-object-proxy")
9960 (version "1.2.2")
9961 (source (origin
9962 (method url-fetch)
9963 (uri (pypi-uri "lazy-object-proxy" version))
9964 (sha256
9965 (base32
9966 "0s22aqqkdscyh8sjspyyax7qa1aiz8p4midrnyf39717fhfczm6x"))))
9967 (build-system python-build-system)
9968 (native-inputs
9969 `(("python-setuptools" ,python-setuptools)))
9970 (home-page "https://github.com/ionelmc/python-lazy-object-proxy")
9971 (synopsis "Lazy object proxy for python")
9972 (description
9973 "Lazy object proxy is an object that wraps a callable but defers the call
9974until the object is actually required, and caches the result of said call.")
3f641af0 9975 (license license:bsd-2)))
77cadb43
SB
9976
9977(define-public python2-lazy-object-proxy
9978 (package-with-python2 python-lazy-object-proxy))
9979
5477e05f
SB
9980(define-public python-dnspython
9981 (package
9982 (name "python-dnspython")
6c514128 9983 (version "1.15.0")
5477e05f
SB
9984 (source (origin
9985 (method url-fetch)
9986 (uri (string-append "http://www.dnspython.org/kits/"
9987 version "/dnspython-" version ".tar.gz"))
9988 (sha256
9989 (base32
6c514128 9990 "0jr4v2pd90i6l1xxbss2m05psbjaxvyvvvpq44wycijpfgjqln8i"))))
5477e05f
SB
9991 (build-system python-build-system)
9992 (arguments '(#:tests? #f)) ; XXX: requires internet access
9993 (native-inputs
9994 `(("python-setuptools" ,python-setuptools)))
9995 (home-page "http://www.dnspython.org")
9996 (synopsis "DNS toolkit for Python")
9997 (description
9998 "dnspython is a DNS toolkit for Python. It supports almost all record
9999types. It can be used for queries, zone transfers, and dynamic updates.
10000It supports TSIG authenticated messages and EDNS0.")
10001 (license license:expat)))
10002
10003(define-public python2-dnspython
10004 (package-with-python2 python-dnspython))
10005
22711e25
SB
10006(define-public python-email-validator
10007 (package
10008 (name "python-email-validator")
10009 (version "1.0.1")
10010 (source
10011 (origin (method url-fetch)
10012 (uri (pypi-uri "email_validator" version))
10013 (sha256
10014 (base32
10015 "0mn8jg5h8ifl8w6a6m0hq8kbk0mzw9vm054qfamkn89b3npz52qw"))))
10016 (build-system python-build-system)
10017 (arguments
10018 '(#:phases
10019 (modify-phases %standard-phases
10020 (add-before 'build 'use-dnspython
10021 (lambda _
10022 (substitute* "setup.py"
10023 (("dnspython3") "dnspython"))
10024 #t)))))
10025 (native-inputs
d42560bd
SB
10026 `(("python-setuptools" ,python-setuptools)))
10027 (propagated-inputs
22711e25 10028 `(("python-dnspython" ,python-dnspython)
d42560bd 10029 ("python-idna" ,python-idna)))
22711e25
SB
10030 (home-page "https://github.com/JoshData/python-email-validator")
10031 (synopsis "Email address validation library for Python")
10032 (description
10033 "This library validates email address syntax and deliverability.")
3f641af0 10034 (license license:cc0)))
22711e25
SB
10035
10036(define-public python2-email-validator
10037 (package-with-python2 python-email-validator))
10038
8987d91e
SB
10039(define-public python-ukpostcodeparser
10040 (package
10041 (name "python-ukpostcodeparser")
10042 (version "1.0.3")
10043 (source (origin
10044 (method url-fetch)
10045 (uri (pypi-uri "UkPostcodeParser" version))
10046 (sha256
10047 (base32
10048 "1jwg9z4rz51mcka1821rwgycsd0mcicyp1kiwjfa2kvg8bm9p2qd"))))
10049 (build-system python-build-system)
10050 (native-inputs
10051 `(("python-setuptools" ,python-setuptools)))
10052 (home-page "https://github.com/hamstah/ukpostcodeparser")
10053 (synopsis "UK Postcode parser for Python")
10054 (description
10055 "This library provides the @code{parse_uk_postcode} function for
10056parsing UK postcodes.")
10057 (license license:expat)))
10058
10059(define-public python2-ukpostcodeparser
10060 (package-with-python2 python-ukpostcodeparser))
ea92ae01
SB
10061
10062(define-public python-fake-factory
10063 (package
10064 (name "python-fake-factory")
7adc698f 10065 (version "0.7.2")
ea92ae01
SB
10066 (source (origin
10067 (method url-fetch)
10068 (uri (pypi-uri "fake-factory" version))
10069 (sha256
10070 (base32
7adc698f 10071 "0vs0dkmg0dlaxf8w6q2i3k0i03gmp56ablldv7ci9x3nbadkn71g"))))
ea92ae01 10072 (build-system python-build-system)
ea92ae01 10073 (native-inputs
bbcd7297 10074 `(("python-setuptools" ,python-setuptools)
ea92ae01
SB
10075 ;; For testing
10076 ("python-email-validator" ,python-email-validator)
10077 ("python-mock" ,python-mock)
10078 ("python-ukpostcodeparser" ,python-ukpostcodeparser)))
bbcd7297
SB
10079 (propagated-inputs
10080 `(("python-dateutil" ,python-dateutil-2)
10081 ("python-six" ,python-six)))
7adc698f 10082 (home-page "https://github.com/joke2k/faker")
ea92ae01
SB
10083 (synopsis "Python package that generates fake data")
10084 (description
10085 "Faker is a Python package that generates fake data such as names,
10086addresses, and phone numbers.")
10087 (license license:expat)
10088 (properties `((python2-variant . ,(delay python2-fake-factory))))))
10089
10090(define-public python2-fake-factory
10091 (let ((base (package-with-python2 (strip-python2-variant
10092 python-fake-factory))))
10093 (package
10094 (inherit base)
24c9aa18 10095 (propagated-inputs
ea92ae01 10096 `(("python2-ipaddress" ,python2-ipaddress)
24c9aa18 10097 ,@(package-propagated-inputs base))))))
ea92ae01 10098
b49504fd
SB
10099(define-public python-pyaml
10100 (package
10101 (name "python-pyaml")
10102 (version "15.8.2")
10103 (source (origin
10104 (method url-fetch)
10105 (uri (pypi-uri "pyaml" version))
10106 (sha256
10107 (base32
10108 "1f5m28vkh4ksq3d80d8mmd2z8wxvc3mgy2pmrv2751dm2xgznm4w"))))
10109 (build-system python-build-system)
10110 (native-inputs
10111 `(("python-setuptools" ,python-setuptools)))
10112 (propagated-inputs
10113 `(("python-pyyaml" ,python-pyyaml)))
10114 (home-page "https://github.com/mk-fg/pretty-yaml")
10115 (synopsis "YAML pretty-print library for Python")
10116 (description
10117 "pyaml is a PyYAML based python module to produce pretty and readable
10118YAML-serialized data.")
3f641af0 10119 (license (license:non-copyleft "http://www.wtfpl.net/txt/copying/"))))
b49504fd
SB
10120
10121(define-public python2-pyaml
10122 (package-with-python2 python-pyaml))
10123
347175a2
SB
10124(define-public python-flexmock
10125 (package
10126 (name "python-flexmock")
10127 (version "0.10.2")
10128 (source (origin
10129 (method url-fetch)
10130 (uri (pypi-uri "flexmock" version))
10131 (sha256
10132 (base32
10133 "0arc6njvs6i9v9hgvzk5m50296g7zy5m9d7pyb43vdsdgxrci5gy"))))
10134 (build-system python-build-system)
10135 (native-inputs
10136 `(("python-setuptools" ,python-setuptools)))
10137 (home-page "https://flexmock.readthedocs.org")
10138 (synopsis "Testing library for Python")
10139 (description
10140 "flexmock is a testing library for Python that makes it easy to create
10141mocks, stubs and fakes.")
3f641af0 10142 (license license:bsd-3)))
347175a2
SB
10143
10144(define-public python2-flexmock
10145 (package-with-python2 python-flexmock))
10146
5a744191
SB
10147(define-public python-orator
10148 (package
10149 (name "python-orator")
10150 (version "0.8.2")
10151 (source (origin
10152 (method url-fetch)
10153 (uri (pypi-uri "orator" version))
10154 (sha256
10155 (base32
10156 "1li49irsqha17nrda4nsb48biyy0rarp9pphf0jpqwm5zr8hv569"))))
10157 (build-system python-build-system)
10158 (arguments '(#:tests? #f)) ; no tests
10159 (native-inputs
b2676030
SB
10160 `(("python-setuptools" ,python-setuptools)))
10161 (propagated-inputs
5a744191
SB
10162 `(("python-arrow" ,python-arrow)
10163 ("python-blinker" ,python-blinker)
10164 ("python-cleo" ,python-cleo)
10165 ("python-fake-factory" ,python-fake-factory)
10166 ("python-inflection" ,python-inflection)
10167 ("python-lazy-object-proxy" ,python-lazy-object-proxy)
10168 ("python-pyaml" ,python-pyaml)
5a744191
SB
10169 ("python-simplejson" ,python-simplejson)
10170 ("python-wrapt" ,python-wrapt)))
10171 (home-page "https://orator-orm.com/")
10172 (synopsis "ActiveRecord ORM for Python")
10173 (description
10174 "Orator provides a simple ActiveRecord-like Object Relational Mapping
10175implementation for Python.")
10176 (license license:expat)
10177 (properties `((python2-variant . ,(delay python2-orator))))))
10178
10179(define-public python2-orator
10180 (let ((base (package-with-python2 (strip-python2-variant python-orator))))
10181 (package
10182 (inherit base)
06961617 10183 (propagated-inputs
5a744191 10184 `(("python2-ipaddress" ,python2-ipaddress)
06961617 10185 ,@(package-propagated-inputs base))))))
f4155188
DM
10186
10187(define-public python-prompt-toolkit
10188 (package
10189 (name "python-prompt-toolkit")
d15e2ef0 10190 (version "1.0.7")
f4155188
DM
10191 (source
10192 (origin
10193 (method url-fetch)
d15e2ef0 10194 (uri (pypi-uri "prompt_toolkit" version ".tar.gz"))
f4155188
DM
10195 (sha256
10196 (base32
d15e2ef0 10197 "1vyjd0b7wciv55i19l44zy0adx8q7ss79lhy2r9d1rwz2y4822zg"))))
f4155188
DM
10198 (build-system python-build-system)
10199 (inputs `(("python-wcwidth" ,python-wcwidth)
10200 ("python-pygments" ,python-pygments)))
10201 (native-inputs `(("python-six" ,python-six)))
10202 (home-page "https://github.com/jonathanslenders/python-prompt-toolkit")
10203 (synopsis "Library for building command line interfaces in Python")
10204 (description
10205 "Prompt-Toolkit is a library for building interactive command line
10206interfaces in Python. It's like GNU Readline but it also features syntax
10207highlighting while typing, out-of-the-box multi-line input editing, advanced
10208code completion, incremental search, support for Chinese double-width
10209characters, mouse support, and auto suggestions.")
3f641af0 10210 (license license:bsd-3)
f4155188
DM
10211 (properties `((python2-variant . ,(delay python2-prompt-toolkit))))))
10212
10213(define-public python2-prompt-toolkit
10214 (let ((base (package-with-python2 (strip-python2-variant python-prompt-toolkit))))
10215 (package
10216 (inherit base)
10217 (native-inputs
10218 `(("python2-setuptools" ,python2-setuptools)
10219 ,@(package-native-inputs base))))))
a502dfbf
DM
10220
10221(define-public python-jedi
10222 (package
10223 (name "python-jedi")
10224 (version "0.9.0")
10225 (source
10226 (origin
10227 (method url-fetch)
10228 (uri (pypi-uri "jedi" version))
10229 (sha256
10230 (base32
10231 "0c8x962ynpx001fdvp07m2q5jk4igkxbj3rmnydavphvlgxijk1v"))))
10232 (build-system python-build-system)
10233 (home-page "https://github.com/davidhalter/jedi")
10234 (synopsis
10235 "Autocompletion for Python that can be used for text editors")
10236 (description
10237 "Jedi is an autocompletion tool for Python that can be used for text editors.")
10238 (license license:expat)
10239 (properties `((python2-variant . ,(delay python2-jedi))))))
10240
10241(define-public python2-jedi
10242 (let ((base (package-with-python2 (strip-python2-variant python-jedi))))
10243 (package
10244 (inherit base)
10245 (native-inputs
10246 `(("python2-setuptools" ,python2-setuptools)
10247 ,@(package-native-inputs base))))))
c2f0dc6e
DM
10248
10249(define-public ptpython
10250 (package
10251 (name "ptpython")
10252 (version "0.34")
10253 (source (origin
10254 (method url-fetch)
10255 (uri (pypi-uri "ptpython" version))
10256 (sha256
10257 (base32
10258 "1mmbiyzf0n8hm7z2a562x7w5cbl6jc0zsk6vp40q1z4cyblv1k13"))))
10259 (build-system python-build-system)
10260 (inputs
10261 `(("python-docopt" ,python-docopt)
10262 ("python-jedi" ,python-jedi)
10263 ("python-prompt-toolkit" ,python-prompt-toolkit)
10264 ("python-pygments" ,python-pygments)
10265 ("python-setuptools" ,python-setuptools)))
10266 (home-page "https://github.com/jonathanslenders/ptpython")
10267 (synopsis "Python Read-Eval-Print-Loop with nice IDE-like features")
10268 (description
10269 "ptpython is a Python read-eval-print loop with IDE-like features.
10270It supports syntax highlighting, multiline editing, autocompletion, mouse,
10271color schemes, bracketed paste, Vi and Emacs keybindings, Chinese characters
10272etc.")
3f641af0 10273 (license license:bsd-3)
c2f0dc6e
DM
10274 (properties `((python2-variant . ,(delay ptpython-2))))))
10275
10276(define-public ptpython-2
10277 (let ((base (package-with-python2 (strip-python2-variant ptpython))))
10278 (package
10279 (inherit base)
10280 (name "ptpython2"))))
b227f0be 10281
b04a52a6
DJ
10282(define-public python-requests-oauthlib
10283 (package
10284 (name "python-requests-oauthlib")
10285 (version "0.6.2")
10286 (source
10287 (origin
10288 (method url-fetch)
10289 (uri (pypi-uri "requests-oauthlib" version))
10290 (sha256
10291 (base32
10292 "0ykff67sjcl227c23g0rxzfx34rr5bf21kwv0z3zmgk0lfmch7hn"))))
10293 (build-system python-build-system)
10294 (arguments
10295 `(#:phases
10296 (modify-phases %standard-phases
10297 ;; removes tests that require network access
10298 (add-before 'check 'pre-check
10299 (lambda _
10300 (delete-file "tests/test_core.py")
10301 #t)))))
10302 (native-inputs
10303 `(("python-requests-mock" ,python-requests-mock)
10304 ("python-mock" ,python-mock)))
10305 (inputs
10306 `(("python-oauthlib" ,python-oauthlib)
10307 ("python-requests" ,python-requests)))
10308 (home-page
10309 "https://github.com/requests/requests-oauthlib")
10310 (synopsis
10311 "OAuthlib authentication support for Requests")
10312 (description
10313 "Requests-OAuthlib uses the Python Requests and OAuthlib libraries to
10314provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients.")
10315 (license license:isc)
10316 (properties `((python2-variant . ,(delay python2-requests-oauthlib))))))
10317
10318(define-public python2-requests-oauthlib
10319 (let ((base (package-with-python2 (strip-python2-variant python-requests-oauthlib))))
10320 (package
10321 (inherit base)
10322 (native-inputs `(("python2-setuptools" ,python2-setuptools)
10323 ,@(package-native-inputs base))))))
10324
b227f0be 10325(define-public python-stem
10326 (package
10327 (name "python-stem")
10328 (version "1.4.1b")
10329 (source
10330 (origin
10331 (method url-fetch)
10332 (uri (pypi-uri "stem" version ".tar.bz2"))
10333 (sha256
10334 (base32
10335 "09a3amp1y351nwz088ckiibbp666qi2lxwkyknavswfm400s0ns7"))))
10336 (build-system python-build-system)
10337 (arguments
10338 `(#:phases
10339 (modify-phases %standard-phases
10340 (replace 'check
10341 (lambda _
10342 (zero? (system* "./run_tests.py" "--unit")))))))
10343 (native-inputs
10344 `(("python-mock" ,python-mock)
10345 ("python-pep8" ,python-pep8)
10346 ("python-pyflakes" ,python-pyflakes)))
10347 (inputs
10348 `(("python-pycrypto" ,python-pycrypto)))
10349 (home-page "https://stem.torproject.org/")
10350 (synopsis
10351 "Python controller library that allows applications to interact with Tor")
10352 (description
10353 "Stem is a Python controller library for Tor. With it you can use Tor's
10354control protocol to script against the Tor process and read descriptor data
10355relays publish about themselves.")
3f641af0 10356 (license license:lgpl3)))
b227f0be 10357
10358(define-public python2-stem
10359 (package-with-python2 python-stem))
517a6c0c
DM
10360
10361(define-public python-pyserial
10362 (package
10363 (name "python-pyserial")
10364 (version "3.1.1")
10365 (source
10366 (origin
10367 (method url-fetch)
10368 (uri (pypi-uri "pyserial" version))
10369 (sha256
10370 (base32
10371 "0k1nfdrxxkdlv4zgaqsdv8li0pj3gbh2pyxw8q2bsg6f9490amyn"))))
10372 (build-system python-build-system)
10373 (home-page
10374 "https://github.com/pyserial/pyserial")
10375 (synopsis "Python Serial Port Bindings")
10376 (description "@code{pyserial} provide serial port bindings for Python. It
10377supports different byte sizes, stop bits, parity and flow control with RTS/CTS
10378and/or Xon/Xoff. The port is accessed in RAW mode.")
3f641af0 10379 (license license:bsd-3)
517a6c0c
DM
10380 (properties `((python2-variant . ,(delay python2-pyserial))))))
10381
10382(define-public python2-pyserial
10383 (let ((base (package-with-python2 (strip-python2-variant python-pyserial))))
10384 (package
10385 (inherit base)
10386 (native-inputs
10387 `(("python2-setuptools" ,python2-setuptools)
10388 ,@(package-native-inputs base))))))
6eb7af2a
DJ
10389
10390(define-public python-kivy
10391 (package
10392 (name "python-kivy")
10393 (version "1.9.1")
10394 (source
10395 (origin
10396 (method url-fetch)
10397 (uri (pypi-uri "kivy" version))
10398 (file-name (string-append name "-" version ".tar.gz"))
10399 (sha256
10400 (base32
10401 "0zk3g1j1z0lzcm9d0k1lprrs95zr8n8k5pdg3p5qlsn26jz4bg19"))))
10402 (build-system python-build-system)
10403 (arguments
10404 `(#:tests? #f ; Tests require many optional packages
10405 #:phases
10406 (modify-phases %standard-phases
10407 (replace 'build (lambda _ (zero? (system* "make" "force"))))
10408 (add-after 'patch-generated-file-shebangs 'set-sdl-paths
10409 (lambda* (#:key inputs #:allow-other-keys)
10410 (setenv "KIVY_SDL2_PATH"
10411 (string-append (assoc-ref inputs "sdl-union")
10412 "/include/SDL2"))
10413 #t)))))
10414 (native-inputs
10415 `(("pkg-config" ,pkg-config)))
10416 (inputs
10417 `(("python-cython" ,python-cython)
10418 ("gstreamer" ,gstreamer)
10419 ("mesa" ,mesa)
10420 ("sdl-union"
10421 ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))))
10422 (home-page "http://kivy.org")
10423 (synopsis
10424 "Multitouch application framework")
10425 (description
10426 "A software library for rapid development of
10427hardware-accelerated multitouch applications.")
10428 (license license:expat)))
10429
10430(define-public python2-kivy
10431 (package-with-python2 python-kivy))
10432
10433(define-public python-kivy-next
10434 (let ((commit "a988c5e7a47da56263ff39514264a3de516ef2fe")
10435 (revision "1"))
10436 (package (inherit python-kivy)
10437 (name "python-kivy-next")
d80a71eb 10438 (version (string-append "1.9.1-" revision "."
6eb7af2a
DJ
10439 (string-take commit 7)))
10440 (source
10441 (origin
10442 (method git-fetch)
10443 (uri (git-reference
10444 (url "https://github.com/kivy/kivy")
10445 (commit commit)))
10446 (file-name (string-append name "-" version "-checkout"))
10447 (sha256
10448 (base32
10449 "0jk92b4a8l7blkvkgkjihk171s0dfnq582cckff5srwc8kal5m0p")))))))
10450
10451(define-public python2-kivy-next
10452 (package-with-python2 python-kivy-next))
8794bd8b
DC
10453
10454(define-public python-binaryornot
10455 (package
10456 (name "python-binaryornot")
10457 (version "0.4.0")
10458 (source (origin
10459 (method url-fetch)
10460 (uri (pypi-uri "binaryornot" version))
10461 (sha256
10462 (base32
10463 "1j4f51dxic39mdwf6alj7gd769wy6mhk916v031wjali51xkh3xb"))))
10464 (build-system python-build-system)
10465 (inputs
10466 `(("python-chardet" ,python-chardet)
10467 ("python-hypothesis" ,python-hypothesis)))
10468 (home-page "https://github.com/audreyr/binaryornot")
10469 (synopsis "Package to check if a file is binary or text")
10470 (description "Ultra-lightweight pure Python package to check if a file is
10471binary or text.")
10472 (license license:bsd-3)
10473 (properties `((python2-variant . ,(delay python2-binaryornot))))))
10474
10475(define-public python2-binaryornot
10476 (let ((base (package-with-python2 (strip-python2-variant python-binaryornot))))
10477 (package (inherit base)
10478 (native-inputs
10479 `(("python2-setuptools" ,python2-setuptools)
10480 ,@(package-native-inputs base)))
10481 (inputs
10482 `(("python2-enum34" ,python2-enum34)
10483 ,@(package-inputs base))))))
a9ac982a
DC
10484
10485(define-public python-nltk
10486 (package
10487 (name "python-nltk")
10488 (version "3.2.1")
10489 (source (origin
10490 (method url-fetch)
10491 (uri (pypi-uri "nltk" version))
10492 (sha256
10493 (base32
10494 "0skxbhnymwlspjkzga0f7x1hg3y50fwpfghs8g8k7fh6f4nknlym"))))
10495 (build-system python-build-system)
10496 (home-page "http://nltk.org/")
10497 (synopsis "Natural Language Toolkit")
10498 (description "It provides interfaces to over 50 corpora and lexical
10499resources such as WordNet, along with a suite of text processing libraries
10500for classification, tokenization, stemming, tagging, parsing, and semantic
10501reasoning, wrappers for natural language processing libraries.")
10502 (license license:asl2.0)
10503 (properties `((python2-variant . ,(delay python2-nltk))))))
10504
10505(define-public python2-nltk
10506 (let ((base (package-with-python2 (strip-python2-variant python-nltk))))
10507 (package (inherit base)
10508 (native-inputs
10509 `(("python2-setuptools" ,python2-setuptools)
10510 ,@(package-native-inputs base))))))
691cd90d
DC
10511
10512(define-public python-pymongo
10513 (package
10514 (name "python-pymongo")
10515 (version "3.3.0")
10516 (source (origin
10517 (method url-fetch)
10518 (uri (pypi-uri "pymongo" version))
10519 (sha256
10520 (base32
10521 "07mra6w86wjqy4lx5fvimidjhhfzd562gfjn8grsnbv2q8pk0i9x"))))
10522 (build-system python-build-system)
10523 (inputs
10524 `(("python-certifi" ,python-certifi)))
10525 (home-page "http://github.com/mongodb/mongo-python-driver")
10526 (synopsis "Python driver for MongoDB")
10527 (description "Python driver for MongoDB.")
10528 (license license:asl2.0)
10529 (properties `((python2-variant . ,(delay python2-pymongo))))))
10530
10531(define-public python2-pymongo
10532 (let ((base (package-with-python2 (strip-python2-variant python-pymongo))))
10533 (package (inherit base)
10534 (native-inputs
10535 `(("python2-setuptools" ,python2-setuptools)
10536 ,@(package-native-inputs base))))))
6a6c9d43
DC
10537
10538(define-public python-sh
10539 (package
10540 (name "python-sh")
10541 (version "1.11")
10542 (source (origin
10543 (method url-fetch)
10544 (uri (pypi-uri "sh" version))
10545 (sha256
10546 (base32
10547 "192r0mpv6dmkysjzhc43ddffiwb5g7c76bgr1mb1z2xz9awbj3sr"))))
10548 (build-system python-build-system)
10549 (arguments
10550 `(#:tests? #f)) ; no tests
10551 (home-page "https://github.com/amoffat/sh")
10552 (synopsis "Python subprocess interface")
10553 (description "Abstracts process invocation by providing a function
10554interface for programs.")
10555 (license license:expat)
10556 (properties `((python2-variant . ,(delay python2-sh))))))
10557
10558(define-public python2-sh
10559 (let ((base (package-with-python2 (strip-python2-variant python-sh))))
10560 (package (inherit base)
10561 (native-inputs
10562 `(("python2-setuptools" ,python2-setuptools)
10563 ,@(package-native-inputs base))))))
05b59190 10564
25702397
EF
10565(define-public python-consul
10566 (package
10567 (name "python-consul")
10568 (version "0.6.1")
10569 (source
10570 (origin
10571 (method url-fetch)
10572 (uri (pypi-uri "python-consul" version))
10573 (sha256
10574 (base32
10575 "0rfyxcy4cr3x848vhx876ifalxd5ghq6l5x813m49h4vq2d4jiq8"))))
10576 (build-system python-build-system)
10577 (native-inputs
10578 `(("python-pytest" ,python-pytest)
10579 ("python-requests" ,python-requests)
10580 ("python-six" ,python-six)))
10581 (home-page "https://github.com/cablehead/python-consul")
10582 (synopsis "Python client for Consul")
10583 (description
10584 "Python client for @url{http://www.consul.io/,Consul}, a tool for service
10585discovery, monitoring and configuration.")
10586 (license license:expat)))
10587
10588(define-public python2-consul
10589 (let ((consul (package-with-python2 python-consul)))
10590 (package (inherit consul)
10591 (native-inputs
10592 `(("python2-setuptools" ,python2-setuptools)
10593 ,@(package-native-inputs consul))))))
10594
05b59190
DC
10595(define-public python-schematics
10596 (package
10597 (name "python-schematics")
10598 (version "1.1.1")
10599 (source
10600 (origin
10601 (method url-fetch)
10602 (uri (string-append
10603 "https://github.com/schematics/schematics/archive/v" version ".tar.gz"))
10604 (file-name (string-append name "-" version ".tar.gz"))
10605 (sha256
10606 (base32
10607 "19v1i69bf3bzarfxmbv0v6ivpcn758x3shvbiy9l2hy0lvqwnp6l"))))
10608 (build-system python-build-system)
10609 (inputs
10610 `(("python-six" ,python-six)))
10611 (arguments
10612 `(#:tests? #f)) ; requires a bunch of not very nice packages with fixed
10613 ; version requirements (eg python-coveralls)
10614 (home-page "https://github.com/schematics/schematics")
10615 (synopsis "Python Data Structures for Humans")
10616 (description "Python Data Structures for Humans.")
10617 (license license:bsd-3)
10618 (properties `((python2-variant . ,(delay python2-schematics))))))
10619
10620(define-public python2-schematics
10621 (let ((base (package-with-python2 (strip-python2-variant python-schematics))))
10622 (package (inherit base)
10623 (native-inputs
10624 `(("python2-setuptools" ,python2-setuptools)
10625 ,@(package-native-inputs base))))))
d6907ff7
DC
10626
10627(define-public python-publicsuffix
10628 (package
10629 (name "python-publicsuffix")
10630 (version "1.1.0")
10631 (source (origin
10632 (method url-fetch)
10633 (uri (pypi-uri "publicsuffix" version))
10634 (sha256
10635 (base32
10636 "1adx520249z2cy7ykwjr1k190mn2888wqn9jf8qm27ly4qymjxxf"))))
10637 (build-system python-build-system)
10638 (arguments
10639 `(#:tests? #f)) ; tests use the internet
10640 (home-page "https://www.tablix.org/~avian/git/publicsuffix.git")
10641 (synopsis "Get suffix for a domain name")
10642 (description "Get a public suffix for a domain name using the Public Suffix
10643List.")
10644 (license license:expat)
10645 (properties `((python2-variant . ,(delay python2-nltk))))))
10646
10647(define-public python2-publicsuffix
10648 (let ((base (package-with-python2 (strip-python2-variant python-publicsuffix))))
10649 (package (inherit base)
10650 (native-inputs
10651 `(("python2-setuptools" ,python2-setuptools)
10652 ,@(package-native-inputs base))))))
b2319996
DC
10653
10654(define-public python-publicsuffix2
10655 (package
10656 (name "python-publicsuffix2")
10657 (version "2.20160621")
10658 (source
10659 (origin
10660 (method url-fetch)
10661 (uri (pypi-uri "publicsuffix2" version ".tar.bz2"))
10662 (sha256
10663 (base32
10664 "06lx603gdwad5hc3hmn763ngq0rq9bzz1ni3ga72nzk5n872arkd"))))
10665 (build-system python-build-system)
10666 (home-page "https://github.com/pombredanne/python-publicsuffix2")
10667 (synopsis "Get a public suffix for a domain name using the Public Suffix List")
10668 (description "Get a public suffix for a domain name using the Public Suffix
10669List. Forked from and using the same API as the publicsuffix package.")
10670 (license (list license:expat license:mpl2.0))
10671 (properties `((python2-variant . ,(delay python2-publicsuffix2))))))
10672
10673(define-public python2-publicsuffix2
10674 (let ((base (package-with-python2 (strip-python2-variant python-publicsuffix2))))
10675 (package (inherit base)
10676 (native-inputs
10677 `(("python2-setuptools" ,python2-setuptools)
10678 ,@(package-native-inputs base))))))
81f1515d
DC
10679
10680(define-public python-url
10681 (package
10682 (name "python-url")
10683 (version "0.2.0")
10684 (source (origin
10685 (method url-fetch)
10686 (uri (pypi-uri "url" version))
10687 (sha256
10688 (base32
10689 "0v879yadcz9qxfl41ak6wkga1kimp9cflla9ddz03hjjvgkqy5ki"))))
10690 (build-system python-build-system)
10691 (inputs
10692 `(("python-publicsuffix" ,python-publicsuffix)))
10693 (native-inputs
10694 `(("python-coverage" ,python-coverage)
10695 ("python-nose" ,python-nose)))
10696 (arguments
10697 `(#:tests? #f)) ; FIXME: tests fail with "ImportError: No module named 'tests'"
10698 (home-page "http://github.com/seomoz/url-py")
10699 (synopsis "URL Parsing")
10700 (description "Library for parsing urls.")
10701 (license license:expat)
10702 (properties `((python2-variant . ,(delay python2-url))))))
10703
10704(define-public python2-url
10705 (let ((base (package-with-python2 (strip-python2-variant python-url))))
10706 (package (inherit base)
10707 (inputs
10708 `(("python2-publicsuffix" ,python2-publicsuffix)))
10709 (native-inputs
10710 `(("python2-setuptools" ,python2-setuptools)
10711 ,@(package-native-inputs base))))))
974ee2c1
TS
10712
10713(define-public python-freezegun
10714 (package
10715 (name "python-freezegun")
10716 (version "0.3.7")
10717 (source
10718 (origin
10719 (method url-fetch)
10720 (uri (pypi-uri "freezegun" version))
10721 (sha256
10722 (base32
10723 "14l19x06v5jkq4rdwbmfyw4x9lrjb2300afrk21r1ash7y1y9a0w"))))
10724 (build-system python-build-system)
10725 (native-inputs
10726 `(("python-mock" ,python-mock)
10727 ("python-nose" ,python-nose)
10728 ("python-coverage" ,python-coverage)
10729 ("python-dateutil-2" ,python-dateutil-2)))
10730 (inputs
10731 `(("python-six" ,python-six)))
10732 (arguments
10733 `(#:phases (modify-phases %standard-phases
10734 ;; The tests are normally executed via `make test`, but the PyPi
10735 ;; package does not include the Makefile.
10736 (replace 'check
10737 (lambda _
10738 (zero? (system* "nosetests" "./tests/")))))))
10739 (home-page "https://github.com/spulec/freezegun")
10740 (synopsis "Test utility for mocking the datetime module")
10741 (description
10742 "FreezeGun is a library that allows your python tests to travel through
10743time by mocking the datetime module.")
10744 (license license:asl2.0)))
10745
10746(define-public python2-freezegun
10747 (let ((base (package-with-python2 (strip-python2-variant python-freezegun))))
10748 (package (inherit base)
10749 (native-inputs
10750 `(("python2-setuptools" ,python2-setuptools)
10751 ,@(package-native-inputs base))))))
dddcb25c
MB
10752
10753(define-public python-odfpy
10754 (package
10755 (name "python-odfpy")
10756 (version "1.3.3")
10757 (source (origin
10758 (method url-fetch)
10759 (uri (pypi-uri "odfpy" version))
10760 (sha256
10761 (base32
10762 "1a6ms0w9zfhhkqhvrnynwwbxrivw6hgjc0s5k7j06npc7rq0blxw"))))
10763 (arguments
10764 `(#:modules ((srfi srfi-1)
10765 (guix build python-build-system)
10766 (guix build utils))
10767 #:phases
10768 (modify-phases %standard-phases
10769 (replace 'check
10770 ;; The test runner invokes python2 and python3 for test*.py.
10771 ;; To avoid having both in inputs, we replicate it here.
10772 (lambda _
10773 (every (lambda (test-file)
10774 (zero? (system* "python" test-file)))
10775 (find-files "tests" "^test.*\\.py$")))))))
10776 (build-system python-build-system)
10777 (home-page "https://github.com/eea/odfpy")
10778 (synopsis "Python API and tools to manipulate OpenDocument files")
10779 (description "Collection of libraries and utility programs written in
10780Python to manipulate OpenDocument 1.2 files.")
10781 (license
10782 ;; The software is mainly dual GPL2+ and ASL2.0, but includes a
10783 ;; number of files with other licenses.
10784 (list license:gpl2+ license:asl2.0 license:lgpl2.1+ license:cc-by-sa3.0))))
10785
10786(define-public python2-odfpy
10787 (package-with-python2 python-odfpy))
b30565bd
MB
10788
10789(define-public python-cachecontrol
10790 (package
10791 (name "python-cachecontrol")
10792 (version "0.11.6")
10793 (source
10794 (origin
10795 (method url-fetch)
10796 ;; Pypi does not have tests.
10797 (uri (string-append
10798 "https://github.com/ionrock/cachecontrol/archive/v"
10799 version ".tar.gz"))
10800 (file-name (string-append name "-" version ".tar.gz"))
10801 (sha256
10802 (base32
10803 "0yj60d0f69a2l8p7y86k4zhzzm6rnxpq74sfl240pry9l0lfw2vw"))))
10804 (build-system python-build-system)
10805 (arguments
10806 `(#:phases
10807 (modify-phases %standard-phases
10808 (replace 'check
10809 (lambda _
10810 ;; Drop test that requires internet access.
10811 (delete-file "tests/test_regressions.py")
10812 (setenv "PYTHONPATH"
10813 (string-append (getcwd) "/build/lib:"
10814 (getenv "PYTHONPATH")))
10815 (zero? (system* "py.test" "-vv")))))))
10816 (native-inputs
10817 `(("python-pytest" ,python-pytest)
10818 ("python-redis" ,python-redis)
10819 ("python-webtest" ,python-webtest)
10820 ("python-mock" ,python-mock)))
10821 (propagated-inputs
10822 `(("python-requests" ,python-requests)
10823 ("python-lockfile" ,python-lockfile)))
10824 (home-page "https://github.com/ionrock/cachecontrol")
10825 (synopsis "The httplib2 caching algorithms for use with requests")
10826 (description "CacheControl is a port of the caching algorithms in
10827@code{httplib2} for use with @code{requests} session objects.")
10828 (license license:asl2.0)
dd447621 10829 (properties `((python2-variant . ,(delay python2-cachecontrol))))))
b30565bd
MB
10830
10831(define-public python2-cachecontrol
10832 (let ((base (package-with-python2 (strip-python2-variant python-cachecontrol))))
10833 (package (inherit base)
10834 (native-inputs
10835 `(("python2-setuptools" ,python2-setuptools)
10836 ,@(package-native-inputs base))))))
243db824
DM
10837
10838(define-public python-lit
10839 (package
10840 (name "python-lit")
10841 (version "0.5.0")
10842 (source
10843 (origin
10844 (method url-fetch)
10845 (uri (pypi-uri "lit" version))
10846 (sha256
10847 (base32
10848 "135m2b9cwih85g66rjggavck328z7lj37srgpq3jxszbg0g2b91y"))))
10849 (build-system python-build-system)
10850 (home-page "http://llvm.org/")
10851 (synopsis "LLVM Software Testing Tool")
10852 (description "@code{lit} is a portable tool for executing LLVM and Clang
10853style test suites, summarizing their results, and providing indication of
10854failures.")
10855 (license license:ncsa)
10856 (properties `((python2-variant . ,(delay python2-lit))))))
10857
10858(define-public python2-lit
10859 (let ((base (package-with-python2 (strip-python2-variant python-lit))))
10860 (package
10861 (inherit base)
10862 (native-inputs
10863 `(("python2-setuptools" ,python2-setuptools)
10864 ,@(package-native-inputs base))))))
66f95b20
MB
10865
10866(define-public python-pytest-pep8
10867 (package
10868 (name "python-pytest-pep8")
10869 (version "1.0.6")
10870 (source (origin
10871 (method url-fetch)
10872 (uri (pypi-uri "pytest-pep8" version))
10873 (sha256
10874 (base32
10875 "06032agzhw1i9d9qlhfblnl3dw5hcyxhagn7b120zhrszbjzfbh3"))))
10876 (build-system python-build-system)
10877 (arguments
10878 `(#:tests? #f ; Fails with recent pytest and pep8. See upstream issues #8 and #12.
10879 ;; Prevent creation of the egg. This works around
10880 ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 .
10881 #:configure-flags '("--single-version-externally-managed" "--root=/")))
10882 (native-inputs
10883 `(("python-pytest" ,python-pytest)))
10884 (propagated-inputs
10885 `(("python-pep8" ,python-pep8)))
10886 (home-page "https://bitbucket.org/pytest-dev/pytest-pep8")
10887 (synopsis "Py.test plugin to check PEP8 requirements")
10888 (description "Pytest plugin for checking PEP8 compliance.")
10889 (license license:expat)
10890 (properties `((python2-variant . ,(delay python2-pytest-pep8))))))
10891
10892(define-public python2-pytest-pep8
10893 (let ((base (package-with-python2 (strip-python2-variant python-pytest-pep8))))
10894 (package (inherit base)
10895 (native-inputs
10896 `(("python2-setuptools" ,python2-setuptools)
10897 ,@(package-native-inputs base))))))
df94a6b5
MB
10898
10899(define-public python-pytest-flakes
10900 (package
10901 (name "python-pytest-flakes")
10902 (version "1.0.1")
10903 (source (origin
10904 (method url-fetch)
10905 (uri (pypi-uri "pytest-flakes" version))
10906 (sha256
10907 (base32
10908 "0flag3n33kbhyjrhzmq990rvg4yb8hhhl0i48q9hw0ll89jp28lw"))))
10909 (build-system python-build-system)
10910 (arguments
10911 `(;; Prevent creation of the egg. This works around
10912 ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 .
10913 #:configure-flags '("--single-version-externally-managed" "--root=/")
10914 #:phases
10915 (modify-phases %standard-phases
10916 (delete 'check)
10917 (add-after 'install 'check
10918 (lambda _ ; It's easier to run tests after install.
10919 (zero? (system* "py.test" "-vv")))))))
10920 (native-inputs
10921 `(("python-coverage" ,python-coverage)
10922 ("python-pytest" ,python-pytest)
10923 ("python-pytest-cache" ,python-pytest-cache)
10924 ("python-pytest-pep8" ,python-pytest-pep8)))
10925 (propagated-inputs
10926 `(("python-pyflakes" ,python-pyflakes)))
10927 (home-page "https://github.com/fschulze/pytest-flakes")
10928 (synopsis "Py.test plugin to check source code with pyflakes")
10929 (description "Pytest plugin for checking Python source code with pyflakes.")
10930 (license license:expat)
10931 (properties `((python2-variant . ,(delay python2-pytest-flakes))))))
10932
10933(define-public python2-pytest-flakes
10934 (let ((base (package-with-python2 (strip-python2-variant python-pytest-flakes))))
10935 (package (inherit base)
10936 (native-inputs
10937 `(("python2-setuptools" ,python2-setuptools)
10938 ,@(package-native-inputs base))))))
5467ea62
MB
10939
10940(define-public python-natsort
10941 (package
10942 (name "python-natsort")
10943 (version "5.0.1")
10944 (source (origin
10945 (method url-fetch)
10946 (uri (pypi-uri "natsort" version))
10947 (sha256
10948 (base32
10949 "1abld5p4a6n5zjnyw5mi2pv37gqalcybv2brjr2y6l9l2p8v9mja"))))
10950 (build-system python-build-system)
10951 (arguments
10952 `(#:phases
10953 (modify-phases %standard-phases
10954 (add-before 'check 'set-cachedir
10955 ;; Tests require write access to $HOME by default
10956 (lambda _ (setenv "PYTHON_EGG_CACHE" "/tmp") #t)))))
10957 (native-inputs
10958 `(("python-hypothesis" ,python-hypothesis)
10959 ("python-pytest-cache" ,python-pytest-cache)
10960 ("python-pytest-cov" ,python-pytest-cov)
10961 ("python-pytest-flakes" ,python-pytest-flakes)
10962 ("python-pytest-pep8" ,python-pytest-pep8)))
10963 (propagated-inputs ; TODO: Add python-fastnumbers.
10964 `(("python-pyicu" ,python-pyicu)))
10965 (home-page "https://github.com/SethMMorton/natsort")
10966 (synopsis "Natural sorting for python and shell")
10967 (description
10968 "Natsort lets you apply natural sorting on lists instead of
10969lexicographical. If you use the built-in @code{sorted} method in python
10970on a list such as @code{['a20', 'a9', 'a1', 'a4', 'a10']}, it would be
10971returned as @code{['a1', 'a10', 'a20', 'a4', 'a9']}. Natsort provides a
10972function @code{natsorted} that identifies numbers and sorts them separately
10973from strings. It can also sort version numbers, real numbers, mixed types
10974and more, and comes with a shell command @command{natsort} that exposes this
10975functionality in the command line.")
10976 (license license:expat)
10977 (properties `((python2-variant . ,(delay python2-natsort))))))
10978
10979(define-public python2-natsort
10980 (let ((base (package-with-python2 (strip-python2-variant python-natsort))))
10981 (package (inherit base)
10982 (native-inputs
10983 `(("python2-setuptools" ,python2-setuptools)
10984 ("python2-pathlib" ,python2-pathlib)
10985 ("python2-mock" ,python2-mock)
10986 ("python2-enum34" ,python2-enum34)
10987 ,@(package-native-inputs base))))))
4efb9c54
SR
10988
10989(define-public python-glances
10990 (package
10991 (name "python-glances")
10992 (version "2.7.1")
10993 (source
10994 (origin
10995 (method url-fetch)
10996 (uri (pypi-uri "Glances" version))
10997 (sha256
10998 (base32
10999 "11jbq40g8alsbirnd4kiagznqg270247i0m8qhi48ldf2i5xppxg"))))
11000 (build-system python-build-system)
11001 (inputs
11002 `(("python-psutil" ,python-psutil)))
11003 (home-page
11004 "https://github.com/nicolargo/glances")
11005 (synopsis
11006 "A cross-platform curses-based monitoring tool")
11007 (description
11008 "Glances is a curses-based monitoring tool for a wide variety of platforms.
11009Glances uses the PsUtil library to get information from your system. It monitors
11010CPU, load, memory, network bandwidth, disk I/O, disk use, and more.")
11011 (license license:lgpl3+)
11012 (properties `((python2-variant . ,(delay python2-glances))))))
11013
11014(define-public python2-glances
11015 (let ((base (package-with-python2 (strip-python2-variant python-glances))))
11016 (package
11017 (inherit base)
11018 (native-inputs
11019 `(("python2-setuptools" ,python2-setuptools)
11020 ,@(package-native-inputs base))))))
05b7a593
EF
11021
11022(define-public python-graphql-core
11023 (package
11024 (name "python-graphql-core")
11025 (version "0.5.3")
11026 (source
11027 (origin
11028 (method url-fetch)
11029 (uri (pypi-uri "graphql-core" version))
11030 (sha256
11031 (base32
11032 "0rsaarx2sj4xnw9966rhh4haiqaapm4lm2mfqm48ywd51j5vh1a0"))))
11033 (build-system python-build-system)
11034 (arguments
11035 `(#:phases
11036 (modify-phases %standard-phases
11037 (add-after 'unpack 'patch-hardcoded-version
11038 (lambda _ (substitute*
11039 "setup.py"
11040 (("'gevent==1.1rc1'") "'gevent'"))
11041 #t)))))
11042 (native-inputs
11043 `(("python-gevent" ,python-gevent)
11044 ("python-mock" ,python-mock)
11045 ("python-pytest-mock" ,python-pytest-mock)))
11046 (inputs
11047 `(("python-promise" ,python-promise)
11048 ("python-six" ,python-six)))
11049 (home-page "https://github.com/graphql-python/graphql-core")
11050 (synopsis "GraphQL implementation for Python")
11051 (description
11052 "GraphQL implementation for Python. GraphQL is a data query language and
11053runtime designed and used to request and deliver data to mobile and web apps.
11054This library is a port of @url{https://github.com/graphql/graphql-js,graphql-js}
11055to Python.")
11056 (properties `((python2-variant . ,(delay python2-graphql-core))))
11057 (license license:expat)))
11058
11059(define-public python2-graphql-core
11060 (let ((base (package-with-python2
11061 (strip-python2-variant python-graphql-core))))
11062 (package (inherit base)
11063 (native-inputs
11064 `(("python2-setuptools" ,python2-setuptools)
11065 ,@(package-native-inputs base))))))
7ee51575
EF
11066
11067(define-public python-graphql-relay
11068 (package
11069 (name "python-graphql-relay")
11070 (version "0.4.4")
11071 (source
11072 (origin
11073 (method url-fetch)
11074 (uri (pypi-uri "graphql-relay" version))
11075 (sha256
11076 (base32
11077 "04wr9ayshxjjdcg2v21c7ffbz36kif1wjl3604fqd3qignb3fbxi"))))
11078 (build-system python-build-system)
11079 (native-inputs
11080 `(("python-pytest" ,python-pytest)))
11081 (inputs
11082 `(("python-graphql-core" ,python-graphql-core)
11083 ("python-promise" ,python-promise)
11084 ("python-six" ,python-six)))
11085 (home-page "https://github.com/graphql-python/graphql-relay-py")
11086 (synopsis "Relay implementation for Python")
11087 (description
11088 "This is a library to allow the easy creation of Relay-compliant servers
11089using the GraphQL Python reference implementation of a GraphQL server. It
11090should be noted that the code is a exact port of the original
11091@url{https://github.com/graphql/graphql-relay-js,graphql-relay js implementation}
11092from Facebook.")
11093 (properties `((python2-variant . ,(delay python2-graphql-relay))))
11094 (license license:expat)))
11095
11096(define-public python2-graphql-relay
11097 (let ((base (package-with-python2
11098 (strip-python2-variant python-graphql-relay))))
11099 (package (inherit base)
11100 (native-inputs
11101 `(("python2-setuptools" ,python2-setuptools)
11102 ,@(package-native-inputs base))))))
ddc63a56
EF
11103
11104(define-public python-graphene
11105 (package
11106 (name "python-graphene")
11107 (version "0.10.2")
11108 (source
11109 (origin
11110 (method url-fetch)
11111 (uri (pypi-uri "graphene" version))
11112 (sha256
11113 (base32
11114 "09zhac7igh9ixdz0ay6csy35b40l1jwbf2wrbxmgxwfhy51iy06q"))))
11115 (build-system python-build-system)
11116 (native-inputs
11117 `(("python-django-filter" ,python-django-filter)
11118 ("python-mock" ,python-mock)
11119 ("python-psycopg2" ,python-psycopg2)
11120 ("python-pytest-django" ,python-pytest-django)
11121 ("python-sqlalchemy-utils" ,python-sqlalchemy-utils)))
11122 (inputs
11123 `(("python-graphql-core" ,python-graphql-core)
11124 ("python-graphql-relay" ,python-graphql-relay)
11125 ("python-iso8601" ,python-iso8601)
11126 ("python-promise" ,python-promise)
11127 ("python-six" ,python-six)))
11128 (home-page "http://graphene-python.org/")
11129 (synopsis "GraphQL Framework for Python")
11130 (description
11131 "Graphene is a Python library for building GraphQL schemas/types.
11132A GraphQL schema describes your data model, and provides a GraphQL server
11133with an associated set of resolve methods that know how to fetch data.")
11134 (properties `((python2-variant . ,(delay python2-graphene))))
11135 (license license:expat)))
11136
11137(define-public python2-graphene
11138 (let ((base (package-with-python2
11139 (strip-python2-variant python-graphene))))
11140 (package (inherit base)
11141 (native-inputs
11142 `(("python2-setuptools" ,python2-setuptools)
11143 ("python2-sqlalchemy" ,python2-sqlalchemy)
11144 ,@(package-native-inputs base))))))
d488d5d6
EF
11145
11146(define-public python-nautilus
11147 (package
11148 (name "python-nautilus")
11149 (version "0.4.9")
11150 (source
11151 (origin
11152 (method url-fetch)
11153 (uri (pypi-uri "nautilus" version))
11154 (sha256
11155 (base32
11156 "01hwzjc1zshk4vvxrcghm398fpy4jls66dyz06g07mrwqif8878p"))))
11157 (build-system python-build-system)
11158 (arguments `(#:tests? #f)) ; fails to import test modules
11159 (native-inputs
11160 `(("python-setuptools" ,python-setuptools)))
11161 (inputs
11162 `(("python-bcrypt" ,python-bcrypt)
11163 ("python-click" ,python-click)
11164 ("python-consul" ,python-consul)
11165 ("python-graphql-core" ,python-graphql-core)
11166 ("python-graphql-relay" ,python-graphql-relay)
11167 ("python-graphene" ,python-graphene)
11168 ("python-jinja2" ,python-jinja2)
11169 ("python-nose2" ,python-nose2)
11170 ("python-peewee" ,python-peewee)
11171 ("python-pika" ,python-pika)
11172 ("python-pycparser" ,python-pycparser)
11173 ("python-requests" ,python-requests)
11174 ("python-tornado" ,python-tornado)
11175 ("python-wtforms" ,python-wtforms)))
11176 (home-page "https://github.com/AlecAivazis/nautilus")
11177 (synopsis "Library for creating microservice applications")
11178 (description
11179 "Nautilus is a framework for flux based microservices that looks to
11180provide extendible implementations of common aspects of a cloud so that you can
11181focus on building massively scalable web applications.")
11182 (license license:expat)))
66d3f50a
LF
11183
11184(define-public python-betamax
11185 (package
11186 (name "python-betamax")
11187 (version "0.8.0")
11188 (source
11189 (origin
11190 (method url-fetch)
11191 (uri (pypi-uri "betamax" version))
11192 (sha256
11193 (base32
11194 "18f8v5gng3j773jlbbzx4rg1i4y2zw3m2l1zpmbvp8bh5a2q1i42"))))
11195 (build-system python-build-system)
11196 (arguments
11197 '(;; Many tests fail because they require networking.
11198 #:tests? #f))
11199 (inputs
11200 `(("python-requests" ,python-requests)))
11201 (home-page "https://github.com/sigmavirus24/betamax")
11202 (synopsis "Record HTTP interactions with python-requests")
11203 (description "Betamax will record your test suite's HTTP interactions and
11204replay them during future tests. It is designed to work with python-requests.")
11205 (license license:expat)
11206 (properties `((python2-variant . ,(delay python2-betamax))))))
11207
11208(define-public python2-betamax
11209 (let ((base (package-with-python2 (strip-python2-variant python-betamax))))
11210 (package
11211 (inherit base)
11212 (native-inputs
11213 `(("python2-setuptools" ,python2-setuptools)
11214 ,@(package-native-inputs base))))))
ca0635b4 11215
94cffc63
LF
11216(define-public python-s3transfer
11217 (package
11218 (name "python-s3transfer")
11219 (version "0.1.8")
11220 (source (origin
11221 (method url-fetch)
11222 (uri (pypi-uri "s3transfer" version))
11223 (sha256
11224 (base32
11225 "1jivjkp3xqif9gzr5fiq28jsskmh50vzzd7ldsb4rbyiw1iyv3hy"))))
11226 (build-system python-build-system)
fad8bf97
LF
11227 (arguments
11228 `(#:phases
11229 (modify-phases %standard-phases
11230 (replace 'check
11231 (lambda _
11232 ;; 7 of the 'integration' tests require network access or login
11233 ;; credentials.
11234 (zero? (system* "nosetests" "--exclude=integration")))))))
94cffc63 11235 (native-inputs
fad8bf97
LF
11236 `(("python-docutils" ,python-docutils)
11237 ("python-mock" ,python-mock)
11238 ("python-nose" ,python-nose)))
94cffc63
LF
11239 (inputs
11240 `(("python-botocore" ,python-botocore)))
11241 (synopsis "Amazon S3 Transfer Manager")
11242 (description "S3transfer is a Python library for managing Amazon S3
11243transfers.")
11244 (home-page "https://github.com/boto/s3transfer")
11245 (license license:asl2.0)
11246 (properties `((python2-variant . ,(delay python2-s3transfer))))))
11247
11248(define-public python2-s3transfer
11249 (let ((base (package-with-python2 (strip-python2-variant python-s3transfer))))
11250 (package
11251 (inherit base)
11252 (native-inputs
11253 `(("python2-futures" ,python2-futures)
11254 ("python2-setuptools" ,python2-setuptools)
11255 ,@(package-native-inputs base))))))
8ab59181
HG
11256
11257(define-public python-setproctitle
11258(package
11259 (name "python-setproctitle")
11260 (version "1.1.10")
11261 (source
11262 (origin
11263 (method url-fetch)
11264 (uri (pypi-uri "setproctitle" version))
11265 (sha256
11266 (base32
11267 "163kplw9dcrw0lffq1bvli5yws3rngpnvrxrzdw89pbphjjvg0v2"))))
11268 (build-system python-build-system)
11269 (arguments
11270 '(#:phases
11271 (modify-phases %standard-phases
11272 (add-before 'check 'patch-Makefile
11273 ;; Stricly this is only required for the python2 variant.
11274 ;; But adding a phase in an inherited package seems to be
11275 ;; cumbersum. So we patch even for python3.
11276 (lambda _
11277 (let ((nose (assoc-ref %build-inputs "python2-nose")))
11278 (when nose
11279 (substitute* "Makefile"
11280 (("\\$\\(PYTHON\\) [^ ]which nosetests[^ ] ")
11281 (string-append nose "/bin/nosetests "))))
11282 #t)))
11283 (replace 'check
11284 (lambda _
11285 (setenv "PYTHON" (or (which "python3") (which "python")))
11286 (setenv "PYCONFIG" (or (which "python3-config")
11287 (which "python-config")))
11288 (setenv "CC" "gcc")
11289 ;; No need to extend PYTHONPATH to find the built package, since
11290 ;; the Makefile will build anyway
11291 (zero? (system* "make" "check")))))))
11292 (native-inputs
11293 `(("procps" ,procps))) ; required for tests
11294 (home-page
11295 "https://github.com/dvarrazzo/py-setproctitle")
11296 (synopsis
11297 "Setproctitle implementation for Python to customize the process title")
11298 (description "The library allows a process to change its title (as displayed
11299by system tools such as ps and top).
11300
11301Changing the title is mostly useful in multi-process systems, for
11302example when a master process is forked: changing the children's title
11303allows to identify the task each process is busy with. The technique
11304is used by PostgreSQL and the OpenSSH Server for example.")
11305 (license license:bsd-3)
11306 (properties `((python2-variant . ,(delay python2-setproctitle))))))
11307
11308(define-public python2-setproctitle
11309 (let ((base (package-with-python2
11310 (strip-python2-variant python-setproctitle))))
11311 (package
11312 (inherit base)
11313 (native-inputs `(("python2-nose" ,python2-nose)
11314 ,@(package-native-inputs base))))))
162e42d8
HG
11315
11316(define-public python-validictory
11317 (package
11318 (name "python-validictory")
11319 (version "1.0.1")
11320 (source
11321 (origin
11322 (method url-fetch)
11323 (uri (pypi-uri "validictory" version))
11324 (sha256
11325 (base32
11326 "1zf1g9sw47xzp5f80bd94pb42j9yqv82lcrgcvdwr6nkaphfi37q"))))
11327 (build-system python-build-system)
11328 (arguments
11329 '(#:phases
11330 (modify-phases %standard-phases
11331 (add-after 'unpack 'bootstrap
11332 ;; Move the tests out of the package directory to avoid
11333 ;; packaging them.
11334 (lambda* _
11335 (rename-file "validictory/tests" "tests")
11336 (delete-file "tests/__init__.py")))
11337 (replace 'check
11338 (lambda _
11339 ;; Extend PYTHONPATH so the built package will be found.
11340 (setenv "PYTHONPATH"
11341 (string-append (getcwd) "/build/lib:"
11342 (getenv "PYTHONPATH")))
11343 (zero? (system* "py.test" "-vv" )))))))
11344 (native-inputs
11345 `(("python-pytest" ,python-pytest)))
11346 (home-page
11347 "https://github.com/jamesturk/validictory")
11348 (synopsis "General purpose Python data validator")
11349 (description "It allows validation of arbitrary Python data structures.
11350
11351The schema format is based on the JSON Schema
11352proposal (http://json-schema.org), so combined with json the library is also
11353useful as a validator for JSON data.")
7ca68304
EF
11354 (license license:expat)
11355 (properties `((python2-variant . ,(delay python2-validictory))))))
162e42d8
HG
11356
11357(define-public python2-validictory
7ca68304
EF
11358 (let ((base (package-with-python2
11359 (strip-python2-variant python-validictory))))
11360 (package
11361 (inherit base)
11362 (native-inputs `(("python2-setuptools" ,python2-setuptools)
11363 ,@(package-native-inputs base))))))
0990edfe
DM
11364
11365(define-public python-aniso8601
11366 (package
11367 (name "python-aniso8601")
11368 (version "1.1.0")
11369 (source
11370 (origin
11371 (method url-fetch)
11372 (uri (pypi-uri "aniso8601" version))
11373 (sha256
11374 (base32
11375 "1k5mjg9iqbjfslb5prrsfz7dhlvi6s35p1jxq8dm87w1b7dn5i2g"))))
11376 (build-system python-build-system)
11377 (propagated-inputs
11378 `(("python-dateutil-2" ,python-dateutil-2)))
11379 (home-page
11380 "https://bitbucket.org/nielsenb/aniso8601")
11381 (synopsis
11382 "Python library for parsing ISO 8601 strings")
11383 (description
11384 "This package contains a library for parsing ISO 8601 datetime strings.")
11385 (license license:bsd-3)))
999d964d
DM
11386
11387(define-public python-flask-restful
11388 (package
11389 (name "python-flask-restful")
11390 (version "0.3.5")
11391 (source
11392 (origin
11393 (method url-fetch)
11394 (uri (pypi-uri "Flask-RESTful" version))
11395 (sha256
11396 (base32
11397 "0hjcmdb56b7z4bkw848lxfkyrpnkwzmqn2dgnlv12mwvjpzsxr6c"))))
11398 (build-system python-build-system)
11399 (propagated-inputs
11400 `(("python-aniso8601" ,python-aniso8601)
11401 ("python-flask" ,python-flask)
11402 ("python-pycrypto" ,python-pycrypto)
11403 ("python-pytz" ,python-pytz)))
11404 (native-inputs
11405 `(;; Optional dependency of Flask. Tests need it.
11406 ("python-blinker" ,python-blinker)
11407 ("python-mock" ,python-mock) ; For tests
11408 ("python-nose" ,python-nose) ; For tests
11409 ("python-sphinx" ,python-sphinx)))
11410 (home-page
11411 "https://www.github.com/flask-restful/flask-restful/")
11412 (synopsis
11413 "Flask module for creating REST APIs")
11414 (description
11415 "This package contains a Flask module for creating REST APIs.")
11416 (license license:bsd-3)))
31288222
DM
11417
11418(define-public python-flask-basicauth
11419 (package
11420 (name "python-flask-basicauth")
11421 (version "0.2.0")
11422 (source
11423 (origin
11424 (method url-fetch)
11425 (uri (pypi-uri "Flask-BasicAuth" version))
11426 (sha256
11427 (base32
11428 "1zq1spkjr4sjdnalpp8wl242kdqyk6fhbnhr8hi4r4f0km4bspnz"))))
11429 (build-system python-build-system)
11430 (propagated-inputs
11431 `(("python-flask" ,python-flask)))
11432 (home-page
11433 "https://github.com/jpvanhal/flask-basicauth")
11434 (synopsis
11435 "HTTP basic access authentication for Flask")
11436 (description
11437 "This package provides HTTP basic access authentication for Flask.")
11438 (license license:bsd-3)))
903276d0
DM
11439
11440(define-public python-flask-sqlalchemy
11441 (package
11442 (name "python-flask-sqlalchemy")
11443 (version "2.1")
11444 (source
11445 (origin
11446 (method url-fetch)
11447 (uri (pypi-uri "Flask-SQLAlchemy" version))
11448 (sha256
11449 (base32
11450 "1i9ps5d5snih9xlqhrvmi3qfiygkmqzxh92n25kj4pf89kj4s965"))))
11451 (build-system python-build-system)
11452 (propagated-inputs
11453 `(("python-flask" ,python-flask)
11454 ("python-sqlalchemy" ,python-sqlalchemy)))
11455 (home-page
11456 "http://github.com/mitsuhiko/flask-sqlalchemy")
11457 (synopsis
11458 "Module adding SQLAlchemy support to your Flask application")
11459 (description
11460 "This package adds SQLAlchemy support to your Flask application.")
11461 (license license:bsd-3)))