projects/guix·blob version-0.8.3 · refs

4221 lines · 149.9 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 Nikita Karetnikov <[email protected]>
3;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <[email protected]>
4;;; Copyright © 2013, 2014, 2015 Andreas Enge <[email protected]>
5;;; Copyright © 2014, 2015 Mark H Weaver <[email protected]>
6;;; Copyright © 2014 Eric Bavier <[email protected]>
7;;; Copyright © 2014, 2015 Federico Beffa <[email protected]>
8;;; Copyright © 2015 Omar Radwan <[email protected]>
9;;; Copyright © 2015 Pierre-Antoine Rault <[email protected]>
10;;; Copyright © 2015 Ricardo Wurmus <[email protected]>
11;;; Copyright © 2015 Christopher Allan Webber <[email protected]>
12;;;
13;;; This file is part of GNU Guix.
14;;;
15;;; GNU Guix is free software; you can redistribute it and/or modify it
16;;; under the terms of the GNU General Public License as published by
17;;; the Free Software Foundation; either version 3 of the License, or (at
18;;; your option) any later version.
19;;;
20;;; GNU Guix is distributed in the hope that it will be useful, but
21;;; WITHOUT ANY WARRANTY; without even the implied warranty of
22;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23;;; GNU General Public License for more details.
24;;;
25;;; You should have received a copy of the GNU General Public License
26;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27
28(define-module (gnu packages python)
29 #:use-module ((guix licenses)
30 #:select (asl2.0 bsd-4 bsd-3 bsd-2 non-copyleft cc0 x11 x11-style
31 gpl2 gpl2+ gpl3+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+
32 psfl public-domain x11-style))
33 #:use-module ((guix licenses) #:select (expat zlib) #:prefix license:)
34 #:use-module (gnu packages)
35 #:use-module (gnu packages compression)
36 #:use-module (gnu packages databases)
37 #:use-module (gnu packages fontutils)
38 #:use-module (gnu packages gdbm)
39 #:use-module (gnu packages gcc)
40 #:use-module (gnu packages ghostscript)
41 #:use-module (gnu packages glib)
42 #:use-module (gnu packages gtk)
43 #:use-module (gnu packages icu4c)
44 #:use-module (gnu packages image)
45 #:use-module (gnu packages imagemagick)
46 #:use-module (gnu packages libffi)
47 #:use-module (gnu packages maths)
48 #:use-module (gnu packages multiprecision)
49 #:use-module (gnu packages networking)
50 #:use-module (gnu packages ncurses)
51 #:use-module (gnu packages pcre)
52 #:use-module (gnu packages perl)
53 #:use-module (gnu packages pkg-config)
54 #:use-module (gnu packages readline)
55 #:use-module (gnu packages statistics)
56 #:use-module (gnu packages texlive)
57 #:use-module (gnu packages texinfo)
58 #:use-module (gnu packages tls)
59 #:use-module (gnu packages web)
60 #:use-module (gnu packages base)
61 #:use-module (gnu packages xml)
62 #:use-module (gnu packages xorg)
63 #:use-module (gnu packages zip)
64 #:use-module (guix packages)
65 #:use-module (guix download)
66 #:use-module (guix git-download)
67 #:use-module (guix utils)
68 #:use-module (guix build-system gnu)
69 #:use-module (guix build-system python)
70 #:use-module (guix build-system trivial)
71 #:use-module (srfi srfi-1))
72
73(define-public python-2
74 (package
75 (name "python")
76 (version "2.7.6")
77 (source
78 (origin
79 (method url-fetch)
80 (uri (string-append "https://www.python.org/ftp/python/"
81 version "/Python-" version ".tar.xz"))
82 (patches (list (search-patch "python-libffi-mips-n32-fix.patch")
83 (search-patch "python2-sqlite-3.8.4-test-fix.patch")))
84 (patch-flags '("-p0"))
85 (sha256
86 (base32
87 "18gnpyh071dxa0rv3silrz92jw9qpblswzwv4gzqcwxzz20qxmhz"))))
88 (build-system gnu-build-system)
89 (arguments
90 `(#:tests? #f
91;; 258 tests OK.
92;; 103 tests failed:
93;; test_bz2 test_distutils test_file test_file2k test_popen2
94;; test_shutil test_signal test_site test_slice test_smtplib
95;; test_smtpnet test_socket test_socketserver test_softspace
96;; test_sort test_sqlite test_ssl test_startfile test_str
97;; test_strftime test_string test_stringprep test_strop test_strptime
98;; test_strtod test_struct test_structmembers test_structseq
99;; test_subprocess test_sunaudiodev test_sundry test_symtable
100;; test_syntax test_sys test_sys_setprofile test_sys_settrace
101;; test_sysconfig test_tarfile test_tcl test_telnetlib test_tempfile
102;; test_textwrap test_thread test_threaded_import
103;; test_threadedtempfile test_threading test_threading_local
104;; test_threadsignals test_time test_timeout test_tk test_tokenize
105;; test_tools test_trace test_traceback test_transformer
106;; test_ttk_guionly test_ttk_textonly test_tuple test_typechecks
107;; test_ucn test_unary test_undocumented_details test_unicode
108;; test_unicode_file test_unicodedata test_univnewlines
109;; test_univnewlines2k test_unpack test_urllib test_urllib2
110;; test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse
111;; test_userdict test_userlist test_userstring test_uu test_uuid
112;; test_wait3 test_wait4 test_warnings test_wave test_weakref
113;; test_weakset test_whichdb test_winreg test_winsound test_with
114;; test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c
115;; test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile
116;; test_zipfile64 test_zipimport test_zipimport_support test_zlib
117;; 31 tests skipped:
118;; test_aepack test_al test_applesingle test_ascii_formatd test_bsddb
119;; test_bsddb185 test_bsddb3 test_cd test_cl test_codecmaps_cn
120;; test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr
121;; test_codecmaps_tw test_ctypes test_curses test_dl test_gdb test_gl
122;; test_imageop test_imgfile test_ioctl test_kqueue
123;; test_linuxaudiodev test_macos test_macostools test_msilib
124;; test_multiprocessing test_ossaudiodev test_pep277
125;; test_scriptpackages
126;; 7 skips unexpected on linux2:
127;; test_ascii_formatd test_bsddb test_bsddb3 test_ctypes test_gdb
128;; test_ioctl test_multiprocessing
129;; One of the typical errors:
130;; test_unicode
131;; test test_unicode crashed -- <type 'exceptions.OSError'>: [Errno 2] No such file or directory
132 #:test-target "test"
133 #:configure-flags
134 (let ((bz2 (assoc-ref %build-inputs "bzip2"))
135 (gdbm (assoc-ref %build-inputs "gdbm"))
136 (libffi (assoc-ref %build-inputs "libffi"))
137 (sqlite (assoc-ref %build-inputs "sqlite"))
138 (openssl (assoc-ref %build-inputs "openssl"))
139 (readline (assoc-ref %build-inputs "readline"))
140 (zlib (assoc-ref %build-inputs "zlib"))
141 (out (assoc-ref %outputs "out")))
142 (list "--enable-shared" ; allow embedding
143 "--with-system-ffi" ; build ctypes
144 (string-append "CPPFLAGS="
145 "-I" bz2 "/include "
146 "-I" gdbm "/include "
147 "-I" sqlite "/include "
148 "-I" openssl "/include "
149 "-I" readline "/include "
150 "-I" zlib "/include")
151 (string-append "LDFLAGS="
152 "-L" bz2 "/lib "
153 "-L" gdbm "/lib "
154 "-L" libffi "/lib "
155 "-L" sqlite "/lib "
156 "-L" openssl "/lib "
157 "-L" readline "/lib "
158 "-L" zlib "/lib "
159 "-Wl,-rpath=" out "/lib")))
160
161 #:modules ((ice-9 ftw)
162 ,@%gnu-build-system-modules)
163 #:phases
164 (modify-phases %standard-phases
165 (add-before
166 'configure 'patch-lib-shells
167 (lambda _
168 ;; Filter for existing files, since some may not exist in all
169 ;; versions of python that are built with this recipe.
170 (substitute* (filter file-exists?
171 '("Lib/subprocess.py"
172 "Lib/popen2.py"
173 "Lib/distutils/tests/test_spawn.py"
174 "Lib/test/test_subprocess.py"))
175 (("/bin/sh") (which "sh")))
176 #t))
177 (add-before
178 'check 'pre-check
179 (lambda _
180 ;; 'Lib/test/test_site.py' needs a valid $HOME
181 (setenv "HOME" (getcwd))
182 #t))
183 (add-after
184 'unpack 'set-source-file-times-to-1980
185 ;; XXX One of the tests uses a ZIP library to pack up some of the
186 ;; source tree, and fails with "ZIP does not support timestamps
187 ;; before 1980". Work around this by setting the file times in the
188 ;; source tree to sometime in early 1980.
189 (lambda _
190 (let ((circa-1980 (* 10 366 24 60 60)))
191 (ftw "." (lambda (file stat flag)
192 (utime file circa-1980 circa-1980)
193 #t))
194 #t))))))
195 (inputs
196 `(("bzip2" ,bzip2)
197 ("gdbm" ,gdbm)
198 ("libffi" ,libffi) ; for ctypes
199 ("sqlite" ,sqlite) ; for sqlite extension
200 ("openssl" ,openssl)
201 ("readline" ,readline)
202 ("zlib" ,zlib)))
203 (native-inputs
204 `(("pkg-config" ,pkg-config)))
205 (native-search-paths
206 (list (search-path-specification
207 (variable "PYTHONPATH")
208 (files '("lib/python2.7/site-packages")))))
209 (home-page "http://python.org")
210 (synopsis
211 "High-level, dynamically-typed programming language")
212 (description
213 "Python is a remarkably powerful dynamic programming language that
214is used in a wide variety of application domains. Some of its key
215distinguishing features include: clear, readable syntax; strong
216introspection capabilities; intuitive object orientation; natural
217expression of procedural code; full modularity, supporting hierarchical
218packages; exception-based error handling; and very high level dynamic
219data types.")
220 (license psfl)))
221
222(define-public python
223 (package (inherit python-2)
224 (version "3.4.3")
225 (source (origin
226 (method url-fetch)
227 (uri (string-append "https://www.python.org/ftp/python/"
228 version "/Python-" version ".tar.xz"))
229 (patches (list (search-patch "python-fix-tests.patch")
230 ;; XXX Try removing this patch for python > 3.4.3
231 (search-patch "python-disable-ssl-test.patch")))
232 (patch-flags '("-p0"))
233 (sha256
234 (base32
235 "1f4nm4z08sy0kqwisvv95l02crv6dyysdmx44p1mz3bn6csrdcxm"))))
236 (arguments (substitute-keyword-arguments (package-arguments python-2)
237 ((#:tests? _) #t)))
238 (native-search-paths
239 (list (search-path-specification
240 (variable "PYTHONPATH")
241 (files (list (string-append "lib/python"
242 (version-major+minor version)
243 "/site-packages"))))))))
244
245(define-public python-wrapper
246 (package (inherit python)
247 (name "python-wrapper")
248 (source #f)
249 (build-system trivial-build-system)
250 (propagated-inputs `(("python" ,python)))
251 (arguments
252 `(#:modules ((guix build utils))
253 #:builder
254 (begin
255 (use-modules (guix build utils))
256 (let ((bin (string-append (assoc-ref %outputs "out") "/bin"))
257 (python (string-append (assoc-ref %build-inputs "python") "/bin/")))
258 (mkdir-p bin)
259 (for-each
260 (lambda (old new)
261 (symlink (string-append python old)
262 (string-append bin "/" new)))
263 `("python3", "pydoc3", "idle3")
264 `("python", "pydoc", "idle"))))))
265 (description (string-append (package-description python)
266 "\n\nThis wrapper package provides symbolic links to the python binaries
267 without version suffix."))))
268
269(define-public python-psutil
270 (package
271 (name "python-psutil")
272 (version "3.0.1")
273 (source
274 (origin
275 (method url-fetch)
276 (uri (string-append
277 "https://pypi.python.org/packages/source/p/psutil/psutil-"
278 version ".tar.gz"))
279 (sha256
280 (base32
281 "00c8h1mzqysih99z8pnbmdv117d2naldf11yjy50dhykxsf3n89z"))))
282 (build-system python-build-system)
283 (native-inputs
284 `(("python-setuptools" ,python-setuptools)))
285 (home-page "https://pypi.python.org/pypi/psutil/")
286 (synopsis "Library for retrieving information on running processes")
287 (description
288 "psutil (Python system and process utilities) is a library for retrieving
289information on running processes and system utilization (CPU, memory, disks,
290network) in Python. It is useful mainly for system monitoring, profiling and
291limiting process resources and management of running processes. It implements
292many functionalities offered by command line tools such as: ps, top, lsof,
293netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop, uptime,
294pidof, tty, taskset, pmap.")
295 (license bsd-3)))
296
297(define-public python2-psutil
298 (package-with-python2 python-psutil))
299
300(define-public python-pytz
301 (package
302 (name "python-pytz")
303 (version "2013b")
304 (source
305 (origin
306 (method url-fetch)
307 (uri (string-append "https://launchpad.net/pytz/main/" version
308 "/+download/pytz-" version ".tar.bz2"))
309 (sha256
310 (base32
311 "19giwgfcrg0nr1gdv49qnmf2jb2ilkcfc7qyqvfpz4dp0p64ksv5"))))
312 (build-system python-build-system)
313 (arguments `(#:tests? #f)) ; no test target
314 (home-page "https://launchpad.net/pytz")
315 (synopsis "Python timezone library")
316 (description
317 "This library allows accurate and cross platform timezone calculations
318using Python 2.4 or higher and provides access to the Olson timezone database.")
319 (license x11)))
320
321(define-public python2-pytz
322 (package-with-python2 python-pytz))
323
324
325(define-public python-babel
326 (package
327 (name "python-babel")
328 (version "1.3")
329 (source
330 (origin
331 (method url-fetch)
332 (uri (string-append "https://pypi.python.org/packages/source/B/Babel/Babel-"
333 version ".tar.gz"))
334 (sha256
335 (base32
336 "0bnin777lc53nxd1hp3apq410jj5wx92n08h7h4izpl4f4sx00lz"))))
337 (build-system python-build-system)
338 (inputs
339 `(("python-pytz" ,python-pytz)
340 ("python-setuptools" ,python-setuptools)))
341 (arguments `(#:tests? #f)) ; no test target
342 (home-page "http://babel.pocoo.org/")
343 (synopsis
344 "Tools for internationalizing Python applications")
345 (description
346 "Babel is composed of two major parts:
347- tools to build and work with gettext message catalogs
348- a Python interface to the CLDR (Common Locale Data Repository), providing
349access to various locale display names, localized number and date formatting,
350etc. ")
351 (license bsd-3)))
352
353(define-public python2-babel
354 (package-with-python2 python-babel))
355
356(define-public python2-backport-ssl-match-hostname
357 (package
358 (name "python2-backport-ssl-match-hostname")
359 (version "3.4.0.2")
360 (source
361 (origin
362 (method url-fetch)
363 (uri (string-append
364 "https://pypi.python.org/packages/source/b/"
365 "backports.ssl_match_hostname/backports.ssl_match_hostname-"
366 version ".tar.gz"))
367 (sha256
368 (base32
369 "1bnn47ipvhy49n0m50v27lp4xj6sqdkdw676ypd7pawsn1zhwh87"))))
370 (build-system python-build-system)
371 (arguments `(#:python ,python-2))
372 (inputs
373 `(("python2-setuptools" ,python2-setuptools)))
374 (home-page "https://pypi.python.org/pypi/backports.ssl_match_hostname")
375 (synopsis "Backport of ssl.match_hostname() function from Python 3.4")
376 (description
377 "This backport brings the ssl.match_hostname() function to users of
378earlier versions of Python. The function checks the hostname in the
379certificate returned by the server to which a connection has been established,
380and verifies that it matches the intended target hostname.")
381 (license psfl)))
382
383(define-public python-h5py
384 (package
385 (name "python-h5py")
386 (version "2.4.0")
387 (source
388 (origin
389 (method url-fetch)
390 (uri (string-append "https://pypi.python.org/packages/source/h/h5py/h5py-"
391 version ".tar.gz"))
392 (sha256
393 (base32
394 "0q4f9l8grf6pwp64xbv8bmyxx416s7h4522nnxac056ap3savbps"))))
395 (build-system python-build-system)
396 (inputs
397 `(("python-cython" ,python-cython)
398 ("python-numpy" ,python-numpy)
399 ("hdf5" ,hdf5)))
400 (native-inputs
401 `(("python-setuptools" ,python-setuptools)))
402 (arguments `(#:tests? #f)) ; no test target
403 (home-page "http://www.h5py.org/")
404 (synopsis "Read and write HDF5 files from Python")
405 (description
406 "The h5py package provides both a high- and low-level interface to the
407HDF5 library from Python. The low-level interface is intended to be a
408complete wrapping of the HDF5 API, while the high-level component supports
409access to HDF5 files, datasets and groups using established Python and NumPy
410concepts.")
411 (license bsd-3)))
412
413(define-public python2-h5py
414 (let ((h5py (package-with-python2 python-h5py)))
415 (package (inherit h5py)
416 (inputs
417 `(("python2-numpy" ,python2-numpy)
418 ,@(alist-delete
419 "python-numpy"
420 (package-inputs h5py)))))))
421
422(define-public python-lockfile
423 (package
424 (name "python-lockfile")
425 (version "0.9.1")
426 (source
427 (origin
428 (method url-fetch)
429 (uri (string-append "https://pypi.python.org/packages/source/l/lockfile/"
430 "lockfile-" version ".tar.gz"))
431 (sha256
432 (base32
433 "0iwif7i84gwpvrnpv4brshdk8j6l77smvknm8k3bg77mj6f5ini3"))))
434 (build-system python-build-system)
435 (arguments '(#:test-target "check"))
436 (home-page "http://code.google.com/p/pylockfile/")
437 (synopsis "Platform-independent file locking module")
438 (description
439 "The lockfile package exports a LockFile class which provides a simple
440API for locking files.")
441 (license license:expat)))
442
443(define-public python2-lockfile
444 (package-with-python2 python-lockfile))
445
446(define-public python-mock
447 (package
448 (name "python-mock")
449 (version "1.0.1")
450 (source
451 (origin
452 (method url-fetch)
453 (uri (string-append "https://pypi.python.org/packages/source/m/mock/"
454 "mock-" version ".tar.gz"))
455 (sha256
456 (base32
457 "0kzlsbki6q0awf89rc287f3aj8x431lrajf160a70z0ikhnxsfdq"))))
458 (build-system python-build-system)
459 (arguments '(#:test-target "check"))
460 (home-page "http://code.google.com/p/mock/")
461 (synopsis "Python mocking and patching library for testing")
462 (description
463 "Mock is a library for testing in Python. It allows you to replace parts
464of your system under test with mock objects and make assertions about how they
465have been used.")
466 (license license:expat)))
467
468(define-public python2-mock
469 (package-with-python2 python-mock))
470
471
472(define-public python-setuptools
473 (package
474 (name "python-setuptools")
475 (version "12.1")
476 (source
477 (origin
478 (method url-fetch)
479 (uri (string-append "https://pypi.python.org/packages/source/s/setuptools/setuptools-"
480 version ".tar.gz"))
481 (sha256
482 (base32
483 "04bfk7si1pwj3b5k2b1x9b1zkiclybmzpw6alrs5bciri56lg9zs"))))
484 (build-system python-build-system)
485 ;; FIXME: Tests require pytest, which itself relies on setuptools.
486 ;; One could bootstrap with an internal untested setuptools.
487 (arguments
488 `(#:tests? #f))
489 (home-page "https://pypi.python.org/pypi/setuptools")
490 (synopsis
491 "Library designed to facilitate packaging Python projects")
492 (description
493 "Setuptools is a fully-featured, stable library designed to facilitate
494packaging Python projects, where packaging includes:
495Python package and module definitions,
496distribution package metadata,
497test hooks,
498project installation,
499platform-specific details,
500Python 3 support.")
501 (license psfl)))
502
503(define-public python2-setuptools
504 (package-with-python2 python-setuptools))
505
506
507(define-public python-pycrypto
508 (package
509 (name "python-pycrypto")
510 (version "2.6.1")
511 (source
512 (origin
513 (method url-fetch)
514 (uri (string-append "https://pypi.python.org/packages/source/p/"
515 "pycrypto/pycrypto-" version ".tar.gz"))
516 (sha256
517 (base32
518 "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj"))))
519 (build-system python-build-system)
520 (native-inputs
521 `(("python-setuptools" ,python-setuptools)))
522 (inputs
523 `(("python" ,python)
524 ("gmp" ,gmp)))
525 (arguments
526 `(#:phases
527 (alist-cons-before
528 'build 'set-build-env
529 ;; pycrypto runs an autoconf configure script behind the scenes
530 (lambda _
531 (setenv "CONFIG_SHELL" (which "bash")))
532 %standard-phases)))
533 (home-page "http://www.pycrypto.org/")
534 (synopsis "Cryptographic modules for Python")
535 (description
536 "Pycrypto is a collection of both secure hash functions (such as SHA256
537and RIPEMD160), and various encryption algorithms (AES, DES, RSA, ElGamal,
538etc.). The package is structured to make adding new modules easy.")
539 (license public-domain)))
540
541(define-public python-keyring
542 (package
543 (name "python-keyring")
544 (version "3.8")
545 (source
546 (origin
547 (method url-fetch)
548 (uri (string-append "https://pypi.python.org/packages/source/k/"
549 "keyring/keyring-" version ".zip"))
550 (sha256
551 (base32
552 "1vxazfbcwggyfyramh55shkxs08skhpqrkm6lrrjnygnm8c1l2zg"))))
553 (build-system python-build-system)
554 (native-inputs
555 `(("unzip" ,unzip)
556 ("python-setuptools" ,python-setuptools)
557 ("python-mock" ,python-mock)))
558 (inputs
559 `(("python-pycrypto" ,python-pycrypto)))
560 (arguments
561 `(#:tests? #f ;TODO: tests require pytest
562 #:phases
563 (alist-replace
564 'unpack
565 (lambda _
566 (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
567 "/bin/unzip"))
568 (source (assoc-ref %build-inputs "source")))
569 (and (zero? (system* unzip source))
570 (chdir (string-append "keyring-" ,version)))))
571 %standard-phases)))
572 (home-page "http://bitbucket.org/kang/python-keyring-lib")
573 (synopsis "Store and access your passwords safely")
574 (description
575 "The Python keyring lib provides a easy way to access the system keyring
576service from python. It can be used in any application that needs safe
577password storage.")
578 ;; "MIT" and PSF dual license
579 (license x11)))
580
581(define-public python-six
582 (package
583 (name "python-six")
584 (version "1.7.2")
585 (source
586 (origin
587 (method url-fetch)
588 (uri (string-append "https://pypi.python.org/packages/source/s/"
589 "six/six-" version ".tar.gz"))
590 (sha256
591 (base32
592 "164rns26aqfqx2hwi0qq3scl50s69japn0fvgvrjsbyg7r1mxf67"))))
593 (build-system python-build-system)
594 (inputs
595 `(("python-setuptools" ,python-setuptools)))
596 (home-page "http://pypi.python.org/pypi/six/")
597 (synopsis "Python 2 and 3 compatibility utilities")
598 (description
599 "Six is a Python 2 and 3 compatibility library. It provides utility
600functions for smoothing over the differences between the Python versions with
601the goal of writing Python code that is compatible on both Python versions.
602Six supports every Python version since 2.5. It is contained in only one
603Python file, so it can be easily copied into your project.")
604 (license x11)))
605
606(define-public python2-six
607 (package-with-python2 python-six))
608
609(define-public python-dateutil-2
610 (package
611 (name "python-dateutil")
612 (version "2.2")
613 (source
614 (origin
615 (method url-fetch)
616 (uri (string-append "https://pypi.python.org/packages/source/p/"
617 name "/" name "-" version ".tar.gz"))
618 (sha256
619 (base32
620 "0s74ad6r789810s10dxgvaf48ni6adac2icrdad34zxygqq6bj7f"))))
621 (build-system python-build-system)
622 (inputs
623 `(("python-setuptools" ,python-setuptools)
624 ("python-six" ,python-six)))
625 (home-page "http://labix.org/python-dateutil")
626 (synopsis "Extensions to the standard datetime module")
627 (description
628 "The dateutil module provides powerful extensions to the standard
629datetime module, available in Python 2.3+.")
630 (license bsd-3)))
631
632(define-public python2-dateutil-2
633 (package-with-python2 python-dateutil-2))
634
635(define-public python-dateutil
636 (package
637 (name "python-dateutil")
638 (version "1.5") ; last version for python < 3
639 (source
640 (origin
641 (method url-fetch)
642 (uri (string-append "http://labix.org/download/python-dateutil/"
643 "python-dateutil-" version ".tar.gz"))
644 (sha256
645 (base32
646 "0fqfglhy5khbvsipr3x7m6bcaqljh8xl5cw33vbfxy7qhmywm2n0"))))
647 (build-system python-build-system)
648 (inputs
649 `(("python-setuptools" ,python-setuptools)))
650 (home-page "http://labix.org/python-dateutil")
651 (synopsis "Extensions to the standard datetime module")
652 (description
653 "The dateutil module provides powerful extensions to the standard
654datetime module, available in Python 2.3+.")
655 (license psfl)))
656
657(define-public python2-dateutil
658 (package-with-python2 python-dateutil))
659
660(define-public python-parsedatetime
661 (package
662 (name "python-parsedatetime")
663 (version "1.2")
664 (source
665 (origin
666 (method url-fetch)
667 (uri (string-append "https://pypi.python.org/packages/source/p/"
668 "parsedatetime/parsedatetime-" version ".tar.gz"))
669 (sha256
670 (base32
671 "1zcj0pzxvpl4j2ma9awmpkfxldybi2kjaahjjpmgfbg5cxwcjsqv"))))
672 (build-system python-build-system)
673 (native-inputs
674 `(("python-setuptools" ,python-setuptools)))
675 (arguments `(#:tests? #f)) ;no test target
676 (home-page "http://github.com/bear/parsedatetime/")
677 (synopsis
678 "Parse human-readable date/time text")
679 (description
680 "Parse human-readable date/time text.")
681 (license asl2.0)))
682
683(define-public python-pandas
684 (package
685 (name "python-pandas")
686 (version "0.16.0")
687 (source
688 (origin
689 (method url-fetch)
690 (uri (string-append "https://pypi.python.org/packages/source/p/"
691 "pandas/pandas-" version ".tar.gz"))
692 (sha256
693 (base32 "1wfrp8dx1zcsry6f09ndza6qm1yr7f163211f4l9vjlnhxpxw4s0"))))
694 (build-system python-build-system)
695 (arguments
696 `(;; Three tests fail:
697 ;; - test_read_google
698 ;; - test_read_yahoo
699 ;; - test_month_range_union_tz_dateutil
700 #:tests? #f))
701 (propagated-inputs
702 `(("python-numpy" ,python-numpy)
703 ("python-pytz" ,python-pytz)
704 ("python-dateutil" ,python-dateutil-2)))
705 (native-inputs
706 `(("python-nose" ,python-nose)
707 ("python-setuptools" ,python-setuptools)))
708 (home-page "http://pandas.pydata.org")
709 (synopsis "Data structures for data analysis, time series, and statistics")
710 (description
711 "Pandas is a Python package providing fast, flexible, and expressive data
712structures designed to make working with structured (tabular,
713multidimensional, potentially heterogeneous) and time series data both easy
714and intuitive. It aims to be the fundamental high-level building block for
715doing practical, real world data analysis in Python.")
716 (license bsd-3)))
717
718(define-public python2-pandas
719 (package-with-python2 python-pandas))
720
721(define-public python-tzlocal
722 (package
723 (name "python-tzlocal")
724 (version "1.1.1")
725 (source
726 (origin
727 (method url-fetch)
728 (uri (string-append "https://pypi.python.org/packages/source/t/"
729 "tzlocal/tzlocal-" version ".zip"))
730 (sha256
731 (base32
732 "1m3y918c3chf41fwg2bx4w42bqsjzn3dyvvcmwwy13c8gj6zssv9"))))
733 (build-system python-build-system)
734 (native-inputs
735 `(("unzip" ,unzip)
736 ("python-setuptools" ,python-setuptools)))
737 (inputs `(("python-pytz" ,python-pytz)))
738 (arguments
739 `(#:phases
740 (alist-replace
741 'unpack
742 (lambda _
743 (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
744 "/bin/unzip"))
745 (source (assoc-ref %build-inputs "source")))
746 (and (zero? (system* unzip source))
747 (chdir (string-append "tzlocal-" ,version)))))
748 %standard-phases)))
749 (home-page "https://github.com/regebro/tzlocal")
750 (synopsis
751 "Local timezone information for Python")
752 (description
753 "Tzlocal returns a tzinfo object with the local timezone information.
754This module attempts to fix a glaring hole in pytz, that there is no way to
755get the local timezone information, unless you know the zoneinfo name, and
756under several distributions that's hard or impossible to figure out.")
757 (license cc0)))
758
759(define-public python-pysam
760 (package
761 (name "python-pysam")
762 (version "0.8.1")
763 (source
764 (origin
765 (method url-fetch)
766 (uri (string-append "https://pypi.python.org/packages/source/p/pysam/pysam-"
767 version ".tar.gz"))
768 (sha256
769 (base32
770 "1fb6i6hbpzxaxb62kyyp5alaidwhj40f7c6gwbhr6njzlqd5l459"))))
771 (build-system python-build-system)
772 (arguments
773 `(#:tests? #f ; tests are excluded in the manifest
774 #:phases
775 (alist-cons-before
776 'build 'set-flags
777 (lambda _
778 (setenv "LDFLAGS" "-lncurses")
779 (setenv "CFLAGS" "-D_CURSES_LIB=1"))
780 %standard-phases)))
781 (inputs
782 `(("python-cython" ,python-cython)
783 ("python-setuptools" ,python-setuptools)
784 ("ncurses" ,ncurses)
785 ("zlib" ,zlib)))
786 (home-page "https://github.com/pysam-developers/pysam")
787 (synopsis "Python bindings to the SAMtools C API")
788 (description
789 "Pysam is a Python module for reading and manipulating files in the
790SAM/BAM format. Pysam is a lightweight wrapper of the SAMtools C API. It
791also includes an interface for tabix.")
792 (license license:expat)))
793
794(define-public python2-pysam
795 (package-with-python2 python-pysam))
796
797(define-public python2-pysqlite
798 (package
799 (name "python2-pysqlite")
800 (version "2.6.3a") ; see below
801 (source
802 (origin
803 (method url-fetch)
804 ;; During the switch from code.google.com to pypi.python.org, the 2.6.3
805 ;; tarball was modified, but the version number was kept:
806 ;; <https://lists.gnu.org/archive/html/guix-devel/2014-02/msg00077.html>.
807 ;; Here we want to refer to the pypi-hosted 2.6.3 tarball.
808 (uri (string-append
809 "https://pypi.python.org/packages/source/p/pysqlite/pysqlite-"
810 "2.6.3" ".tar.gz"))
811 (sha256
812 (base32
813 "13djzgnbi71znjjyaw4nybg6smilgszcid646j5qav7mdchkb77y"))))
814 (build-system python-build-system)
815 (inputs
816 `(("sqlite" ,sqlite)))
817 (arguments
818 `(#:python ,python-2 ; incompatible with Python 3
819 #:tests? #f)) ; no test target
820 (home-page "https://pypi.python.org/pypi/pysqlite")
821 (synopsis "SQLite bindings for Python")
822 (description
823 "Pysqlite provides SQLite bindings for Python that comply to the
824Database API 2.0T.")
825 (license license:zlib)))
826
827
828(define-public python2-mechanize
829 (package
830 (name "python2-mechanize")
831 (version "0.2.5")
832 (source
833 (origin
834 (method url-fetch)
835 (uri (string-append "https://pypi.python.org/packages/source/m/mechanize/mechanize-"
836 version ".tar.gz"))
837 (sha256
838 (base32
839 "0rj7r166i1dyrq0ihm5rijfmvhs8a04im28lv05c0c3v206v4rrf"))))
840 (build-system python-build-system)
841 (inputs
842 `(("python2-setuptools" ,python2-setuptools)))
843 (arguments
844 `(#:python ,python-2 ; apparently incompatible with Python 3
845 #:tests? #f))
846 ;; test fails with message
847 ;; AttributeError: 'module' object has no attribute 'test_pullparser'
848 ;; (python-3.3.2) or
849 ;; AttributeError: 'module' object has no attribute 'test_urllib2_localnet'
850 ;; (python-2.7.5).
851 ;; The source code is from March 2011 and probably not up-to-date
852 ;; with respect to python unit tests.
853 (home-page "http://wwwsearch.sourceforge.net/mechanize/")
854 (synopsis
855 "Stateful programmatic web browsing in Python")
856 (description
857 "Mechanize implements stateful programmatic web browsing in Python,
858after Andy Lester’s Perl module WWW::Mechanize.")
859 (license (non-copyleft "file://COPYING"
860 "See COPYING in the distribution."))))
861
862
863(define-public python-simplejson
864 (package
865 (name "python-simplejson")
866 (version "3.3.0")
867 (source
868 (origin
869 (method url-fetch)
870 (uri (string-append "https://pypi.python.org/packages/source/s/simplejson/simplejson-"
871 version ".tar.gz"))
872 (sha256
873 (base32
874 "07wsry5j44l5zzm74l4j2bvasiq8n5m32f31n2p7c68i5vc6p2ks"))))
875 (build-system python-build-system)
876 (home-page "http://simplejson.readthedocs.org/en/latest/")
877 (synopsis
878 "Json library for Python")
879 (description
880 "JSON (JavaScript Object Notation) is a subset of JavaScript
881syntax (ECMA-262 3rd edition) used as a lightweight data interchange
882format.
883
884Simplejson exposes an API familiar to users of the standard library marshal
885and pickle modules. It is the externally maintained version of the json
886library contained in Python 2.6, but maintains compatibility with Python 2.5
887and (currently) has significant performance advantages, even without using
888the optional C extension for speedups. Simplejson is also supported on
889Python 3.3+.")
890 (license x11)))
891
892(define-public python2-simplejson
893 (package-with-python2 python-simplejson))
894
895
896(define-public python2-pyicu
897 (package
898 (name "python2-pyicu")
899 (version "1.8")
900 (source
901 (origin
902 (method url-fetch)
903 (uri (string-append "https://pypi.python.org/packages/source/P/PyICU/PyICU-"
904 version ".tar.gz"))
905 (sha256
906 (base32
907 "1y361x82lnh9k9srmdx3q92z5iag112z7r5fxm0n1sfwb349yjdw"))))
908 (build-system python-build-system)
909 (inputs
910 `(("icu4c" ,icu4c)))
911 (arguments
912 `(#:python ,python-2 ; Python 3 works also, but needs special care for
913 ; linking with libpython3.3m
914 #:tests? #f)) ; no check target
915 (home-page "http://pyicu.osafoundation.org/")
916 (synopsis "Python extension wrapping the ICU C++ API")
917 (description
918 "PyICU is a python extension wrapping the ICU C++ API.")
919 (license x11)))
920
921(define-public python2-dogtail
922 ;; Python 2 only, as it leads to "TabError: inconsistent use of tabs and
923 ;; spaces in indentation" with Python 3.
924 (package
925 (name "python2-dogtail")
926 (version "0.8.2")
927 (source (origin
928 (method url-fetch)
929 (uri (string-append
930 "https://fedorahosted.org/released/dogtail/dogtail-"
931 version ".tar.gz"))
932 (sha256
933 (base32
934 "1yc4cg7ip87z15gyd4wy2vzbywrjc52a3m8r8gqy2b50d65llcg1"))))
935 (build-system python-build-system)
936 (arguments `(#:python ,python-2
937 #:tests? #f)) ; invalid command "test"
938 (home-page "https://fedorahosted.org/dogtail/")
939 (synopsis "GUI test tool and automation framework written in ​Python")
940 (description
941 "Dogtail is a GUI test tool and automation framework written in Python.
942It uses Accessibility (a11y) technologies to communicate with desktop
943applications. dogtail scripts are written in Python and executed like any
944other Python program.")
945 (license gpl2+)))
946
947(define-public python2-empy
948 (package
949 (name "python2-empy")
950 (version "3.3")
951 (source (origin
952 (method url-fetch)
953 (uri (string-append "http://www.alcyone.com/software/empy/empy-"
954 version ".tar.gz"))
955 (sha256
956 (base32
957 "01g8mmkfnvjdmlhsihwyx56lrg7r5m5d2fg6mnxsvy6g0dnl69f6"))))
958 (build-system python-build-system)
959 (arguments
960 `(#:python ,python-2
961 #:phases (alist-replace
962 'check
963 (lambda _
964 (zero? (system* "./test.sh")))
965 %standard-phases)))
966 (home-page "http://www.alcyone.com/software/empy/")
967 (synopsis "Templating system for Python")
968 (description
969 "EmPy is a system for embedding Python expressions and statements in
970template text; it takes an EmPy source file, processes it, and produces
971output. This is accomplished via expansions, which are special signals to the
972EmPy system and are set off by a special prefix (by default the at sign, @).
973EmPy can expand arbitrary Python expressions and statements in this way, as
974well as a variety of special forms. Textual data not explicitly delimited in
975this way is sent unaffected to the output, allowing Python to be used in
976effect as a markup language. Also supported are callbacks via hooks,
977recording and playback via diversions, and dynamic, chainable filters. The
978system is highly configurable via command line options and embedded
979commands.")
980 (license lgpl2.1+)))
981
982(define-public python2-element-tree
983 (package
984 (name "python2-element-tree")
985 (version "1.2.6")
986 (source (origin
987 (method url-fetch)
988 (uri (string-append
989 "http://effbot.org/media/downloads/elementtree-"
990 version "-20050316.tar.gz"))
991 (sha256
992 (base32
993 "016bphqnlg0l4vslahhw4r0aanw95bpypy65r1i1acyb2wj5z7dj"))))
994 (build-system python-build-system)
995 (arguments
996 `(#:python ,python-2 ; seems to be part of Python 3
997 #:tests? #f)) ; no 'test' sub-command
998 (synopsis "Toolkit for XML processing in Python")
999 (description
1000 "ElementTree is a Python library supporting lightweight XML processing.")
1001 (home-page "http://effbot.org/zone/element-index.htm")
1002 (license (x11-style "http://docs.python.org/2/license.html"
1003 "Like \"CWI LICENSE AGREEMENT FOR PYTHON \
10040.9.0 THROUGH 1.2\"."))))
1005
1006(define-public python2-pybugz
1007 (package
1008 (name "python2-pybugz")
1009 (version "0.6.11")
1010 (source (origin
1011 (method url-fetch)
1012 (uri (string-append
1013 "http://bits.liquidx.net/projects/pybugz/pybugz-"
1014 version ".tar.gz"))
1015 (sha256
1016 (base32
1017 "17ni00p08gp5lkxlrrcnvi3x09fmajnlbz4da03qcgl9q21ym4jd"))
1018 (patches (map search-patch
1019 (list "pybugz-stty.patch"
1020 "pybugz-encode-error.patch")))))
1021 (build-system python-build-system)
1022 (arguments
1023 `(#:python ,python-2 ; SyntaxError with Python 3
1024 #:tests? #f)) ; no 'test' sub-command
1025 (inputs `(("element-tree" ,python2-element-tree)))
1026 (synopsis "Python and command-line interface to Bugzilla")
1027 (description
1028 "PyBugz is a Python library and command-line tool to query the Bugzilla
1029bug tracking system. It is meant as an aid to speed up interaction with the
1030bug tracker.")
1031 (home-page "http://www.liquidx.net/pybugz/")
1032 (license gpl2)))
1033
1034(define-public python-enum34
1035 (package
1036 (name "python-enum34")
1037 (version "1.0")
1038 (source
1039 (origin
1040 (method url-fetch)
1041 (uri (string-append "https://pypi.python.org/packages/source/e/"
1042 "enum34/enum34-" version ".tar.gz"))
1043 (sha256
1044 (base32
1045 "0dg6mpg9n4g9diyrbnbb5vd9d1qw9f265zwhknqy0mxh0cvmjjrq"))))
1046 (build-system python-build-system)
1047 (inputs
1048 `(("python-setuptools" ,python-setuptools)))
1049 (arguments
1050 `(#:phases
1051 (alist-replace
1052 'check
1053 (lambda _ (zero? (system* "python" "enum/test_enum.py")))
1054 %standard-phases)))
1055 (home-page "https://pypi.python.org/pypi/enum34")
1056 (synopsis "Backported Python 3.4 Enum")
1057 (description
1058 "Enum34 is the new Python stdlib enum module available in Python 3.4
1059backported for previous versions of Python from 2.4 to 3.3.")
1060 (license bsd-3)))
1061
1062(define-public python-parse-type
1063 (package
1064 (name "python-parse-type")
1065 (version "0.3.4")
1066 (source
1067 (origin
1068 (method url-fetch)
1069 (uri (string-append "https://pypi.python.org/packages/source/p/"
1070 "parse_type/parse_type-" version ".tar.gz"))
1071 (sha256
1072 (base32
1073 "0iv1c34npr4iynwpgv1vkjx9rjd18a85ir8c01gc5f7wp8iv7l1x"))))
1074 (build-system python-build-system)
1075 (inputs
1076 `(("python-setuptools" ,python-setuptools)
1077 ("python-six" ,python-six)
1078 ("python-parse" ,python-parse)
1079 ("python-enum34" ,python-enum34))) ;required for python<3.4
1080 (arguments '(#:tests? #f)) ;TODO: tests require pytest
1081 (home-page "https://github.com/jenisys/parse_type")
1082 (synopsis "Extended parse module")
1083 (description
1084 "Parse_type extends the python parse module.")
1085 (license bsd-3)))
1086
1087(define-public python-parse
1088 (package
1089 (name "python-parse")
1090 (version "1.6.4")
1091 (source
1092 (origin
1093 (method url-fetch)
1094 (uri (string-append "https://pypi.python.org/packages/source/p/"
1095 "parse/parse-" version ".tar.gz"))
1096 (sha256
1097 (base32
1098 "0m30q64l6szl7s9mhvqy64w2fdhdn8lb91fmacjiwbv3479cmk57"))))
1099 (build-system python-build-system)
1100 (arguments
1101 `(#:phases
1102 (alist-replace
1103 'check
1104 (lambda _ (zero? (system* "python" "test_parse.py")))
1105 %standard-phases)))
1106 (home-page "https://github.com/r1chardj0n3s/parse")
1107 (synopsis "Parse strings")
1108 (description
1109 "Parse strings using a specification based on the Python format()
1110syntax.")
1111 (license x11)))
1112
1113
1114(define-public scons
1115 (package
1116 (name "scons")
1117 (version "2.3.4")
1118 (source (origin
1119 (method url-fetch)
1120 (uri (string-append "mirror://sourceforge/scons/scons-"
1121 version ".tar.gz"))
1122 (sha256
1123 (base32
1124 "0hdlci43wjz8maryj83mz04ir6rwcdrrzpd7cpzvdlzycqhdfmsb"))))
1125 (build-system python-build-system)
1126 (arguments
1127 ;; With Python 3.x, fails to build with a syntax error.
1128 `(#:python ,python-2
1129 #:tests? #f)) ; no 'python setup.py test' command
1130 (home-page "http://scons.org/")
1131 (synopsis "Software construction tool written in Python")
1132 (description
1133 "SCons is a software construction tool. Think of SCons as an improved,
1134cross-platform substitute for the classic Make utility with integrated
1135functionality similar to autoconf/automake and compiler caches such as ccache.
1136In short, SCons is an easier, more reliable and faster way to build
1137software.")
1138 (license x11)))
1139
1140(define-public python-extras
1141 (package
1142 (name "python-extras")
1143 (version "0.0.3")
1144 (source
1145 (origin
1146 (method url-fetch)
1147 (uri (string-append
1148 "https://pypi.python.org/packages/source/e/extras/extras-"
1149 version ".tar.gz"))
1150 (sha256
1151 (base32
1152 "1h7zx4dfyclalg0fqnfjijpn0f793a9mx8sy3b27gd31nr6dhq3s"))))
1153 (build-system python-build-system)
1154 (inputs
1155 `(("python-setuptools" ,python-setuptools)))
1156 (arguments
1157 ;; error in setup.cfg: command 'test' has no such option 'buffer'
1158 '(#:tests? #f))
1159 (home-page "https://github.com/testing-cabal/extras")
1160 (synopsis "Useful extensions to the Python standard library")
1161 (description
1162 "Extras is a set of extensions to the Python standard library.")
1163 (license license:expat)))
1164
1165(define-public python2-extras
1166 (package-with-python2 python-extras))
1167
1168(define-public python-mimeparse
1169 (package
1170 (name "python-mimeparse")
1171 (version "0.1.4")
1172 (source
1173 (origin
1174 (method url-fetch)
1175 (uri (string-append
1176 "https://pypi.python.org/packages/source/p/python-mimeparse/python-mimeparse-"
1177 version ".tar.gz"))
1178 (sha256
1179 (base32
1180 "1hyxg09kaj02ri0rmwjqi86wk4nd1akvv7n0dx77azz76wga4s9w"))))
1181 (build-system python-build-system)
1182 (inputs
1183 `(("python-setuptools" ,python-setuptools)))
1184 (arguments
1185 '(#:tests? #f)) ; no setup.py test command
1186 (home-page
1187 "https://github.com/dbtsai/python-mimeparse")
1188 (synopsis "Python library for parsing MIME types")
1189 (description
1190 "Mimeparse provides basic functions for parsing MIME type names and
1191matching them against a list of media-ranges.")
1192 (license license:expat)))
1193
1194(define-public python2-mimeparse
1195 (package-with-python2 python-mimeparse))
1196
1197(define-public python-nose
1198 (package
1199 (name "python-nose")
1200 (version "1.3.4")
1201 (source
1202 (origin
1203 (method url-fetch)
1204 (uri (string-append
1205 "https://pypi.python.org/packages/source/n/nose/nose-"
1206 version ".tar.gz"))
1207 (sha256
1208 (base32
1209 "00qymfgwg4iam4xi0w9bnv7lcb3fypq1hzfafzgs1rfmwaj67g3n"))))
1210 (build-system python-build-system)
1211 (inputs
1212 `(("python-setuptools" ,python-setuptools)))
1213 (arguments
1214 '(#:tests? #f)) ; FIXME: test suite fails
1215 (home-page "http://readthedocs.org/docs/nose/")
1216 (synopsis "Python testing library")
1217 (description
1218 "Nose extends the unittest library to make testing easier.")
1219 (license lgpl2.0+)))
1220
1221(define-public python2-nose
1222 (package-with-python2 python-nose))
1223
1224(define-public python-unittest2
1225 (package
1226 (name "python-unittest2")
1227 (version "0.5.1")
1228 (source
1229 (origin
1230 (method url-fetch)
1231 (uri (string-append
1232 "https://pypi.python.org/packages/source/u/unittest2py3k/unittest2py3k-"
1233 version ".tar.gz"))
1234 (sha256
1235 (base32
1236 "00yl6lskygcrddx5zspkhr0ibgvpknl4678kkm6s626539grq93q"))))
1237 (build-system python-build-system)
1238 (inputs
1239 `(("python-setuptools" ,python-setuptools)))
1240 (home-page "http://pypi.python.org/pypi/unittest2")
1241 (synopsis "Python unit testing library")
1242 (description
1243 "Unittest2 is a replacement for the unittest module in the Python
1244standard library.")
1245 (license psfl)))
1246
1247(define-public python2-unittest2
1248 (package (inherit python-unittest2)
1249 (name "python2-unittest2")
1250 (version "0.5.1")
1251 (source
1252 (origin
1253 (method url-fetch)
1254 (uri (string-append
1255 "https://pypi.python.org/packages/source/u/unittest2/unittest2-"
1256 version ".tar.gz"))
1257 (sha256
1258 (base32
1259 "0wbs4i4x3x7klr3v35ss6p9mcqz883i1xgcpkhvl7n2lyv6yhpda"))))
1260 (inputs
1261 `(("python2-setuptools" ,python-setuptools)))
1262 (arguments
1263 `(#:python ,python-2
1264 #:tests? #f)))) ; no setup.py test command
1265
1266(define-public python-py
1267 (package
1268 (name "python-py")
1269 (version "1.4.23")
1270 (source
1271 (origin
1272 (method url-fetch)
1273 (uri (string-append
1274 "https://pypi.python.org/packages/source/p/py/py-"
1275 version ".tar.gz"))
1276 (sha256
1277 (base32
1278 "1jkhffpai419v5rickm2vz86p9bkg3b3kcm2k4bi5wfajhw2m3xs"))))
1279 (build-system python-build-system)
1280 (inputs
1281 `(("python-setuptools" ,python-setuptools)))
1282 (home-page "http://pylib.readthedocs.org/")
1283 (synopsis "Python library for parsing, I/O, instrospection, and logging")
1284 (description
1285 "Py is a Python library for file name parsing, .ini file parsing, I/O,
1286code introspection, and logging.")
1287 (license license:expat)))
1288
1289(define-public python2-py
1290 (package-with-python2 python-py))
1291
1292(define-public python-pytest
1293 (package
1294 (name "python-pytest")
1295 (version "2.6.1")
1296 (source
1297 (origin
1298 (method url-fetch)
1299 (uri (string-append
1300 "https://pypi.python.org/packages/source/p/pytest/pytest-"
1301 version ".tar.gz"))
1302 (sha256
1303 (base32
1304 "0g2w4p0n42wvz8rq4k6gnzpkakgz3g8sfanxk8jrsra9675snkcr"))
1305 (modules '((guix build utils)))
1306 (snippet
1307 ;; One of the tests involves the /usr directory, so it fails.
1308 '(substitute* "testing/test_argcomplete.py"
1309 (("def test_remove_dir_prefix\\(self\\):")
1310 "@pytest.mark.xfail\n def test_remove_dir_prefix(self):")))))
1311 (build-system python-build-system)
1312 (inputs
1313 `(("python-setuptools" ,python-setuptools)
1314 ("python-py" ,python-py)
1315 ("python-nose" ,python-nose)
1316 ("python-mock" ,python-mock)))
1317 (home-page "http://pytest.org")
1318 (synopsis "Python testing library")
1319 (description
1320 "Pytest is a testing tool that provides auto-discovery of test modules
1321and functions, detailed info on failing assert statements, modular fixtures,
1322and many external plugins.")
1323 (license license:expat)))
1324
1325(define-public python2-pytest
1326 (package-with-python2 python-pytest))
1327
1328(define-public python-scripttest
1329 (package
1330 (name "python-scripttest")
1331 (version "1.3")
1332 (source
1333 (origin
1334 (method url-fetch)
1335 (uri (string-append
1336 "https://pypi.python.org/packages/source/s/scripttest/scripttest-"
1337 version ".tar.gz"))
1338 (sha256
1339 (base32
1340 "0f4w84k8ck82syys7yg9maz93mqzc8p5ymis941x034v44jzq74m"))))
1341 (build-system python-build-system)
1342 (inputs
1343 `(("python-setuptools" ,python-setuptools)
1344 ("python-pytest" ,python-pytest)))
1345 (home-page "http://pythonpaste.org/scripttest/")
1346 (synopsis "Python library to test command-line scripts")
1347 (description "Scripttest is a Python helper library for testing
1348interactive command-line applications. With it you can run a script in a
1349subprocess and see the output as well as any file modifications.")
1350 (license license:expat)))
1351
1352(define-public python2-scripttest
1353 (package-with-python2 python-scripttest))
1354
1355(define-public python-testtools
1356 (package
1357 (name "python-testtools")
1358 (version "1.0.0")
1359 (source
1360 (origin
1361 (method url-fetch)
1362 (uri (string-append
1363 "https://pypi.python.org/packages/source/t/testtools/testtools-"
1364 version ".tar.gz"))
1365 (sha256
1366 (base32
1367 "1dyml28ykpl5jb9khdmcdvhy1cxqingys6qvj2k04fzlaj6z3bbx"))))
1368 (build-system python-build-system)
1369 (propagated-inputs
1370 `(("python-mimeparse" ,python-mimeparse)))
1371 (inputs
1372 `(("python-setuptools" ,python-setuptools)
1373 ("python-extras" ,python-extras)))
1374 (home-page "https://github.com/testing-cabal/testtools")
1375 (synopsis
1376 "Extensions to the Python standard library unit testing framework")
1377 (description
1378 "Testtools extends the Python standard library unit testing framework to
1379provide matchers, more debugging information, and cross-Python
1380compatibility.")
1381 (license psfl)))
1382
1383(define-public python2-testtools
1384 (package-with-python2 python-testtools))
1385
1386(define-public python-testscenarios
1387 (package
1388 (name "python-testscenarios")
1389 (version "0.4")
1390 (source
1391 (origin
1392 (method url-fetch)
1393 (uri (string-append
1394 "https://pypi.python.org/packages/source/t/testscenarios/testscenarios-"
1395 version ".tar.gz"))
1396 (sha256
1397 (base32
1398 "1671jvrvqlmbnc42j7pc5y6vc37q44aiwrq0zic652pxyy2fxvjg"))))
1399 (build-system python-build-system)
1400 (inputs
1401 `(("python-setuptools" ,python-setuptools)
1402 ("python-testtools" ,python-testtools)
1403 ("python-mimeparse" ,python-mimeparse)))
1404 (home-page "https://launchpad.net/testscenarios")
1405 (synopsis "Pyunit extension for dependency injection")
1406 (description
1407 "Testscenarios provides clean dependency injection for Python unittest
1408style tests.")
1409 (license (list bsd-3 asl2.0)))) ; at the user's option
1410
1411(define-public python2-testscenarios
1412 (package-with-python2 python-testscenarios))
1413
1414(define-public python-testresources
1415 (package
1416 (name "python-testresources")
1417 (version "0.2.7")
1418 (source
1419 (origin
1420 (method url-fetch)
1421 (uri (string-append
1422 "https://pypi.python.org/packages/source/t/testresources/testresources-"
1423 version ".tar.gz"))
1424 (sha256
1425 (base32
1426 "0cbj3plbllyz42c4b5xxgwaa7mml54lakslrn4kkhinxhdri22md"))))
1427 (build-system python-build-system)
1428 (inputs
1429 `(("python-setuptools" ,python-setuptools)))
1430 (home-page "https://launchpad.net/testresources")
1431 (synopsis
1432 "Pyunit extension for managing test resources")
1433 (description
1434 "Testresources is an extension to Python's unittest to allow declarative
1435use of resources by test cases.")
1436 (license (list bsd-3 asl2.0)))) ; at the user's option
1437
1438(define-public python2-testresources
1439 (package-with-python2 python-testresources))
1440
1441(define-public python-subunit
1442 (package
1443 (name "python-subunit")
1444 (version "0.0.21")
1445 (source
1446 (origin
1447 (method url-fetch)
1448 (uri (string-append
1449 "https://pypi.python.org/packages/source/p/python-subunit/python-subunit-"
1450 version ".tar.gz"))
1451 (sha256
1452 (base32
1453 "1nkw9wfbvizmpajbj3in8ns07g7lwkiv8hip14jjlwk3cacls6jv"))))
1454 (build-system python-build-system)
1455 (inputs
1456 `(("python-setuptools" ,python-setuptools)
1457 ("python-testtools" ,python-testtools)
1458 ("python-mimeparse" ,python-mimeparse)
1459 ("python-testscenarios" ,python-testscenarios)))
1460 (home-page "http://launchpad.net/subunit")
1461 (synopsis "Python implementation of the subunit protocol")
1462 (description
1463 "Python-subunit is a Python implementation of the subunit test streaming
1464protocol.")
1465 (license (list bsd-3 asl2.0)))) ; at the user's option
1466
1467(define-public python2-subunit
1468 (package-with-python2 python-subunit))
1469
1470(define-public python-fixtures
1471 (package
1472 (name "python-fixtures")
1473 (version "0.3.16")
1474 (source
1475 (origin
1476 (method url-fetch)
1477 (uri (string-append
1478 "https://pypi.python.org/packages/source/f/fixtures/fixtures-"
1479 version ".tar.gz"))
1480 (sha256
1481 (base32
1482 "0x9r2gwilcig5g54k60bxzg96zabizq1855lrprlb4zckalp9asc"))))
1483 (build-system python-build-system)
1484 (inputs
1485 `(("python-setuptools" ,python-setuptools)))
1486 (arguments
1487 '(#:tests? #f)) ; no setup.py test command
1488 (home-page "https://launchpad.net/python-fixtures")
1489 (synopsis "Python test fixture library")
1490 (description
1491 "Fixtures provides a way to create reusable state, useful when writing
1492Python tests.")
1493 (license (list bsd-3 asl2.0)))) ; at user's option
1494
1495(define-public python2-fixtures
1496 (package-with-python2 python-fixtures))
1497
1498(define-public python-testrepository
1499 (package
1500 (name "python-testrepository")
1501 (version "0.0.20")
1502 (source
1503 (origin
1504 (method url-fetch)
1505 (uri (string-append
1506 "https://pypi.python.org/packages/source/t/testrepository/testrepository-"
1507 version ".tar.gz"))
1508 (sha256
1509 (base32
1510 "1ssqb07c277010i6gzzkbdd46gd9mrj0bi0i8vn560n2k2y4j93m"))))
1511 (build-system python-build-system)
1512 (inputs
1513 `(("python-setuptools" ,python-setuptools)
1514 ("python-testtools" ,python-testtools)
1515 ("python-subunit" ,python-subunit)
1516 ("python-fixtures" ,python-fixtures)
1517 ("python-mimeparse" ,python-mimeparse)))
1518 (home-page "https://launchpad.net/testrepository")
1519 (synopsis "Database for Python test results")
1520 (description "Testrepository provides a database of test results which can
1521be used as part of a developer's workflow to check things such as what tests
1522have failed since the last commit or what tests are currently failing.")
1523 (license (list bsd-3 asl2.0)))) ; at user's option
1524
1525(define-public python2-testrepository
1526 (package-with-python2 python-testrepository))
1527
1528(define-public python-coverage
1529 (package
1530 (name "python-coverage")
1531 (version "3.7.1")
1532 (source
1533 (origin
1534 (method url-fetch)
1535 (uri (string-append
1536 "https://pypi.python.org/packages/source/c/coverage/coverage-"
1537 version ".tar.gz"))
1538 (sha256
1539 (base32
1540 "0knlbq79g2ww6xzsyknj9rirrgrgc983dpa2d9nkdf31mb2a3bni"))))
1541 (build-system python-build-system)
1542 (inputs
1543 `(("python-setuptools" ,python-setuptools)))
1544 (home-page "http://nedbatchelder.com/code/coverage")
1545 (synopsis "Code coverage measurement for Python")
1546 (description
1547 "Coverage measures code coverage, typically during test execution. It
1548uses the code analysis tools and tracing hooks provided in the Python standard
1549library to determine which lines are executable, and which have been
1550executed.")
1551 (license bsd-3)))
1552
1553(define-public python2-coverage
1554 (package-with-python2 python-coverage))
1555
1556(define-public python-discover
1557 (package
1558 (name "python-discover")
1559 (version "0.4.0")
1560 (source
1561 (origin
1562 (method url-fetch)
1563 (uri (string-append
1564 "https://pypi.python.org/packages/source/d/discover/discover-"
1565 version ".tar.gz"))
1566 (sha256
1567 (base32
1568 "0y8d0zwiqar51kxj8lzmkvwc3b8kazb04gk5zcb4nzg5k68zmhq5"))))
1569 (build-system python-build-system)
1570 (inputs
1571 `(("python-setuptools" ,python-setuptools)))
1572 (home-page "http://pypi.python.org/pypi/discover/")
1573 (synopsis
1574 "Python test discovery for unittest")
1575 (description
1576 "Discover provides test discovery for unittest, a feature that has been
1577backported from Python 2.7 for Python 2.4+.")
1578 (license bsd-3)))
1579
1580(define-public python2-discover
1581 (package-with-python2 python-discover))
1582
1583(define-public behave
1584 (package
1585 (name "behave")
1586 (version "1.2.4")
1587 (source (origin
1588 (method url-fetch)
1589 (uri (string-append "https://pypi.python.org/packages/source/b/"
1590 name "/" name "-" version ".tar.gz"))
1591 (sha256
1592 (base32
1593 "1v2rfy8xnf0rk7cj4cgr7lam4015d458i7bg0xqs9czfv6njlm14"))))
1594 (build-system python-build-system)
1595 (inputs
1596 `(("python-setuptools" ,python-setuptools)
1597 ("python-six" ,python-six)
1598 ("python-enum43" ,python-enum34)
1599 ("python-parse" ,python-parse)
1600 ("python-parse-type" ,python-parse-type)))
1601 (arguments `(#:tests? #f)) ;TODO: tests require nose>=1.3 and
1602 ;PyHamcrest>=1.8
1603 (home-page "http://github.com/behave/behave")
1604 (synopsis "Python behavior-driven development")
1605 (description
1606 "Behave is a tool for behavior-driven development in python.
1607Behavior-driven development (or BDD) is an agile software development
1608technique that encourages collaboration between developers, QA and
1609non-technical or business participants in a software project. Behave uses
1610tests written in a natural language style, backed up by Python code.")
1611 (license x11)))
1612
1613(define-public python-exif-read
1614 (package
1615 (name "python-exif-read")
1616 (version "1.4.2")
1617 (source (origin
1618 (method url-fetch)
1619 (uri
1620 (string-append
1621 "https://pypi.python.org/packages/source/E/ExifRead/ExifRead-"
1622 version ".tar.gz"))
1623 (sha256
1624 (base32
1625 "17c627gcdmyc05hz4zk8qs4pjgw6rc68qzjzgz8gh1cmpsd7acf1"))))
1626 (build-system python-build-system)
1627 (inputs
1628 `(("python-setuptools" ,python-setuptools)))
1629 (arguments `(#:tests? #f)) ; no tests
1630 (home-page "https://github.com/ianare/exif-py")
1631 (synopsis "Python library to extract EXIF data from image files")
1632 (description
1633 "ExifRead is a Python library to extract EXIF data from tiff and jpeg
1634files.")
1635 (license bsd-3)))
1636
1637(define-public python2-exif-read
1638 (package-with-python2 python-exif-read))
1639
1640(define-public python-pyld
1641 (package
1642 (name "python-pyld")
1643 (version "0.6.0")
1644 (source (origin
1645 (method url-fetch)
1646 (uri
1647 (string-append
1648 "https://pypi.python.org/packages/source/P/PyLD/PyLD-"
1649 version ".tar.gz"))
1650 (sha256
1651 (base32
1652 "1l9ymj85fsvayqplinzpk0kyiq6m74ps9xd3a9fhlxfn1rldf8x8"))))
1653 (build-system python-build-system)
1654 (inputs
1655 `(("python-setuptools" ,python-setuptools)))
1656 (arguments `(#:tests? #f)) ; no tests
1657 (home-page "http://github.com/digitalbazaar/pyld")
1658 (synopsis "Python implementation of the JSON-LD specification")
1659 (description
1660 "PyLD is an implementation of the JSON-LD specification.")
1661 (license bsd-3)))
1662
1663(define-public python2-pyld
1664 (package-with-python2 python-pyld))
1665
1666(define-public python-certifi
1667 (package
1668 (name "python-certifi")
1669 (version "14.05.14")
1670 (source (origin
1671 (method url-fetch)
1672 (uri
1673 (string-append
1674 "https://pypi.python.org/packages/source/c/certifi/certifi-"
1675 version ".tar.gz"))
1676 (sha256
1677 (base32
1678 "0s8vxzfz6s4m6fvxc7z25k9j35w0rh6jkw3wwcd1az1mssncn6qy"))))
1679 (build-system python-build-system)
1680 (inputs
1681 `(("python-setuptools" ,python-setuptools)))
1682 (arguments `(#:tests? #f)) ; no tests
1683 (home-page "http://python-requests.org/")
1684 (synopsis "Python CA certificate bundle")
1685 (description
1686 "Certifi is a Python library that contains a CA certificate bundle, which
1687is used by the Requests library to verify HTTPS requests.")
1688 (license asl2.0)))
1689
1690(define-public python2-certifi
1691 (package-with-python2 python-certifi))
1692
1693(define-public python-click
1694 (package
1695 (name "python-click")
1696 (version "4.0")
1697 (source
1698 (origin
1699 (method url-fetch)
1700 (uri (string-append
1701 "https://pypi.python.org/packages/source/c/click/click-"
1702 version ".tar.gz"))
1703 (sha256
1704 (base32 "0294x9g28w6zgswl0rsygkwi0wf6n480gf7fiiw5f9az3xhh77pl"))))
1705 (build-system python-build-system)
1706 (native-inputs
1707 `(("python-setuptools" ,python-setuptools)))
1708 (home-page "http://click.pocoo.org")
1709 (synopsis "Command line library for Python")
1710 (description
1711 "Click is a Python package for creating command line interfaces in a
1712composable way with as little code as necessary. Its name stands for
1713\"Command Line Interface Creation Kit\". It's highly configurable but comes
1714with sensible defaults out of the box.")
1715 (license bsd-3)))
1716
1717(define-public python2-click
1718 (package-with-python2 python-click))
1719
1720(define-public python-requests
1721 (package
1722 (name "python-requests")
1723 (version "2.4.0")
1724 (source (origin
1725 (method url-fetch)
1726 (uri
1727 (string-append
1728 "https://pypi.python.org/packages/source/r/requests/requests-"
1729 version ".tar.gz"))
1730 (sha256
1731 (base32
1732 "0gknlfx1wakrrm1zi8gi03x2lzj4dsns0vjw0nsmgqvkphyf01vh"))))
1733 (build-system python-build-system)
1734 (inputs
1735 `(("python-setuptools" ,python-setuptools)
1736 ("python-certifi" ,python-certifi)))
1737 (arguments `(#:tests? #f)) ; no tests
1738 (home-page "http://python-requests.org/")
1739 (synopsis "Python HTTP library")
1740 (description
1741 "Requests is a Python HTTP client library. It aims to be easier to use
1742than Python’s urllib2 library.")
1743 (license asl2.0)))
1744
1745(define-public python2-requests
1746 (package-with-python2 python-requests))
1747
1748(define-public python-jsonschema
1749 (package
1750 (name "python-jsonschema")
1751 (version "2.4.0")
1752 (source (origin
1753 (method url-fetch)
1754 (uri
1755 (string-append
1756 "https://pypi.python.org/packages/source/j/jsonschema/jsonschema-"
1757 version ".tar.gz"))
1758 (sha256
1759 (base32
1760 "1yik3031ziygvq66rj3mzfqdgxj29sg1bkfc46wsgi7lnbqs560j"))))
1761 (build-system python-build-system)
1762 (inputs
1763 `(("python-setuptools" ,python-setuptools)))
1764 (home-page "http://github.com/Julian/jsonschema")
1765 (synopsis "Implementation of JSON Schema for Python")
1766 (description
1767 "Jsonschema is an implementation of JSON Schema for Python.")
1768 (license license:expat)))
1769
1770(define-public python2-jsonschema
1771 (package-with-python2 python-jsonschema))
1772
1773(define-public python-unidecode
1774 (package
1775 (name "python-unidecode")
1776 (version "0.04.16")
1777 (source (origin
1778 (method url-fetch)
1779 (uri
1780 (string-append
1781 "https://pypi.python.org/packages/source/U/Unidecode/Unidecode-"
1782 version ".tar.gz"))
1783 (sha256
1784 (base32
1785 "0yv56vc49rvippyxgxvcyz7jklc07ky38rcspax7p00sgmriiljc"))))
1786 (build-system python-build-system)
1787 (inputs
1788 `(("python-setuptools" ,python-setuptools)))
1789 (home-page "https://pypi.python.org/pypi/Unidecode")
1790 (synopsis "ASCII transliterations of Unicode text")
1791 (description
1792 "Unidecode provides ASCII transliterations of Unicode text. Unidecode is
1793useful when integrating with legacy code that doesn't support Unicode, or for
1794ease of entry of non-Roman names on a US keyboard, or when constructing ASCII
1795machine identifiers from human-readable Unicode strings that should still be
1796somewhat intelligeble.")
1797 (license gpl2+)))
1798
1799(define-public python2-unidecode
1800 (package-with-python2 python-unidecode))
1801
1802(define-public python-pyjwt
1803 (package
1804 (name "python-pyjwt")
1805 (version "0.2.1")
1806 (source
1807 (origin
1808 (method url-fetch)
1809 (uri (string-append
1810 "https://pypi.python.org/packages/source/P/PyJWT/PyJWT-"
1811 version ".tar.gz"))
1812 (sha256
1813 (base32
1814 "1ahqblfy2sj3xz34wsa48cn9rp0dspzq56p54i5znmws3b8gml6g"))))
1815 (build-system python-build-system)
1816 (inputs
1817 `(("python-setuptools" ,python-setuptools)))
1818 (arguments
1819 '(#:tests? #f)) ; test suite doesn't work
1820 (home-page "http://github.com/progrium/pyjwt")
1821 (synopsis "JSON Web Token implementation in Python")
1822 (description
1823 "PyJWT is a JSON Web Token implementation written in Python.")
1824 (license license:expat)))
1825
1826(define-public python2-pyjwt
1827 (package-with-python2 python-pyjwt))
1828
1829(define-public python-oauthlib
1830 (package
1831 (name "python-oauthlib")
1832 (version "0.6.3")
1833 (source (origin
1834 (method url-fetch)
1835 (uri
1836 (string-append
1837 "https://pypi.python.org/packages/source/o/oauthlib/oauthlib-"
1838 version ".tar.gz"))
1839 (sha256
1840 (base32
1841 "1yaj3j64la4arwsbhbfmpnickzh3jpg9nlpyg409v8pp24isn48a"))))
1842 (build-system python-build-system)
1843 (inputs
1844 `(("python-setuptools" ,python-setuptools)
1845 ("python-pyjwt" ,python-pyjwt)
1846 ("python-pycrypto" ,python-pycrypto)
1847 ("python-nose" ,python-nose)
1848 ("python-mock" ,python-mock)))
1849 (home-page "https://github.com/idan/oauthlib")
1850 (synopsis "OAuth implementation for Python")
1851 (description
1852 "Oauthlib is a generic, spec-compliant, thorough implementation of the
1853OAuth request-signing logic.")
1854 (license bsd-3)))
1855
1856(define-public python2-oauthlib
1857 (let ((base (package-with-python2 python-oauthlib)))
1858 (package
1859 (inherit base)
1860 (inputs
1861 (append (package-inputs base)
1862 `(("python2-unittest2" ,python2-unittest2)))))))
1863
1864(define-public python-itsdangerous
1865 (package
1866 (name "python-itsdangerous")
1867 (version "0.24")
1868 (source
1869 (origin
1870 (method url-fetch)
1871 (uri (string-append
1872 "https://pypi.python.org/packages/source/i/itsdangerous/itsdangerous-"
1873 version ".tar.gz"))
1874 (sha256
1875 (base32
1876 "06856q6x675ly542ig0plbqcyab6ksfzijlyf1hzhgg3sgwgrcyb"))))
1877 (build-system python-build-system)
1878 (inputs
1879 `(("python-setuptools" ,python-setuptools)))
1880 (home-page "http://github.com/mitsuhiko/itsdangerous")
1881 (synopsis "Python library for passing data to/from untrusted environments")
1882 (description
1883 "Itsdangerous provides various helpers to pass trusted data to untrusted
1884environments and back.")
1885 (license bsd-3)))
1886
1887(define-public python2-itsdangerous
1888 (package-with-python2 python-itsdangerous))
1889
1890(define-public python-pyyaml
1891 (package
1892 (name "python-pyyaml")
1893 (version "3.11")
1894 (source
1895 (origin
1896 (method url-fetch)
1897 (uri (string-append
1898 "https://pypi.python.org/packages/source/P/PyYAML/PyYAML-"
1899 version ".tar.gz"))
1900 (sha256
1901 (base32
1902 "1s26125vfnskng58ym37xhwv8v0mm95b2cwbjfag8prfhy596v63"))))
1903 (build-system python-build-system)
1904 (inputs
1905 `(("libyaml" ,libyaml)))
1906 (native-inputs
1907 `(("python-setuptools" ,python-setuptools)))
1908 (home-page "http://pyyaml.org/wiki/PyYAML")
1909 (synopsis "YAML parser and emitter for Python")
1910 (description
1911 "PyYAML is a YAML parser and emitter for Python. PyYAML features a
1912complete YAML 1.1 parser, Unicode support, pickle support, capable extension
1913API, and sensible error messages. PyYAML supports standard YAML tags and
1914provides Python-specific tags that allow to represent an arbitrary Python
1915object.")
1916 (license license:expat)))
1917
1918(define-public python2-pyyaml
1919 (package-with-python2 python-pyyaml))
1920
1921(define-public python-virtualenv
1922 (package
1923 (name "python-virtualenv")
1924 (version "1.11.6")
1925 (source
1926 (origin
1927 (method url-fetch)
1928 (uri (string-append
1929 "https://pypi.python.org/packages/source/v/virtualenv/virtualenv-"
1930 version ".tar.gz"))
1931 (sha256
1932 (base32
1933 "1xq4prmg25n9cz5zcvbqx68lmc3kl39by582vd8pzs9f3qalqyiy"))))
1934 (build-system python-build-system)
1935 (inputs
1936 `(("python-setuptools" ,python-setuptools)
1937 ("python-mock" ,python-mock)
1938 ("python-nose" ,python-nose)))
1939 (home-page "https://virtualenv.pypa.io/")
1940 (synopsis "Virtual Python environment builder")
1941 (description
1942 "Virtualenv is a tool to create isolated Python environments.")
1943 (license license:expat)))
1944
1945(define-public python2-virtualenv
1946 (package-with-python2 python-virtualenv))
1947
1948(define-public python-markupsafe
1949 (package
1950 (name "python-markupsafe")
1951 (version "0.23")
1952 (source
1953 (origin
1954 (method url-fetch)
1955 (uri (string-append
1956 "https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-"
1957 version ".tar.gz"))
1958 (sha256
1959 (base32
1960 "1hvip33wva3fnmvfp9x5klqri7hpl1hkgqmjbss18nmrb7zimv54"))))
1961 (build-system python-build-system)
1962 (inputs
1963 `(("python-setuptools" ,python-setuptools)))
1964 (home-page "http://github.com/mitsuhiko/markupsafe")
1965 (synopsis "XML/HTML/XHTML markup safe string implementation for Python")
1966 (description
1967 "Markupsafe provides an XML/HTML/XHTML markup safe string implementation
1968for Python.")
1969 (license bsd-3)))
1970
1971(define-public python2-markupsafe
1972 (package-with-python2 python-markupsafe))
1973
1974(define-public python-jinja2
1975 (package
1976 (name "python-jinja2")
1977 (version "2.7.3")
1978 (source
1979 (origin
1980 (method url-fetch)
1981 (uri (string-append
1982 "https://pypi.python.org/packages/source/J/Jinja2/Jinja2-"
1983 version ".tar.gz"))
1984 (sha256
1985 (base32
1986 "1nwg9yfqgy421lncnm63k1zf9xkd1klc0jm0fr4p3dad01fsq91f"))))
1987 (build-system python-build-system)
1988 (inputs
1989 `(("python-setuptools" ,python-setuptools)
1990 ("python-markupsafe" ,python-markupsafe)))
1991 (home-page "http://jinja.pocoo.org/")
1992 (synopsis "Python template engine")
1993 (description
1994 "Jinja2 is a small but fast and easy to use stand-alone template engine
1995written in pure Python.")
1996 (license bsd-3)))
1997
1998(define-public python2-jinja2
1999 (package-with-python2 python-jinja2))
2000
2001(define-public python-docutils
2002 (package
2003 (name "python-docutils")
2004 (version "0.12")
2005 (source
2006 (origin
2007 (method url-fetch)
2008 (uri (string-append
2009 "https://pypi.python.org/packages/source/d/docutils/docutils-"
2010 version ".tar.gz"))
2011 (sha256
2012 (base32
2013 "1ylnjnw1x4b2y7blr6x35ncdzn69k253kw4cdkv6asdb21w73ny7"))))
2014 (build-system python-build-system)
2015 (inputs
2016 `(("python-setuptools" ,python-setuptools)))
2017 (arguments
2018 '(#:tests? #f)) ; no setup.py test command
2019 (home-page "http://docutils.sourceforge.net/")
2020 (synopsis "Python Documentation Utilities")
2021 (description
2022 "Docutils is a modular system for processing documentation into useful
2023formats, such as HTML, XML, and LaTeX. For input Docutils supports
2024reStructuredText.")
2025 ;; Most of the source code is public domain, but some source files are
2026 ;; licensed under the PFSL, BSD 2-clause, and GPLv3+ licenses.
2027 (license (list public-domain psfl bsd-2 gpl3+))))
2028
2029(define-public python2-docutils
2030 (package-with-python2 python-docutils))
2031
2032(define-public python-pygments
2033 (package
2034 (name "python-pygments")
2035 (version "1.6")
2036 (source
2037 (origin
2038 (method url-fetch)
2039 (uri (string-append
2040 "https://pypi.python.org/packages/source/P/Pygments/Pygments-"
2041 version ".tar.gz"))
2042 (sha256
2043 (base32
2044 "1h11r6ss8waih51vcksfvzghfxiav2f8svc0812fa5kmyz5d97kr"))))
2045 (build-system python-build-system)
2046 (inputs
2047 `(("python-setuptools" ,python-setuptools)))
2048 (home-page "http://pygments.org/")
2049 (synopsis "Syntax highlighting")
2050 (description
2051 "Pygments is a syntax highlighting package written in Python.")
2052 (license bsd-2)))
2053
2054(define-public python2-pygments
2055 (package-with-python2 python-pygments))
2056
2057(define-public python-sphinx
2058 (package
2059 (name "python-sphinx")
2060 (version "1.2.3")
2061 (source
2062 (origin
2063 (method url-fetch)
2064 (uri (string-append
2065 "https://pypi.python.org/packages/source/S/Sphinx/Sphinx-"
2066 version ".tar.gz"))
2067 (sha256
2068 (base32
2069 "011xizm3jnmf4cvs5i6kgf6c5nn046h79i8j0vd0f27yw9j3p4wl"))))
2070 (build-system python-build-system)
2071 (inputs
2072 `(("python-setuptools" ,python-setuptools)
2073 ("python-jinja2" ,python-jinja2)
2074 ("python-docutils" ,python-docutils)
2075 ("python-pygments" ,python-pygments)))
2076 (home-page "http://sphinx-doc.org/")
2077 (synopsis "Python documentation generator")
2078 (description "Sphinx is a tool that makes it easy to create documentation
2079for Python projects or other documents consisting of multiple reStructuredText
2080sources.")
2081 (license bsd-3)))
2082
2083(define-public python2-sphinx
2084 (package-with-python2 python-sphinx))
2085
2086(define-public python-sphinx-rtd-theme
2087 (package
2088 (name "python-sphinx-rtd-theme")
2089 (version "0.1.6")
2090 (source
2091 (origin
2092 (method url-fetch)
2093 (uri (string-append "https://pypi.python.org/packages/source/s/"
2094 "sphinx_rtd_theme/sphinx_rtd_theme-"
2095 version ".tar.gz"))
2096 (sha256
2097 (base32
2098 "19nw3rn7awplcdrz63kg1njqwkbymfg9lwn7l2grhdyhyr2gaa8g"))))
2099 (build-system python-build-system)
2100 (arguments
2101 `(;; With standard flags, the install phase attempts to create a zip'd
2102 ;; egg file, and fails with an error: 'ZIP does not support timestamps
2103 ;; before 1980'
2104 #:configure-flags '("--single-version-externally-managed"
2105 "--record=sphinx-rtd-theme.txt")))
2106 (native-inputs
2107 `(("python-setuptools" ,python-setuptools)))
2108 (inputs
2109 `(("python-docutils" ,python-docutils)
2110 ("python-sphinx" ,python-sphinx)))
2111 (home-page "https://github.com/snide/sphinx_rtd_theme/")
2112 (synopsis "ReadTheDocs.org theme for Sphinx")
2113 (description "A theme for Sphinx used by ReadTheDocs.org.")
2114 (license license:expat)))
2115
2116(define-public python2-sphinx-rtd-theme
2117 (package-with-python2 python-sphinx-rtd-theme))
2118
2119(define-public python-feedgenerator
2120 (package
2121 (name "python-feedgenerator")
2122 (version "20150710.97185b7")
2123 (source
2124 ;; Using the git checkout for now because license file not added till
2125 ;; https://github.com/dmdm/feedgenerator-py3k/commit/97185b7566c240c4bf5ed80db7d6c271204dab39
2126 (origin
2127 (method git-fetch)
2128 (uri (git-reference
2129 (url "https://github.com/dmdm/feedgenerator-py3k.git")
2130 (commit "97185b7566c240c4bf5ed80db7d6c271204dab39")))
2131 (sha256
2132 (base32
2133 "0dbd6apij5j1923ib905x0srgcyls4wlabqlwp4dzkwmksvnrr2a"))))
2134 (arguments
2135 `(;; With standard flags, the install phase attempts to create a zip'd
2136 ;; egg file, and fails with an error: 'ZIP does not support timestamps
2137 ;; before 1980'
2138 #:configure-flags '("--single-version-externally-managed"
2139 "--record=feedgenerator.txt")))
2140 (build-system python-build-system)
2141 (inputs
2142 `(("python-setuptools" ,python-setuptools)
2143 ("python-pytz" ,python-pytz)
2144 ("python-six" ,python-six)))
2145 (home-page
2146 "https://github.com/dmdm/feedgenerator-py3k.git")
2147 (synopsis
2148 "Standalone version of Django's Atom/RSS feed generator")
2149 (description
2150 "Feedgenerator-py3k is a standalone version of Django's feedgenerator,
2151which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
2152 (license bsd-3)))
2153
2154(define-public python2-feedgenerator
2155 (package-with-python2 python-feedgenerator))
2156
2157(define-public python-scikit-learn
2158 (package
2159 (name "python-scikit-learn")
2160 (version "0.16.1")
2161 (source
2162 (origin
2163 (method url-fetch)
2164 (uri (string-append
2165 "https://github.com/scikit-learn/scikit-learn/archive/"
2166 version ".tar.gz"))
2167 (sha256
2168 (base32
2169 "140skabifgc7lvvj873pnzlwx0ni6q8qkrsyad2ccjb3h8rxzkih"))))
2170 (build-system python-build-system)
2171 (arguments
2172 `(#:phases
2173 (alist-cons-before
2174 'check 'set-HOME
2175 ;; some tests require access to "$HOME"
2176 (lambda _ (setenv "HOME" "/tmp"))
2177 ;; Tests can only be run after the library has been installed and not
2178 ;; within the source directory.
2179 (alist-cons-after
2180 'install 'check
2181 (lambda _
2182 (with-directory-excursion "/tmp"
2183 ;; With Python 3 one test of 3334 fails
2184 ;; (sklearn.tests.test_common.test_transformers); see
2185 ;; https://github.com/scikit-learn/scikit-learn/issues/3693
2186 (system* "nosetests" "-v" "sklearn")))
2187 (alist-delete 'check %standard-phases)))))
2188 (inputs
2189 `(("openblas" ,openblas)
2190 ("python-nose" ,python-nose)))
2191 (propagated-inputs
2192 `(("python-numpy" ,python-numpy)
2193 ("python-scipy" ,python-scipy)))
2194 (home-page "http://scikit-learn.org/")
2195 (synopsis "Machine Learning in Python")
2196 (description
2197 "Scikit-learn provides simple and efficient tools for data
2198mining and data analysis.")
2199 (license bsd-3)))
2200
2201(define-public python2-scikit-learn
2202 (let ((scikit (package-with-python2 python-scikit-learn)))
2203 (package (inherit scikit)
2204 (propagated-inputs
2205 `(("python2-numpy" ,python2-numpy)
2206 ("python2-scipy" ,python2-scipy)
2207 ,@(alist-delete
2208 "python-numpy"
2209 (alist-delete
2210 "python-scipy" (package-propagated-inputs scikit))))))))
2211
2212(define-public python-scikit-image
2213 (package
2214 (name "python-scikit-image")
2215 (version "0.11.3")
2216 (source
2217 (origin
2218 (method url-fetch)
2219 (uri (string-append
2220 "https://pypi.python.org/packages/source/s/scikit-image/scikit-image-"
2221 version ".tar.gz"))
2222 (sha256
2223 (base32 "0jz416fqvpahqyffw8plmszzfj669w8wvf3y9clnr5lr6a7md3kn"))))
2224 (build-system python-build-system)
2225 (propagated-inputs
2226 `(("python-matplotlib" ,python-matplotlib)
2227 ("python-networkx" ,python-networkx)
2228 ("python-numpy" ,python-numpy)
2229 ("python-scipy" ,python-scipy)
2230 ("python-six" ,python-six)
2231 ("python-pillow" ,python-pillow)))
2232 (native-inputs
2233 `(("python-cython" ,python-cython)
2234 ("python-setuptools" ,python-setuptools)))
2235 (home-page "http://scikit-image.org/")
2236 (synopsis "Image processing in Python")
2237 (description
2238 "Scikit-image is a collection of algorithms for image processing.")
2239 (license bsd-3)))
2240
2241(define-public python2-scikit-image
2242 (let ((scikit-image (package-with-python2 python-scikit-image)))
2243 (package (inherit scikit-image)
2244 (native-inputs
2245 `(("python2-mock" ,python2-mock)
2246 ,@(package-native-inputs scikit-image)))
2247 (propagated-inputs
2248 `(("python2-pytz" ,python2-pytz)
2249 ,@(package-propagated-inputs scikit-image))))))
2250
2251(define-public python-redis
2252 (package
2253 (name "python-redis")
2254 (version "2.10.3")
2255 (source
2256 (origin
2257 (method url-fetch)
2258 (uri (string-append
2259 "https://pypi.python.org/packages/source/r/redis/redis-"
2260 version ".tar.gz"))
2261 (sha256
2262 (base32 "1701qjwn4n05q90fdg4bsg96s27xf5s4hsb4gxhv3xk052q3gyx4"))))
2263 (build-system python-build-system)
2264 ;; Tests require a running Redis server
2265 (arguments '(#:tests? #f))
2266 (native-inputs
2267 `(("python-setuptools" ,python-setuptools)
2268 ("python-pytest" ,python-pytest)))
2269 (home-page "https://github.com/andymccurdy/redis-py")
2270 (synopsis "Redis Python client")
2271 (description
2272 "This package provides a Python interface to the Redis key-value store.")
2273 (license license:expat)))
2274
2275(define-public python2-redis
2276 (package-with-python2 python-redis))
2277
2278(define-public python-rq
2279 (package
2280 (name "python-rq")
2281 (version "0.5.2")
2282 (source
2283 (origin
2284 (method url-fetch)
2285 (uri (string-append
2286 "https://pypi.python.org/packages/source/r/rq/rq-"
2287 version ".tar.gz"))
2288 (sha256
2289 (base32 "0b0z5hn8wkfg300hx7816csgv3bcfamlr29fi3yzgqmpqxwj3fix"))))
2290 (build-system python-build-system)
2291 (propagated-inputs
2292 `(("python-click" ,python-click)
2293 ("python-redis" ,python-redis)))
2294 (native-inputs
2295 `(("python-setuptools" ,python-setuptools)))
2296 (home-page "http://python-rq.org/")
2297 (synopsis "Simple job queues for Python")
2298 (description
2299 "RQ (Redis Queue) is a simple Python library for queueing jobs and
2300processing them in the background with workers. It is backed by Redis and it
2301is designed to have a low barrier to entry.")
2302 (license bsd-2)))
2303
2304(define-public python2-rq
2305 (package-with-python2 python-rq))
2306
2307(define-public python-cython
2308 (package
2309 (name "python-cython")
2310 (version "0.21.1")
2311 (source
2312 (origin
2313 (method url-fetch)
2314 (uri (string-append "http://cython.org/release/Cython-"
2315 version ".tar.gz"))
2316 (sha256
2317 (base32
2318 "0ddz2l2dvcy5hdkxx4xlfiwpccvwia7ixgcy4h0pdv46a4i4vxj3"))))
2319 (build-system python-build-system)
2320 ;; we need the full python package and not just the python-wrapper
2321 ;; because we need libpython3.3m.so
2322 (inputs
2323 `(("python" ,python)))
2324 (arguments
2325 `(#:phases
2326 (alist-cons-before
2327 'check 'set-HOME
2328 ;; some tests require access to "$HOME/.cython"
2329 (lambda* _ (setenv "HOME" "/tmp"))
2330 (alist-replace
2331 'check
2332 (lambda _ (zero? (system* "python" "runtests.py" "-vv")))
2333 %standard-phases))))
2334 (home-page "http://cython.org/")
2335 (synopsis "C extensions for Python")
2336 (description "Cython is an optimising static compiler for both the Python
2337programming language and the extended Cython programming language. It makes
2338writing C extensions for Python as easy as Python itself.")
2339 (license asl2.0)))
2340
2341(define-public python2-cython
2342 (package (inherit (package-with-python2 python-cython))
2343 (name "python2-cython")
2344 (inputs
2345 `(("python-2" ,python-2))))) ; this is not automatically changed
2346
2347;; This version of numpy is missing the documentation and is only used to
2348;; build matplotlib which is required to build numpy's documentation.
2349(define python-numpy-bootstrap
2350 (package
2351 (name "python-numpy-bootstrap")
2352 (version "1.9.1")
2353 (source
2354 (origin
2355 (method url-fetch)
2356 (uri (string-append "mirror://sourceforge/numpy"
2357 "/numpy-" version ".tar.gz"))
2358 (sha256
2359 (base32
2360 "070ybfvpgfmiz2hs94x445hvkh9dh52nyi0m8jp5kdihgvhbnx80"))))
2361 (build-system python-build-system)
2362 (inputs
2363 `(("python-nose" ,python-nose)
2364 ("openblas" ,openblas)
2365 ("lapack" ,lapack)))
2366 (native-inputs
2367 `(("gfortran" ,gfortran)))
2368 (arguments
2369 `(#:phases
2370 (alist-cons-before
2371 'build 'set-environment-variables
2372 (lambda* (#:key inputs #:allow-other-keys)
2373 (call-with-output-file "site.cfg"
2374 (lambda (port)
2375 (format port
2376 "[openblas]
2377libraries = openblas
2378library_dirs = ~a/lib
2379include_dirs = ~a/include
2380
2381[lapack]
2382lapack_libs = lapack
2383library_dirs = ~a/lib
2384include_dirs = ~a/include
2385"
2386 (assoc-ref inputs "openblas")
2387 (assoc-ref inputs "openblas")
2388 (assoc-ref inputs "lapack")
2389 (assoc-ref inputs "lapack"))))
2390 ;; Use "gcc" executable, not "cc".
2391 (substitute* "numpy/distutils/system_info.py"
2392 (("c = distutils\\.ccompiler\\.new_compiler\\(\\)")
2393 "c = distutils.ccompiler.new_compiler(); c.set_executables(compiler='gcc',compiler_so='gcc',linker_exe='gcc',linker_so='gcc -shared')"))
2394 #t)
2395 ;; Tests can only be run after the library has been installed and not
2396 ;; within the source directory.
2397 (alist-cons-after
2398 'install 'check
2399 (lambda _
2400 (with-directory-excursion "/tmp"
2401 (zero? (system* "python" "-c"
2402 "import numpy; numpy.test(verbose=2)"))))
2403 (alist-delete
2404 'check
2405 %standard-phases)))))
2406 (home-page "http://www.numpy.org/")
2407 (synopsis "Fundamental package for scientific computing with Python")
2408 (description "NumPy is the fundamental package for scientific computing
2409with Python. It contains among other things: a powerful N-dimensional array
2410object, sophisticated (broadcasting) functions, tools for integrating C/C++
2411and Fortran code, useful linear algebra, Fourier transform, and random number
2412capabilities.")
2413 (license bsd-3)))
2414
2415(define python2-numpy-bootstrap
2416 (package-with-python2 python-numpy-bootstrap))
2417
2418(define-public python2-fastlmm
2419 (package
2420 (name "python2-fastlmm")
2421 (version "0.2.14")
2422 (source
2423 (origin
2424 (method url-fetch)
2425 (uri (string-append
2426 "https://pypi.python.org/packages/source/f/fastlmm"
2427 "/fastlmm-" version ".zip"))
2428 (sha256
2429 (base32
2430 "023sydkrc3yxad2bycar02jfswwlh4199kafzhf2bssyx2c3xa0l"))))
2431 (build-system python-build-system)
2432 (arguments
2433 `(#:python ,python-2)) ; only Python 2.7 is supported
2434 (propagated-inputs
2435 `(("python2-numpy" ,python2-numpy)
2436 ("python2-scipy" ,python2-scipy)
2437 ("python2-matplotlib" ,python2-matplotlib)
2438 ("python2-pandas" ,python2-pandas)
2439 ("python2-scikit-learn" ,python2-scikit-learn)
2440 ("python2-cython" ,python2-cython)
2441 ("python2-pysnptools" ,python2-pysnptools)))
2442 (native-inputs
2443 `(("unzip" ,unzip)
2444 ("python2-mock" ,python2-mock)
2445 ("python2-setuptools" ,python2-setuptools)))
2446 (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/fastlmm/")
2447 (synopsis "Perform genome-wide association studies on large data sets")
2448 (description
2449 "FaST-LMM, which stands for Factored Spectrally Transformed Linear Mixed
2450Models, is a program for performing both single-SNP and SNP-set genome-wide
2451association studies (GWAS) on extremely large data sets.")
2452 (license asl2.0)))
2453
2454(define-public python-numpy
2455 (package (inherit python-numpy-bootstrap)
2456 (name "python-numpy")
2457 (outputs '("out" "doc"))
2458 (inputs
2459 `(("which" ,which)
2460 ("python-setuptools" ,python-setuptools)
2461 ("python-matplotlib" ,python-matplotlib)
2462 ("python-sphinx" ,python-sphinx)
2463 ("python-pyparsing" ,python-pyparsing)
2464 ("python-numpydoc" ,python-numpydoc)
2465 ,@(package-inputs python-numpy-bootstrap)))
2466 (native-inputs
2467 `(("pkg-config" ,pkg-config)
2468 ("texlive" ,texlive)
2469 ("texinfo" ,texinfo)
2470 ("perl" ,perl)
2471 ,@(package-native-inputs python-numpy-bootstrap)))
2472 (arguments
2473 `(,@(substitute-keyword-arguments
2474 (package-arguments python-numpy-bootstrap)
2475 ((#:phases phases)
2476 `(alist-cons-after
2477 'install 'install-doc
2478 (lambda* (#:key outputs #:allow-other-keys)
2479 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
2480 (doc (string-append
2481 data "/doc/" ,name "-"
2482 ,(package-version python-numpy-bootstrap)))
2483 (info (string-append data "/info"))
2484 (html (string-append doc "/html"))
2485 (pyver ,(string-append "PYVER=")))
2486 (with-directory-excursion "doc"
2487 (mkdir-p html)
2488 (system* "make" "html" pyver)
2489 (system* "make" "latex" "PAPER=a4" pyver)
2490 (system* "make" "-C" "build/latex"
2491 "all-pdf" "PAPER=a4" pyver)
2492 ;; FIXME: Generation of the info file fails.
2493 ;; (system* "make" "info" pyver)
2494 ;; (mkdir-p info)
2495 ;; (copy-file "build/texinfo/numpy.info"
2496 ;; (string-append info "/numpy.info"))
2497 (for-each (lambda (file)
2498 (copy-file (string-append "build/latex" file)
2499 (string-append doc file)))
2500 '("/numpy-ref.pdf" "/numpy-user.pdf"))
2501 (with-directory-excursion "build/html"
2502 (for-each (lambda (file)
2503 (let* ((dir (dirname file))
2504 (tgt-dir (string-append html "/" dir)))
2505 (unless (equal? "." dir)
2506 (mkdir-p tgt-dir))
2507 (copy-file file (string-append html "/" file))))
2508 (find-files "." ".*"))))))
2509 ,phases)))))))
2510
2511(define-public python2-numpy
2512 (let ((numpy (package-with-python2 python-numpy)))
2513 (package (inherit numpy)
2514 ;; Make sure we use exactly PYTHON2-MATPLOTLIB, which is customized for
2515 ;; Python 2.
2516 (inputs `(("python2-matplotlib" ,python2-matplotlib)
2517 ,@(alist-delete "python-matplotlib"
2518 (package-inputs numpy)))))))
2519
2520(define-public python-pyparsing
2521 (package
2522 (name "python-pyparsing")
2523 (version "2.0.3")
2524 (source
2525 (origin
2526 (method url-fetch)
2527 (uri (string-append "mirror://sourceforge/pyparsing"
2528 "/pyparsing-" version ".tar.gz"))
2529 (sha256
2530 (base32
2531 "0kw4py7gn45j93q8r7bzajfrjdc3xlsn2yzln41lf9zmrghjkrq6"))))
2532 (build-system python-build-system)
2533 (outputs '("out" "doc"))
2534 (arguments
2535 `(#:tests? #f ; no test target
2536 #:modules ((guix build python-build-system)
2537 (guix build utils))
2538 #:phases
2539 (alist-cons-after
2540 'install 'install-doc
2541 (lambda* (#:key outputs #:allow-other-keys)
2542 (let* ((doc (string-append (assoc-ref outputs "doc")
2543 "/share/doc/" ,name "-" ,version))
2544 (html-doc (string-append doc "/html"))
2545 (examples (string-append doc "/examples")))
2546 (mkdir-p html-doc)
2547 (mkdir-p examples)
2548 (for-each
2549 (lambda (dir tgt)
2550 (map (lambda (file)
2551 (copy-file file (string-append tgt "/" (basename file))))
2552 (find-files dir ".*")))
2553 (list "docs" "htmldoc" "examples")
2554 (list doc html-doc examples))))
2555 %standard-phases)))
2556 (home-page "http://pyparsing.wikispaces.com")
2557 (synopsis "Python parsing class library")
2558 (description
2559 "The pyparsing module is an alternative approach to creating and
2560executing simple grammars, vs. the traditional lex/yacc approach, or the use
2561of regular expressions. The pyparsing module provides a library of classes
2562that client code uses to construct the grammar directly in Python code.")
2563 (license license:expat)))
2564
2565(define-public python2-pyparsing
2566 (package-with-python2 python-pyparsing))
2567
2568(define-public python-numpydoc
2569 (package
2570 (name "python-numpydoc")
2571 (version "0.5")
2572 (source
2573 (origin
2574 (method url-fetch)
2575 (uri (string-append
2576 "https://pypi.python.org/packages/source/n/numpydoc/numpydoc-"
2577 version ".tar.gz"))
2578 (sha256
2579 (base32
2580 "0d4dnifaxkll50jx6czj05y8cb4ny60njd2wz299sj2jxfy51w4k"))
2581 (modules '((guix build utils)))
2582 (snippet
2583 '(begin
2584 ;; Drop a test requiring matplotlib, which we cannot add as an
2585 ;; input since it would create a circular dependency: Extend the
2586 ;; test for Python 3, where it is already dropped, to Python 2.
2587 (substitute* "numpydoc/tests/test_plot_directive.py"
2588 (("3") "2"))))))
2589 (build-system python-build-system)
2590 (inputs
2591 `(("python-setuptools" ,python-setuptools)
2592 ("python-docutils" ,python-docutils)
2593 ("python-sphinx" ,python-sphinx)
2594 ("python-nose" ,python-nose)))
2595 (home-page "https://pypi.python.org/pypi/numpydoc")
2596 (synopsis
2597 "Numpy's Sphinx extensions")
2598 (description
2599 "Sphinx extension to support docstrings in Numpy format.")
2600 (license bsd-2)))
2601
2602(define-public python2-numpydoc
2603 (package-with-python2 python-numpydoc))
2604
2605(define-public python-matplotlib
2606 (package
2607 (name "python-matplotlib")
2608 (version "1.4.2")
2609 (source
2610 (origin
2611 (method url-fetch)
2612 (uri (string-append "mirror://sourceforge/matplotlib"
2613 "/matplotlib-" version ".tar.gz"))
2614 (sha256
2615 (base32
2616 "0m6v9nwdldlwk22gcd339zg6mny5m301fxgks7z8sb8m9wawg8qp"))))
2617 (build-system python-build-system)
2618 (outputs '("out" "doc"))
2619 (propagated-inputs ; the following packages are all needed at run time
2620 `(("python-pyparsing" ,python-pyparsing)
2621 ("python-pygobject" ,python-pygobject)
2622 ("gobject-introspection" ,gobject-introspection)
2623 ;; The 'gtk+' package (and 'gdk-pixbuf', 'atk' and 'pango' propagated
2624 ;; from 'gtk+') provides the required 'typelib' files used by
2625 ;; 'gobject-introspection'. The location of these files is set with the
2626 ;; help of the environment variable GI_TYPELIB_PATH. At build time this
2627 ;; is done automatically by a 'native-search-path' procedure. However,
2628 ;; at run-time the user must set this variable as follows:
2629 ;;
2630 ;; export GI_TYPELIB_PATH=~/.guix-profile/lib/girepository-1.0
2631 ("gtk+" ,gtk+)
2632 ;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of
2633 ;; 'pycairo'. However, 'pygobject' makes use of a 'pycairo' 'context'
2634 ;; object. For this reason we need to import both libraries.
2635 ;; https://pythonhosted.org/cairocffi/cffi_api.html#converting-pycairo
2636 ("python-pycairo" ,python-pycairo)
2637 ("python-cairocffi" ,python-cairocffi)))
2638 (inputs
2639 `(("python-setuptools" ,python-setuptools)
2640 ("python-dateutil" ,python-dateutil-2)
2641 ("python-six" ,python-six)
2642 ("python-pytz" ,python-pytz)
2643 ("python-numpy" ,python-numpy-bootstrap)
2644 ("python-sphinx" ,python-sphinx)
2645 ("python-numpydoc" ,python-numpydoc)
2646 ("python-nose" ,python-nose)
2647 ("python-mock" ,python-mock)
2648 ("libpng" ,libpng)
2649 ("imagemagick" ,imagemagick)
2650 ("freetype" ,freetype)
2651 ("cairo" ,cairo)
2652 ("glib" ,glib)
2653 ("python-pillow" ,python-pillow)
2654 ;; FIXME: Add backends when available.
2655 ;("python-wxpython" ,python-wxpython)
2656 ;("python-pyqt" ,python-pyqt)
2657 ))
2658 (native-inputs
2659 `(("pkg-config" ,pkg-config)
2660 ("texlive" ,texlive)
2661 ("texinfo" ,texinfo)))
2662 (arguments
2663 `(#:phases
2664 (alist-cons-before
2665 'build 'configure-environment
2666 (lambda* (#:key outputs inputs #:allow-other-keys)
2667 (let ((cairo (assoc-ref inputs "cairo"))
2668 (gtk+ (assoc-ref inputs "gtk+")))
2669 ;; Setting these directories in the 'basedirlist' of 'setup.cfg'
2670 ;; has not effect.
2671 (setenv "LD_LIBRARY_PATH"
2672 (string-append cairo "/lib:" gtk+ "/lib"))
2673 (setenv "HOME" (getcwd))
2674 (call-with-output-file "setup.cfg"
2675 (lambda (port)
2676 (format port "[rc_options]~%
2677backend = GTK3Agg~%")))))
2678 (alist-cons-after
2679 'install 'install-doc
2680 (lambda* (#:key outputs #:allow-other-keys)
2681 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
2682 (doc (string-append data "/doc/" ,name "-" ,version))
2683 (info (string-append data "/info"))
2684 (html (string-append doc "/html")))
2685 (with-directory-excursion "doc"
2686 ;; Produce pdf in 'A4' format.
2687 (substitute* (find-files "." "conf\\.py")
2688 (("latex_paper_size = 'letter'")
2689 "latex_paper_size = 'a4'"))
2690 (mkdir-p html)
2691 (mkdir-p info)
2692 ;; The doc recommends to run the 'html' target twice.
2693 (system* "python" "make.py" "html")
2694 (system* "python" "make.py" "html")
2695 (system* "python" "make.py" "latex")
2696 (system* "python" "make.py" "texinfo")
2697 (copy-file "build/texinfo/matplotlib.info"
2698 (string-append info "/matplotlib.info"))
2699 (copy-file "build/latex/Matplotlib.pdf"
2700 (string-append doc "/Matplotlib.pdf"))
2701 (copy-recursively "build/html" html))))
2702 %standard-phases))))
2703 (home-page "http://matplotlib.org")
2704 (synopsis "2D plotting library for Python")
2705 (description
2706 "Matplotlib is a Python 2D plotting library which produces publication
2707quality figures in a variety of hardcopy formats and interactive environments
2708across platforms. Matplotlib can be used in Python scripts, the python and
2709ipython shell, web application servers, and six graphical user interface
2710toolkits.")
2711 (license psfl)))
2712
2713(define-public python2-matplotlib
2714 (let ((matplotlib (package-with-python2 python-matplotlib)))
2715 (package (inherit matplotlib)
2716 ;; Make sure to use special packages for Python 2 instead
2717 ;; of those automatically rewritten by package-with-python2.
2718 (propagated-inputs
2719 `(("python2-pycairo" ,python2-pycairo)
2720 ("python2-pygobject-2" ,python2-pygobject-2)
2721 ,@(alist-delete "python-pycairo"
2722 (alist-delete "python-pygobject"
2723 (package-propagated-inputs
2724 matplotlib))))))))
2725
2726(define-public python2-pysnptools
2727 (package
2728 (name "python2-pysnptools")
2729 (version "0.2.13")
2730 (source
2731 (origin
2732 (method url-fetch)
2733 (uri (string-append
2734 "https://pypi.python.org/packages/source/p/pysnptools"
2735 "/pysnptools-" version ".zip"))
2736 (sha256
2737 (base32
2738 "1rzf5qvwfvd2pp84b14pb2gdvxdk5avnj7rb41ac8gndpkr9g6ib"))))
2739 (build-system python-build-system)
2740 (arguments
2741 `(#:python ,python-2)) ; only Python 2.7 is supported
2742 (propagated-inputs
2743 `(("python2-numpy" ,python2-numpy)
2744 ("python2-scipy" ,python2-scipy)
2745 ("python2-pandas" ,python2-pandas)
2746 ("python2-cython" ,python2-cython)))
2747 (native-inputs
2748 `(("unzip" ,unzip)
2749 ("python2-setuptools" ,python2-setuptools)))
2750 (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/")
2751 (synopsis "Library for reading and manipulating genetic data")
2752 (description
2753 "PySnpTools is a library for reading and manipulating genetic data. It
2754can, for example, efficiently read whole PLINK *.bed/bim/fam files or parts of
2755those files. It can also efficiently manipulate ranges of integers using set
2756operators such as union, intersection, and difference.")
2757 (license asl2.0)))
2758
2759(define-public python-rpy2
2760 (package
2761 (name "python-rpy2")
2762 (version "2.6.0")
2763 (source
2764 (origin
2765 (method url-fetch)
2766 (uri (string-append "https://pypi.python.org/packages/source/r/rpy2"
2767 "/rpy2-" version ".tar.gz"))
2768 (sha256
2769 (base32
2770 "1dp4l8hpv0jpf4crz4wis6in3lvwk86cr5zvpw410y4a07rrbqjk"))))
2771 (build-system python-build-system)
2772 (inputs
2773 `(("python-six" ,python-six)
2774 ("readline" ,readline)
2775 ("icu4c" ,icu4c)
2776 ("pcre" ,pcre)
2777 ("r" ,r)))
2778 (native-inputs
2779 `(("python-setuptools" ,python-setuptools)))
2780 (home-page "http://rpy.sourceforge.net/")
2781 (synopsis "Python interface to the R language")
2782 (description "rpy2 is a redesign and rewrite of rpy. It is providing a
2783low-level interface to R from Python, a proposed high-level interface,
2784including wrappers to graphical libraries, as well as R-like structures and
2785functions.")
2786 (license gpl3+)))
2787
2788(define-public python2-rpy2
2789 (let ((rpy2 (package-with-python2 python-rpy2)))
2790 (package (inherit rpy2)
2791 (native-inputs
2792 `(("python2-singledispatch" ,python2-singledispatch)
2793 ,@(package-native-inputs rpy2))))))
2794
2795(define-public python-scipy
2796 (package
2797 (name "python-scipy")
2798 (version "0.15.0")
2799 (source
2800 (origin
2801 (method url-fetch)
2802 (uri (string-append "mirror://sourceforge/scipy"
2803 "/scipy-" version ".tar.xz"))
2804 (sha256
2805 (base32
2806 "0fsqi05s035d7p6s8h3h2pvk1axias16chy17rw9l1bxvrfhmncf"))))
2807 (build-system python-build-system)
2808 (inputs
2809 `(("python-numpy" ,python-numpy)
2810 ("python-matplotlib" ,python-matplotlib)
2811 ("python-pyparsing" ,python-pyparsing)
2812 ("python-nose" ,python-nose)
2813 ("python-sphinx" ,python-sphinx)
2814 ("lapack" ,lapack)
2815 ("openblas" ,openblas)))
2816 (native-inputs
2817 `(("gfortran" ,gfortran)
2818 ("texlive" ,texlive)
2819 ("perl" ,perl)))
2820 (outputs '("out" "doc"))
2821 (arguments
2822 `(#:phases
2823 (alist-cons-before
2824 'build 'configure-openblas
2825 (lambda* (#:key inputs #:allow-other-keys)
2826 (call-with-output-file "site.cfg"
2827 (lambda (port)
2828 (format port
2829 "[blas]
2830libraries = openblas
2831library_dirs = ~a/lib
2832include_dirs = ~a/include
2833[atlas]
2834library_dirs = ~a/lib
2835atlas_libs = openblas
2836"
2837 (assoc-ref inputs "openblas")
2838 (assoc-ref inputs "openblas")
2839 (assoc-ref inputs "openblas"))))
2840 #t)
2841 (alist-cons-after
2842 'install 'install-doc
2843 (lambda* (#:key outputs #:allow-other-keys)
2844 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
2845 (doc (string-append data "/doc/" ,name "-" ,version))
2846 (html (string-append doc "/html"))
2847 (pyver ,(string-append "PYVER=")))
2848 (with-directory-excursion "doc"
2849 ;; Fix generation of images for mathematical expressions.
2850 (substitute* (find-files "source" "conf\\.py")
2851 (("pngmath_use_preview = True")
2852 "pngmath_use_preview = False"))
2853 (mkdir-p html)
2854 (system* "make" "html" pyver)
2855 (system* "make" "latex" "PAPER=a4" pyver)
2856 (system* "make" "-C" "build/latex" "all-pdf" "PAPER=a4" pyver)
2857 (copy-file "build/latex/scipy-ref.pdf"
2858 (string-append doc "/scipy-ref.pdf"))
2859 (with-directory-excursion "build/html"
2860 (for-each (lambda (file)
2861 (let* ((dir (dirname file))
2862 (tgt-dir (string-append html "/" dir)))
2863 (unless (equal? "." dir)
2864 (mkdir-p tgt-dir))
2865 (copy-file file (string-append html "/" file))))
2866 (find-files "." ".*"))))))
2867 ;; Tests can only be run after the library has been installed and not
2868 ;; within the source directory.
2869 (alist-cons-after
2870 'install 'check
2871 (lambda _
2872 (with-directory-excursion "/tmp"
2873 (zero? (system* "python" "-c" "import scipy; scipy.test()"))))
2874 (alist-delete
2875 'check
2876 %standard-phases))))))
2877 (home-page "http://www.scipy.org/")
2878 (synopsis "The Scipy library provides efficient numerical routines")
2879 (description "The SciPy library is one of the core packages that make up
2880the SciPy stack. It provides many user-friendly and efficient numerical
2881routines such as routines for numerical integration and optimization.")
2882 (license bsd-3)))
2883
2884(define-public python2-scipy
2885 (let ((scipy (package-with-python2 python-scipy)))
2886 (package (inherit scipy)
2887 ;; Use packages customized for python-2.
2888 (inputs `(("python2-matplotlib" ,python2-matplotlib)
2889 ("python2-numpy" ,python2-numpy)
2890 ,@(alist-delete "python-matplotlib"
2891 (alist-delete "python-numpy"
2892 (package-inputs scipy))))))))
2893
2894(define-public python-sqlalchemy
2895 (package
2896 (name "python-sqlalchemy")
2897 (version "0.9.7")
2898 (source
2899 (origin
2900 (method url-fetch)
2901 (uri (string-append "https://pypi.python.org/packages/source/S/"
2902 "SQLAlchemy/SQLAlchemy-" version ".tar.gz"))
2903 (sha256
2904 (base32
2905 "059ayifj5l08v6vv56anhyibyllscn10dlzr2fcw68gz1hfjdzsz"))))
2906 (build-system python-build-system)
2907 (native-inputs
2908 `(("python-cython" ,python-cython) ;for c extensions
2909 ("python-pytest" ,python-pytest)
2910 ("python-mock" ,python-mock))) ;for tests
2911 (arguments
2912 `(#:phases (alist-replace
2913 'check
2914 (lambda _ (zero? (system* "py.test")))
2915 %standard-phases)))
2916 (home-page "http://www.sqlalchemy.org")
2917 (synopsis "Database abstraction library")
2918 (description
2919 "SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that
2920gives application developers the full power and flexibility of SQL. It
2921provides a full suite of well known enterprise-level persistence patterns,
2922designed for efficient and high-performing database access, adapted into a
2923simple and Pythonic domain language.")
2924 (license x11)))
2925
2926(define-public python2-sqlalchemy
2927 (package-with-python2 python-sqlalchemy))
2928
2929(define-public python-distutils-extra
2930 (package
2931 (name "python-distutils-extra")
2932 (version "2.38")
2933 (source
2934 (origin
2935 (method url-fetch)
2936 (uri (string-append "https://launchpad.net/python-distutils-extra/trunk/"
2937 version "/+download/python-distutils-extra-"
2938 version ".tar.gz"))
2939 (sha256
2940 (base32
2941 "0lx15kcbby9zisx33p2h5hgakgwh2bvh0ibag8z0px4j6ifhs41x"))))
2942 (build-system python-build-system)
2943 (native-inputs
2944 `(("python-setuptools" ,python-setuptools)))
2945 (home-page "https://launchpad.net/python-distutils-extra/")
2946 (synopsis "Enhancements to Python's distutils")
2947 (description
2948 "The python-distutils-extra module enables you to easily integrate
2949gettext support, themed icons, and scrollkeeper-based documentation into
2950Python's distutils.")
2951 (license gpl2)))
2952
2953(define-public python2-distutils-extra
2954 (package-with-python2 python-distutils-extra))
2955
2956(define-public python2-elib.intl
2957 (package
2958 (name "python2-elib.intl")
2959 (version "0.0.3")
2960 (source
2961 (origin
2962 ;; This project doesn't tag releases or publish tarballs, so we take
2963 ;; source from a (semi-arbitrary, i.e. latest as of now) git commit.
2964 (method git-fetch)
2965 (uri (git-reference
2966 (url "https://github.com/dieterv/elib.intl.git")
2967 (commit "d09997cfef")))
2968 (sha256
2969 (base32
2970 "0y7vzff9xgbnaay7m0va1arl6g68ncwrvbgwl7jqlclsahzzb09d"))))
2971 (build-system python-build-system)
2972 (native-inputs
2973 `(("python2-setuptools" ,python2-setuptools)))
2974 (arguments
2975 ;; incompatible with Python 3 (exception syntax)
2976 `(#:python ,python-2
2977 #:tests? #f
2978 ;; With standard flags, the install phase attempts to create a zip'd
2979 ;; egg file, and fails with an error: 'ZIP does not support timestamps
2980 ;; before 1980'
2981 #:configure-flags '("--single-version-externally-managed"
2982 "--record=elib.txt")))
2983 (home-page "https://github.com/dieterv/elib.intl")
2984 (synopsis "Enhanced internationalization for Python")
2985 (description
2986 "The elib.intl module provides enhanced internationalization (I18N)
2987services for your Python modules and applications.")
2988 (license lgpl3+)))
2989
2990(define-public python-pillow
2991 (package
2992 (name "python-pillow")
2993 (version "2.8.1")
2994 (source
2995 (origin
2996 (method url-fetch)
2997 (uri (string-append "https://pypi.python.org/packages/source/P/"
2998 "Pillow/Pillow-" version ".tar.gz"))
2999 (sha256
3000 (base32
3001 "15n92axxph2s3kvg68bki9gv3nzwgq7130kp7wbblpi1l0cc2q47"))))
3002 (build-system python-build-system)
3003 (native-inputs
3004 `(("python-setuptools" ,python-setuptools)
3005 ("python-nose" ,python-nose)))
3006 (inputs
3007 `(("freetype" ,freetype)
3008 ("lcms" ,lcms)
3009 ("zlib" ,zlib)
3010 ("libjpeg" ,libjpeg)
3011 ("openjpeg" ,openjpeg)
3012 ("libtiff" ,libtiff)
3013 ("libwebp" ,libwebp)))
3014 (propagated-inputs
3015 `(;; Used at runtime for pkg_resources
3016 ("python-setuptools" ,python-setuptools)))
3017 (arguments
3018 `(#:phases (modify-phases %standard-phases
3019 (add-before
3020 'install 'disable-egg-compression
3021 (lambda _
3022 ;; Leave the .egg uncompressed since compressing it would
3023 ;; prevent the GC from identifying run-time dependencies.
3024 ;; See <http://bugs.gnu.org/20765>.
3025 (let ((port (open-file "setup.cfg" "a")))
3026 (display "\n[easy_install]\nzip_ok = 0\n"
3027 port)
3028 (close-port port)
3029 #t)))
3030 (add-after
3031 'install 'check-installed
3032 (lambda _
3033 (begin
3034 (setenv "HOME" (getcwd))
3035 (and (zero? (system* "python" "selftest.py"
3036 "--installed"))
3037 (zero? (system* "python" "test-installed.py"))))))
3038 (delete 'check))))
3039 (home-page "https://pypi.python.org/pypi/Pillow")
3040 (synopsis "Fork of the Python Imaging Library")
3041 (description
3042 "The Python Imaging Library adds image processing capabilities to your
3043Python interpreter. This library provides extensive file format support, an
3044efficient internal representation, and fairly powerful image processing
3045capabilities. The core image library is designed for fast access to data
3046stored in a few basic pixel formats. It should provide a solid foundation for
3047a general image processing tool.")
3048 (license (x11-style
3049 "http://www.pythonware.com/products/pil/license.htm"
3050 "The PIL Software License"))))
3051
3052(define-public python2-pillow
3053 (package-with-python2 python-pillow))
3054
3055(define-public python-pycparser
3056 (package
3057 (name "python-pycparser")
3058 (version "2.10")
3059 (source
3060 (origin
3061 (method url-fetch)
3062 (uri (string-append "https://pypi.python.org/packages/source/p/"
3063 "pycparser/pycparser-" version ".tar.gz"))
3064 (sha256
3065 (base32
3066 "0v5qfq03yvd1pi0dwlgfai0p3dh9bq94pydn19c4pdn0c6v9hzcm"))))
3067 (outputs '("out" "doc"))
3068 (build-system python-build-system)
3069 (native-inputs
3070 `(("pkg-config" ,pkg-config)
3071 ("python-setuptools" ,python-setuptools)))
3072 (arguments
3073 `(#:phases
3074 (alist-replace
3075 'check
3076 (lambda _
3077 (with-directory-excursion "tests"
3078 (zero? (system* "python" "all_tests.py"))))
3079 (alist-cons-after
3080 'install 'install-doc
3081 (lambda* (#:key outputs #:allow-other-keys)
3082 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3083 (doc (string-append data "/doc/" ,name "-" ,version))
3084 (examples (string-append doc "/examples")))
3085 (mkdir-p examples)
3086 (for-each (lambda (file)
3087 (copy-file (string-append "." file)
3088 (string-append doc file)))
3089 '("/README.rst" "/CHANGES" "/LICENSE"))
3090 (copy-recursively "examples" examples)))
3091 %standard-phases))))
3092 (home-page "https://github.com/eliben/pycparser")
3093 (synopsis "C parser in Python")
3094 (description
3095 "Pycparser is a complete parser of the C language, written in pure Python
3096using the PLY parsing library. It parses C code into an AST and can serve as
3097a front-end for C compilers or analysis tools.")
3098 (license bsd-3)))
3099
3100(define-public python2-pycparser
3101 (package-with-python2 python-pycparser))
3102
3103(define-public python-cffi
3104 (package
3105 (name "python-cffi")
3106 (version "0.8.6")
3107 (source
3108 (origin
3109 (method url-fetch)
3110 (uri (string-append "https://pypi.python.org/packages/source/c/"
3111 "cffi/cffi-" version ".tar.gz"))
3112 (sha256
3113 (base32 "0406j3sgndmx88idv5zxkkrwfqxmjl18pj8gf47nsg4ymzixjci5"))))
3114 (build-system python-build-system)
3115 (outputs '("out" "doc"))
3116 (inputs
3117 `(("libffi" ,libffi)))
3118 (propagated-inputs ; required at run-time
3119 `(("python-pycparser" ,python-pycparser)))
3120 (native-inputs
3121 `(("pkg-config" ,pkg-config)
3122 ("python-sphinx" ,python-sphinx)
3123 ("python-setuptools" ,python-setuptools)))
3124 (arguments
3125 `(#:tests? #f ; FIXME: requires pytest
3126 #:phases
3127 (alist-cons-after
3128 'install 'install-doc
3129 (lambda* (#:key outputs #:allow-other-keys)
3130 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3131 (doc (string-append data "/doc/" ,name "-" ,version))
3132 (html (string-append doc "/html")))
3133 (with-directory-excursion "doc"
3134 (system* "make" "html")
3135 (mkdir-p html)
3136 (copy-recursively "build/html" html))
3137 (copy-file "LICENSE" (string-append doc "/LICENSE"))))
3138 %standard-phases)))
3139 (home-page "http://cffi.readthedocs.org")
3140 (synopsis "Foreign function interface for Python")
3141 (description
3142 "Foreign Function Interface for Python calling C code.")
3143 (license license:expat)))
3144
3145(define-public python2-cffi
3146 (package-with-python2 python-cffi))
3147
3148(define-public python-xcffib
3149 (package
3150 (name "python-xcffib")
3151 (version "0.1.9")
3152 (source
3153 (origin
3154 (method url-fetch)
3155 (uri (string-append "https://pypi.python.org/packages/source/x/"
3156 "xcffib/xcffib-" version ".tar.gz"))
3157 (sha256
3158 (base32
3159 "0655hzxv57h1a9ja9kwp0ichbkhf3djw32k33d66xp0q37dq2y81"))))
3160 (build-system python-build-system)
3161 (inputs
3162 `(("libxcb" ,libxcb)
3163 ("python-six" ,python-six)))
3164 (native-inputs
3165 `(("python-setuptools" ,python-setuptools)))
3166 (propagated-inputs
3167 `(("python-cffi" ,python-cffi))) ; used at run time
3168 (arguments
3169 `(#:phases
3170 (alist-cons-after
3171 'install 'install-doc
3172 (lambda* (#:key outputs #:allow-other-keys)
3173 (let ((doc (string-append (assoc-ref outputs "out") "/share"
3174 "/doc/" ,name "-" ,version)))
3175 (mkdir-p doc)
3176 (copy-file "README.md"
3177 (string-append doc "/README.md"))))
3178 %standard-phases)))
3179 (home-page "https://github.com/tych0/xcffib")
3180 (synopsis "XCB Python bindings")
3181 (description
3182 "Xcffib is a replacement for xpyb, an XCB Python bindings. It adds
3183support for Python 3 and PyPy. It is based on cffi.")
3184 (license license:expat)))
3185
3186(define-public python2-xcffib
3187 (package-with-python2 python-xcffib))
3188
3189(define-public python-cairocffi
3190 (package
3191 (name "python-cairocffi")
3192 (version "0.6")
3193 (source
3194 (origin
3195 (method url-fetch)
3196 ;; The archive on pypi is missing the 'utils' directory!
3197 (uri (string-append "https://github.com/SimonSapin/cairocffi/archive/v"
3198 version ".tar.gz"))
3199 (file-name (string-append name "-" version ".tar.gz"))
3200 (sha256
3201 (base32
3202 "03w5p62sp3nqiccx864sbq0jvh7946277jqx3rcc3dch5xwfvv51"))))
3203 (build-system python-build-system)
3204 (outputs '("out" "doc"))
3205 (inputs
3206 `(("gdk-pixbuf" ,gdk-pixbuf)
3207 ("cairo" ,cairo)))
3208 (native-inputs
3209 `(("pkg-config" ,pkg-config)
3210 ("python-sphinx" ,python-sphinx)
3211 ("python-docutils" ,python-docutils)
3212 ("python-setuptools" ,python-setuptools)))
3213 (propagated-inputs
3214 `(("python-xcffib" ,python-xcffib))) ; used at run time
3215 (arguments
3216 `(#:phases
3217 (alist-cons-after
3218 'install 'install-doc
3219 (lambda* (#:key inputs outputs #:allow-other-keys)
3220 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3221 (doc (string-append data "/doc/" ,name "-" ,version))
3222 (html (string-append doc "/html")))
3223 (setenv "LD_LIBRARY_PATH"
3224 (string-append (assoc-ref inputs "cairo") "/lib" ":"
3225 (assoc-ref inputs "gdk-pixbuf") "/lib"))
3226 (setenv "LANG" "en_US.UTF-8")
3227 (mkdir-p html)
3228 (for-each (lambda (file)
3229 (copy-file (string-append "." file)
3230 (string-append doc file)))
3231 '("/README.rst" "/CHANGES" "/LICENSE"))
3232 (system* "python" "setup.py" "build_sphinx")
3233 (copy-recursively "docs/_build/html" html)))
3234 %standard-phases)))
3235 (home-page "https://github.com/SimonSapin/cairocffi")
3236 (synopsis "Python bindings and object-oriented API for Cairo")
3237 (description
3238 "Cairocffi is a CFFI-based drop-in replacement for Pycairo, a set of
3239Python bindings and object-oriented API for cairo. Cairo is a 2D vector
3240graphics library with support for multiple backends including image buffers,
3241PNG, PostScript, PDF, and SVG file output.")
3242 (license bsd-3)))
3243
3244(define-public python2-cairocffi
3245 (package-with-python2 python-cairocffi))
3246
3247(define-public python-decorator
3248 (package
3249 (name "python-decorator")
3250 (version "3.4.2")
3251 (source
3252 (origin
3253 (method url-fetch)
3254 (uri (string-append
3255 "https://pypi.python.org/packages/source/d/decorator/decorator-"
3256 version ".tar.gz"))
3257 (sha256
3258 (base32 "0i2bnlkh0p9gs76hb28mafandcrig2fmv56w9ai6mshxwqn0083k"))))
3259 (build-system python-build-system)
3260 (arguments '(#:tests? #f)) ; no test target
3261 (native-inputs
3262 `(("python-setuptools" ,python-setuptools)))
3263 (home-page "http://pypi.python.org/pypi/decorator/")
3264 (synopsis "Python module to simplify usage of decorators")
3265 (description
3266 "The aim of the decorator module is to simplify the usage of decorators
3267for the average programmer, and to popularize decorators usage giving examples
3268of useful decorators, such as memoize, tracing, redirecting_stdout, locked,
3269etc. The core of this module is a decorator factory.")
3270 (license license:expat)))
3271
3272(define-public python2-decorator
3273 (package-with-python2 python-decorator))
3274
3275(define-public python-drmaa
3276 (package
3277 (name "python-drmaa")
3278 (version "0.7.6")
3279 (source
3280 (origin
3281 (method url-fetch)
3282 (uri (string-append
3283 "https://pypi.python.org/packages/source/d/drmaa/drmaa-"
3284 version ".tar.gz"))
3285 (sha256
3286 (base32 "0bzl9f9g34dlhwf09i3fdv7dqqzf2iq0w7d6c2bafx1nlap8qfbh"))))
3287 (build-system python-build-system)
3288 ;; The test suite requires libdrmaa which is provided by the cluster
3289 ;; environment. At runtime the environment variable DRMAA_LIBRARY_PATH
3290 ;; should be set to the path of the libdrmaa library.
3291 (arguments '(#:tests? #f))
3292 (native-inputs
3293 `(("python-nose" ,python-nose)
3294 ("python-setuptools" ,python-setuptools)))
3295 (home-page "https://pypi.python.org/pypi/drmaa")
3296 (synopsis "Python bindings for the DRMAA library")
3297 (description
3298 "A Python package for Distributed Resource Management (DRM) job
3299submission and control. This package is an implementation of the DRMAA 1.0
3300Python language binding specification.")
3301 (license bsd-3)))
3302
3303(define-public python2-drmaa
3304 (package-with-python2 python-drmaa))
3305
3306(define-public python-gridmap
3307 (package
3308 (name "python-gridmap")
3309 (version "0.13.0")
3310 (source
3311 (origin
3312 (method url-fetch)
3313 (uri (string-append
3314 "https://github.com/pygridtools/gridmap/archive/v"
3315 version ".tar.gz"))
3316 (file-name (string-append name "-" version ".tar.gz"))
3317 (sha256
3318 (base32 "1gzjg2k6f14i1msm2b0ax8d9ds1hvk6qd5nlaivg8m4cxqp4cp1x"))))
3319 (build-system python-build-system)
3320 (inputs
3321 `(("python-psutil" ,python-psutil)
3322 ("python-drmaa" ,python-drmaa)
3323 ("python-pyzmq" ,python-pyzmq)))
3324 (native-inputs
3325 `(("python-setuptools" ,python-setuptools)))
3326 (home-page "https://github.com/pygridtools/gridmap")
3327 (synopsis "Create jobs on a cluster directly from Python")
3328 (description
3329 "Gridmap is a Python package to allow you to easily create jobs on the
3330cluster directly from Python. You can directly map Python functions onto the
3331cluster without needing to write any wrapper code yourself.")
3332 (license gpl3+)))
3333
3334(define-public python2-gridmap
3335 (package-with-python2 python-gridmap))
3336
3337(define-public python-ipython
3338 (package
3339 (name "python-ipython")
3340 (version "2.3.1")
3341 (source
3342 (origin
3343 (method url-fetch)
3344 (uri (string-append "https://pypi.python.org/packages/source/i/"
3345 "ipython/ipython-" version ".tar.gz"))
3346 (sha256
3347 (base32 "1764gi5m3ff481rjk336cw6i2h4zlc0nxam9rc5m8m7yl9m4d61y"))))
3348 (build-system python-build-system)
3349 (outputs '("out" "doc"))
3350 ;; FIXME: add optional dependencies when available: pyzmq, tornado, ...
3351 (inputs
3352 `(("readline" ,readline)
3353 ("python-matplotlib" ,python-matplotlib)
3354 ("python-numpy" ,python-numpy-bootstrap)
3355 ("python-numpydoc" ,python-numpydoc)
3356 ("python-nose" ,python-nose)))
3357 (native-inputs
3358 `(("pkg-config" ,pkg-config)
3359 ("python-sphinx" ,python-sphinx)
3360 ("texlive" ,texlive)
3361 ("texinfo" ,texinfo)
3362 ("python-setuptools" ,python-setuptools)))
3363 (arguments
3364 `(#:phases
3365 (alist-cons-after
3366 'install 'install-doc
3367 (lambda* (#:key inputs outputs #:allow-other-keys)
3368 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
3369 (doc (string-append data "/doc/" ,name "-" ,version))
3370 (html (string-append doc "/html"))
3371 (man1 (string-append data "/man/man1"))
3372 (info (string-append data "/info"))
3373 (examples (string-append doc "/examples")))
3374 (setenv "LANG" "en_US.UTF-8")
3375 (with-directory-excursion "docs"
3376 ;; FIXME: html and pdf fail to build without optional pyzmq
3377 ;(system* "make" "html")
3378 ;(system* "make" "pdf" "PAPER=a4")
3379 (system* "make" "info"))
3380 (copy-recursively "docs/man" man1)
3381 (copy-recursively "examples" examples)
3382 ;; (copy-recursively "docs/build/html" html)
3383 ;; (copy-file "docs/build/latex/ipython.pdf"
3384 ;; (string-append doc "/ipython.pdf"))
3385 (mkdir-p info)
3386 (copy-file "docs/build/texinfo/ipython.info"
3387 (string-append info "/ipython.info"))
3388 (copy-file "COPYING.rst" (string-append doc "/COPYING.rst"))))
3389 ;; Tests can only be run after the library has been installed and not
3390 ;; within the source directory.
3391 (alist-cons-after
3392 'install 'check
3393 (lambda* (#:key outputs #:allow-other-keys)
3394 ;; The test procedure appears to miss the fact that some optional
3395 ;; dependencies are missing.
3396 ;; (with-directory-excursion "/tmp"
3397 ;; (zero? (system* (string-append (assoc-ref outputs "out")
3398 ;; "/bin/iptest"))))
3399 #t)
3400 (alist-delete
3401 'check
3402 %standard-phases)))))
3403 (home-page "http://ipython.org")
3404 (synopsis "IPython is a tool for interactive computing in Python")
3405 (description
3406 "IPython provides a rich architecture for interactive computing with:
3407Powerful interactive shells, a browser-based notebook, support for interactive
3408data visualization, embeddable interpreters and tools for parallel
3409computing.")
3410 (license bsd-3)))
3411
3412(define-public python2-ipython
3413 (let ((ipython (package-with-python2 python-ipython)))
3414 (package (inherit ipython)
3415 ;; Make sure we use custom python2-NAME packages.
3416 (inputs
3417 `(("python2-matplotlib" ,python2-matplotlib)
3418 ,@(alist-delete "python-matplotlib"
3419 (package-inputs ipython)))))))
3420
3421(define-public python-isodate
3422 (package
3423 (name "python-isodate")
3424 (version "0.5.1")
3425 (source
3426 (origin
3427 (method url-fetch)
3428 (uri (string-append
3429 "https://pypi.python.org/packages/source/i/isodate/isodate-"
3430 version
3431 ".tar.gz"))
3432 (sha256
3433 (base32
3434 "1yqjn0is0p64cmk9xhq4hc6q06jk86d60kg2jws58d78q0qysami"))))
3435 (build-system python-build-system)
3436 (inputs
3437 `(("python-setuptools" ,python-setuptools)))
3438 (home-page
3439 "http://cheeseshop.python.org/pypi/isodate")
3440 (synopsis
3441 "Python date parser and formatter")
3442 (description
3443 "Python-isodate is a python module for parsing and formatting
3444ISO 8601 dates, time and duration.")
3445 (license bsd-3)))
3446
3447(define-public python2-isodate
3448 (package-with-python2 python-isodate))
3449
3450(define-public python-html5lib
3451 (package
3452 (name "python-html5lib")
3453 (version "1.0b3")
3454 (source
3455 (origin
3456 (method url-fetch)
3457 (uri (string-append
3458 "https://pypi.python.org/packages/source/h/html5lib/html5lib-"
3459 version
3460 ".tar.gz"))
3461 (sha256
3462 (base32
3463 "1l5i6xzckzx4hnh9qzv9q3kyhkgjx2hsi2k9srgci3qizjmvp6ln"))))
3464 (build-system python-build-system)
3465 (propagated-inputs
3466 `(("python-six" ,python-six))) ; required to "import html5lib"
3467 (inputs
3468 `(("python-setuptools" ,python-setuptools)))
3469 (arguments
3470 `(#:test-target "check"))
3471 (home-page
3472 "https://github.com/html5lib/html5lib-python")
3473 (synopsis
3474 "Python HTML parser based on the WHATWG HTML specifcation")
3475 (description
3476 "Html5lib is an HTML parser based on the WHATWG HTML specifcation
3477and written in Python.")
3478 (license license:expat)))
3479
3480(define-public python2-html5lib
3481 (package-with-python2 python-html5lib))
3482
3483(define-public python-urwid
3484 (package
3485 (name "python-urwid")
3486 (version "1.3.0")
3487 (source
3488 (origin
3489 (method url-fetch)
3490 (uri (string-append
3491 "https://pypi.python.org/packages/source/u/urwid/urwid-"
3492 version ".tar.gz"))
3493 (sha256
3494 (base32
3495 "18mb0yy94sjc434rd61m2sfnw27sa0nyrszpj5a9r9zh7fnlzw19"))))
3496 (build-system python-build-system)
3497 (native-inputs `(("python-setuptools" ,python-setuptools)))
3498 (home-page "http://urwid.org")
3499 (synopsis "Console user interface library for Python")
3500 (description
3501 "Urwid is a curses-based UI/widget library for Python. It includes many
3502features useful for text console applications.")
3503 (license lgpl2.1+)))
3504
3505(define-public python2-urwid
3506 (package-with-python2 python-urwid))
3507
3508(define-public python-dbus
3509 (package
3510 (name "python-dbus")
3511 (version "1.2.0")
3512 (source
3513 (origin
3514 (method url-fetch)
3515 (uri (string-append
3516 "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-"
3517 version ".tar.gz"))
3518 (sha256
3519 (base32 "1py62qir966lvdkngg0v8k1khsqxwk5m4s8nflpk1agk5f5nqb71"))))
3520 (build-system gnu-build-system)
3521 (native-inputs
3522 `(("pkg-config" ,pkg-config)))
3523 (inputs
3524 `(("python" ,python)
3525 ("dbus-glib" ,dbus-glib)))
3526 (synopsis "Python bindings for D-bus")
3527 (description "python-dbus provides bindings for libdbus, the reference
3528implementation of D-Bus.")
3529 (home-page "http://www.freedesktop.org/wiki/Software/DBusBindings/")
3530 (license license:expat)))
3531
3532(define-public python2-dbus
3533 (package (inherit python-dbus)
3534 (name "python2-dbus")
3535 (inputs `(("python" ,python-2)
3536 ,@(alist-delete "python"
3537 (package-inputs python-dbus)
3538 equal?)))
3539 ;; FIXME: on Python 2, the test_utf8 fails with:
3540 ;; "ValueError: unichr() arg not in range(0x10000) (narrow Python build)"
3541 (arguments `(#:tests? #f))))
3542
3543(define-public python-apsw
3544 (package
3545 (name "python-apsw")
3546 (version "3.8.7.3-r1")
3547 (source
3548 (origin
3549 (method url-fetch)
3550 (uri (string-append
3551 "https://pypi.python.org/packages/source/a/apsw/apsw-"
3552 version
3553 ".tar.gz"))
3554 (sha256
3555 (base32
3556 "1rgxdypg7hym0qny15rx5khrghx9fkppfgsfa2s8lg917924mv7l"))))
3557 (build-system python-build-system)
3558 (inputs
3559 `(("python-setuptools" ,python-setuptools)
3560 ("sqlite" ,sqlite)))
3561 (arguments
3562 `(#:phases
3563 ;; swap check and install phases
3564 (alist-cons-after
3565 'install 'check
3566 (assoc-ref %standard-phases 'check)
3567 (alist-delete
3568 'check
3569 %standard-phases))))
3570 (home-page "https://github.com/rogerbinns/apsw/")
3571 (synopsis "Another Python SQLite Wrapper")
3572 (description "APSW is a Python wrapper for the SQLite
3573embedded relational database engine. In contrast to other wrappers such as
3574pysqlite it focuses on being a minimal layer over SQLite attempting just to
3575translate the complete SQLite API into Python.")
3576 (license license:zlib)))
3577
3578(define-public python2-apsw
3579 (package-with-python2 python-apsw))
3580
3581(define-public python-lxml
3582 (package
3583 (name "python-lxml")
3584 (version "3.4.2")
3585 (source
3586 (origin
3587 (method url-fetch)
3588 (uri (string-append
3589 "https://pypi.python.org/packages/source/l/lxml/lxml-"
3590 version
3591 ".tar.gz"))
3592 (sha256
3593 (base32
3594 "0pd23qz8vms1mgm41p96h4vac5y91igs4wr9640gnvxgk019kmf7"))))
3595 (build-system python-build-system)
3596 (inputs
3597 `(("libxml2" ,libxml2)
3598 ("libxslt" ,libxslt)
3599 ("python-setuptools" ,python-setuptools)))
3600 (home-page "http://lxml.de/")
3601 (synopsis
3602 "Python XML processing library")
3603 (description
3604 "The lxml XML toolkit is a Pythonic binding for the C libraries
3605libxml2 and libxslt.")
3606 (license bsd-3))) ; and a few more, see LICENSES.txt
3607
3608(define-public python2-lxml
3609 (package-with-python2 python-lxml))
3610
3611(define-public python2-pil
3612 (package
3613 (name "python2-pil")
3614 (version "1.1.7")
3615 (source
3616 (origin
3617 (method url-fetch)
3618 (uri (string-append
3619 "http://effbot.org/downloads/Imaging-"
3620 version ".tar.gz"))
3621 (sha256
3622 (base32
3623 "04aj80jhfbmxqzvmq40zfi4z3cw6vi01m3wkk6diz3lc971cfnw9"))
3624 (modules '((guix build utils)))
3625 (snippet
3626 ;; Adapt to newer freetype. As the package is unmaintained upstream,
3627 ;; there is no use in creating a patch and reporting it.
3628 '(substitute* "_imagingft.c"
3629 (("freetype/")
3630 "freetype2/")))))
3631 (build-system python-build-system)
3632 (inputs
3633 `(("freetype" ,freetype)
3634 ("libjpeg" ,libjpeg)
3635 ("libtiff" ,libtiff)
3636 ("python-setuptools" ,python-setuptools)
3637 ("zlib" ,zlib)))
3638 (arguments
3639 ;; Only the fork python-pillow works with Python 3.
3640 `(#:python ,python-2
3641 #:tests? #f ; no check target
3642 #:phases
3643 (alist-cons-before
3644 'build 'configure
3645 ;; According to README and setup.py, manual configuration is
3646 ;; the preferred way of "searching" for inputs.
3647 ;; lcms is not found, TCL_ROOT refers to the unavailable tkinter.
3648 (lambda* (#:key inputs #:allow-other-keys)
3649 (let ((jpeg (assoc-ref inputs "libjpeg"))
3650 (zlib (assoc-ref inputs "zlib"))
3651 (tiff (assoc-ref inputs "libtiff"))
3652 (freetype (assoc-ref inputs "freetype")))
3653 (substitute* "setup.py"
3654 (("JPEG_ROOT = None")
3655 (string-append "JPEG_ROOT = libinclude(\"" jpeg "\")"))
3656 (("ZLIB_ROOT = None")
3657 (string-append "ZLIB_ROOT = libinclude(\"" zlib "\")"))
3658 (("TIFF_ROOT = None")
3659 (string-append "TIFF_ROOT = libinclude(\"" tiff "\")"))
3660 (("FREETYPE_ROOT = None")
3661 (string-append "FREETYPE_ROOT = libinclude(\""
3662 freetype "\")")))))
3663 %standard-phases)))
3664 (home-page "http://www.pythonware.com/products/pil/")
3665 (synopsis "Python Imaging Library")
3666 (description "The Python Imaging Library (PIL) adds image processing
3667capabilities to the Python interpreter.")
3668 (license (x11-style
3669 "file://README"
3670 "See 'README' in the distribution."))))
3671
3672(define-public python2-cssutils
3673 (package
3674 (name "python2-cssutils")
3675 (version "1.0")
3676 (source
3677 (origin
3678 (method url-fetch)
3679 (uri (string-append
3680 "https://pypi.python.org/packages/source/c/cssutils/cssutils-"
3681 version
3682 ".zip"))
3683 (sha256
3684 (base32
3685 "1bwim1353r4hqiir73sn4sc43y7ymh09qx0kly7vj048blppc125"))))
3686 (build-system python-build-system)
3687 (native-inputs
3688 `(("python2-mock" ,python2-mock) ; for the tests
3689 ("unzip" ,unzip))) ; for unpacking the source
3690 (inputs
3691 `(("python2-setuptools" ,python2-setuptools)))
3692 (arguments
3693 `(#:python ,python-2 ; Otherwise tests fail with a syntax error.
3694 #:tests? #f ; The tests apparently download an external URL.
3695 ))
3696 (home-page "http://cthedot.de/cssutils/")
3697 (synopsis
3698 "CSS Cascading Style Sheets library for Python")
3699 (description
3700 "Cssutils is a Python package for parsing and building CSS
3701Cascading Style Sheets. Currently it provides a DOM only and no rendering
3702options.")
3703 (license lgpl3+)))
3704
3705(define-public python-cssselect
3706 (package
3707 (name "python-cssselect")
3708 (version "0.9.1")
3709 (source
3710 (origin
3711 (method url-fetch)
3712 (uri (string-append
3713 "https://pypi.python.org/packages/source/c/cssselect/cssselect-"
3714 version
3715 ".tar.gz"))
3716 (sha256
3717 (base32
3718 "10h623qnp6dp1191jri7lvgmnd4yfkl36k9smqklp1qlf3iafd85"))))
3719 (build-system python-build-system)
3720 (inputs
3721 `(("python-setuptools" ,python-setuptools)))
3722 (arguments
3723 ;; tests fail with message
3724 ;; AttributeError: 'module' object has no attribute 'tests'
3725 `(#:tests? #f))
3726 (home-page
3727 "https://pythonhosted.org/cssselect/")
3728 (synopsis
3729 "CSS3 selector parser and translator to XPath 1.0")
3730 (description
3731 "Cssselect ia a Python module that parses CSS3 Selectors and translates
3732them to XPath 1.0 expressions. Such expressions can be used in lxml or
3733another XPath engine to find the matching elements in an XML or HTML document.")
3734 (license bsd-3)))
3735
3736(define-public python2-cssselect
3737 (package-with-python2 python-cssselect))
3738
3739(define-public python-netifaces
3740 (package
3741 (name "python-netifaces")
3742 (version "0.10.4")
3743 (source
3744 (origin
3745 (method url-fetch)
3746 (uri (string-append
3747 "https://pypi.python.org/packages/source/n/netifaces/netifaces-"
3748 version
3749 ".tar.gz"))
3750 (sha256
3751 (base32
3752 "1plw237a4zib4z8s62g0mrs8gm3kjfrp5sxh6bbk9nl3rdls2mln"))))
3753 (build-system python-build-system)
3754 (inputs
3755 `(("python-setuptools" ,python-setuptools)))
3756 (home-page
3757 "https://bitbucket.org/al45tair/netifaces")
3758 (synopsis
3759 "Python module for portable network interface information")
3760 (description
3761 "Netifaces is a Python module providing information on network
3762interfaces in an easy and portable manner.")
3763 (license license:expat)))
3764
3765(define-public python2-netifaces
3766 (package-with-python2 python-netifaces))
3767
3768(define-public python-networkx
3769 (package
3770 (name "python-networkx")
3771 (version "1.9.1")
3772 (source
3773 (origin
3774 (method url-fetch)
3775 (uri (string-append
3776 "https://pypi.python.org/packages/source/n/networkx/networkx-"
3777 version ".tar.gz"))
3778 (sha256
3779 (base32 "0n8wy0yq1kmdq4wh68mlhwhkndvwzx48lg41a1z0sxxms0wfp033"))))
3780 (build-system python-build-system)
3781 ;; python-decorator is needed at runtime
3782 (propagated-inputs
3783 `(("python-decorator" ,python-decorator)))
3784 (native-inputs
3785 `(("python-setuptools" ,python-setuptools)
3786 ("python-nose" ,python-nose)))
3787 (home-page "http://networkx.github.io/")
3788 (synopsis "Python module for creating and manipulating graphs and networks")
3789 (description
3790 "NetworkX is a Python package for the creation, manipulation, and study
3791of the structure, dynamics, and functions of complex networks.")
3792 (license bsd-3)))
3793
3794(define-public python2-networkx
3795 (package-with-python2 python-networkx))
3796
3797(define-public snakemake
3798 (package
3799 (name "snakemake")
3800 (version "3.2.1")
3801 (source
3802 (origin
3803 (method url-fetch)
3804 (uri (string-append
3805 "https://pypi.python.org/packages/source/s/snakemake/snakemake-"
3806 version ".tar.gz"))
3807 (sha256
3808 (base32 "0fi4b63sj60hvi7rfydvmz2icl4wj74djw5sn2gl8hxd02qw4b91"))))
3809 (build-system python-build-system)
3810 (inputs `(("python-setuptools" ,python-setuptools)))
3811 (home-page "https://bitbucket.org/johanneskoester/snakemake")
3812 (synopsis "Python-based execution environment for make-like workflows")
3813 (description
3814 "Snakemake aims to reduce the complexity of creating workflows by
3815providing a clean and modern domain specific specification language (DSL) in
3816Python style, together with a fast and comfortable execution environment.")
3817 (license license:expat)))
3818
3819(define-public python-seaborn
3820 (package
3821 (name "python-seaborn")
3822 (version "0.5.1")
3823 (source
3824 (origin
3825 (method url-fetch)
3826 (uri (string-append
3827 "https://pypi.python.org/packages/source/s/seaborn/seaborn-"
3828 version ".tar.gz"))
3829 (sha256
3830 (base32 "1236abw18ijjglmv60q85ckqrvgf5qyy4zlq7nz5aqfg6q87z3wc"))))
3831 (build-system python-build-system)
3832 (propagated-inputs
3833 `(("python-pandas" ,python-pandas)
3834 ("python-matplotlib" ,python-matplotlib)
3835 ("python-scipy" ,python-scipy)))
3836 (native-inputs
3837 `(("python-setuptools" ,python-setuptools)))
3838 (home-page "http://stanford.edu/~mwaskom/software/seaborn/")
3839 (synopsis "Statistical data visualization")
3840 (description
3841 "Seaborn is a library for making attractive and informative statistical
3842graphics in Python. It is built on top of matplotlib and tightly integrated
3843with the PyData stack, including support for numpy and pandas data structures
3844and statistical routines from scipy and statsmodels.")
3845 (license bsd-3)))
3846
3847(define-public python2-seaborn
3848 (let ((seaborn (package-with-python2 python-seaborn)))
3849 (package (inherit seaborn)
3850 (propagated-inputs
3851 `(("python2-pytz" ,python2-pytz)
3852 ,@(package-propagated-inputs seaborn))))))
3853
3854(define-public python-sympy
3855 (package
3856 (name "python-sympy")
3857 (version "0.7.6")
3858 (source
3859 (origin
3860 (method url-fetch)
3861 (uri (string-append
3862 "https://github.com/sympy/sympy/releases/download/sympy-"
3863 version "/sympy-" version ".tar.gz"))
3864 (sha256
3865 (base32 "19yp0gy4i7p4g6l3b8vaqkj9qj7yqb5kqy0qgbdagpzgkdz958yz"))))
3866 (build-system python-build-system)
3867 (native-inputs
3868 `(("python-setuptools" ,python-setuptools)))
3869 (home-page "http://www.sympy.org/")
3870 (synopsis "Python library for symbolic mathematics")
3871 (description
3872 "SymPy is a Python library for symbolic mathematics. It aims to become a
3873full-featured computer algebra system (CAS) while keeping the code as simple
3874as possible in order to be comprehensible and easily extensible.")
3875 (license bsd-3)))
3876
3877(define-public python2-sympy
3878 (package-with-python2 python-sympy))
3879
3880(define-public python-testlib
3881 (package
3882 (name "python-testlib")
3883 (version "0.6.5")
3884 (source
3885 (origin
3886 (method url-fetch)
3887 (uri (string-append
3888 "https://pypi.python.org/packages/source/t/testlib/testlib-"
3889 version ".zip"))
3890 (sha256
3891 (base32 "1mz26cxn4x8bbgv0rn0mvj2z05y31rkc8009nvdlb3lam5b4mj3y"))))
3892 (build-system python-build-system)
3893 (inputs
3894 `(("python-setuptools" ,python-setuptools)))
3895 (native-inputs
3896 `(("unzip" ,unzip)))
3897 (arguments
3898 `(#:phases
3899 (alist-replace
3900 'unpack
3901 (lambda* (#:key inputs outputs #:allow-other-keys)
3902 (let ((unzip (string-append (assoc-ref inputs "unzip")
3903 "/bin/unzip"))
3904 (source (assoc-ref inputs "source")))
3905 (and (zero? (system* unzip source))
3906 (chdir (string-append "testlib-" ,version)))))
3907 %standard-phases)))
3908 (synopsis "Python micro test suite harness")
3909 (description "A micro unittest suite harness for Python.")
3910 (home-page "https://github.com/trentm/testlib")
3911 (license license:expat)))
3912
3913(define-public python2-testlib
3914 (package-with-python2 python-testlib))
3915
3916(define-public python2-xlib
3917 (package
3918 (name "python2-xlib")
3919 (version "0.14")
3920 (source (origin
3921 (method url-fetch)
3922 (uri (string-append "mirror://sourceforge/python-xlib/"
3923 "python-xlib-" version ".tar.gz"))
3924 (sha256
3925 (base32
3926 "1sv0447j0rx8cgs3jhjl695p5pv13ihglcjlrrz1kq05lsvb0wa7"))))
3927 (build-system python-build-system)
3928 (arguments
3929 `(#:python ,python-2 ;Python 2 only
3930 #:tests? #f)) ;no tests
3931 (inputs
3932 `(("python-setuptools" ,python-setuptools)))
3933 (home-page "http://python-xlib.sourceforge.net/")
3934 (synopsis "Python X11 client library")
3935 (description
3936 "The Python X Library is intended to be a fully functional X client
3937library for Python programs. It is useful to implement low-level X clients.
3938It is written entirely in Python.")
3939 (license gpl2+)))
3940
3941(define-public python-singledispatch
3942 (package
3943 (name "python-singledispatch")
3944 (version "3.4.0.3")
3945 (source
3946 (origin
3947 (method url-fetch)
3948 (uri (string-append
3949 "https://pypi.python.org/packages/source/s/singledispatch/"
3950 "singledispatch-" version ".tar.gz"))
3951 (sha256
3952 (base32
3953 "171b7ip0hsq5qm83np40h3phlr36ym18w0lay0a8v08kvy3sy1jv"))))
3954 (build-system python-build-system)
3955 (native-inputs
3956 `(("python-setuptools" ,python-setuptools)))
3957 (propagated-inputs
3958 `(("python-six" ,python-six)))
3959 (home-page
3960 "http://docs.python.org/3/library/functools.html#functools.singledispatch")
3961 (synopsis "Backport of singledispatch feature from Python 3.4")
3962 (description
3963 "This library brings functools.singledispatch from Python 3.4 to Python
39642.6-3.3.")
3965 (license license:expat)))
3966
3967(define-public python2-singledispatch
3968 (package-with-python2 python-singledispatch))
3969
3970(define-public python-tornado
3971 (package
3972 (name "python-tornado")
3973 (version "4.1")
3974 (source
3975 (origin
3976 (method url-fetch)
3977 (uri (string-append
3978 "https://pypi.python.org/packages/source/t/tornado/"
3979 "tornado-" version ".tar.gz"))
3980 (sha256
3981 (base32 "0a12f00h277zbifibnj46wf14801f573irvf6hwkgja5vspd7awr"))))
3982 (build-system python-build-system)
3983 (inputs
3984 `(("python-certifi" ,python-certifi)))
3985 (native-inputs
3986 `(("python-setuptools" ,python-setuptools)))
3987 (home-page "https://pypi.python.org/pypi/tornado/4.1")
3988 (synopsis "Python web framework and asynchronous networking library")
3989 (description
3990 "Tornado is a Python web framework and asynchronous networking library,
3991originally developed at FriendFeed. By using non-blocking network I/O,
3992Tornado can scale to tens of thousands of open connections, making it ideal
3993for long polling, WebSockets, and other applications that require a long-lived
3994connection to each user.")
3995 (license asl2.0)))
3996
3997(define-public python2-tornado
3998 (let ((tornado (package-with-python2 python-tornado)))
3999 (package (inherit tornado)
4000 (inputs
4001 `(("python2-backport-ssl-match-hostname"
4002 ,python2-backport-ssl-match-hostname)
4003 ,@(package-inputs tornado))))))
4004
4005(define-public python-waf
4006 (package
4007 (name "python-waf")
4008 (version "1.8.8")
4009 (source (origin
4010 (method url-fetch)
4011 (uri (string-append "https://waf.io/"
4012 "waf-" version ".tar.bz2"))
4013 (sha256
4014 (base32
4015 "0b5q307fgn6a5d8yjia2d1l4bk1q3ilvc0w8k4isfrrx2gbcw8wn"))))
4016 (build-system python-build-system)
4017 (arguments
4018 '(#:phases
4019 (modify-phases %standard-phases
4020 (replace 'build
4021 (lambda _
4022 (zero? (begin
4023 (system* "python" "waf-light" "configure")
4024 (system* "python" "waf-light" "build")))))
4025 (replace 'check
4026 (lambda _
4027 (zero? (system* "python" "waf" "--version"))))
4028 (replace 'install
4029 (lambda _
4030 (copy-file "waf" %output))))))
4031 (home-page "https://waf.io/")
4032 (synopsis "Python-based build system")
4033 (description
4034 "Waf is a Python-based framework for configuring, compiling and installing
4035applications.")
4036 (license bsd-3)))
4037
4038(define-public python2-waf
4039 (package-with-python2 python-waf))
4040
4041(define-public python-pyzmq
4042 (package
4043 (name "python-pyzmq")
4044 (version "14.6.0")
4045 (source
4046 (origin
4047 (method url-fetch)
4048 (uri (string-append
4049 "https://pypi.python.org/packages/source/p/pyzmq/pyzmq-"
4050 version ".tar.gz"))
4051 (sha256
4052 (base32 "1frmbjykvhmdg64g7sn20c9fpamrsfxwci1nhhg8q7jgz5pq0ikp"))))
4053 (build-system python-build-system)
4054 (arguments
4055 `(#:configure-flags
4056 (list (string-append "--zmq=" (assoc-ref %build-inputs "zeromq")))
4057 ;; FIXME: You must build pyzmq with 'python setup.py build_ext
4058 ;; --inplace' for 'python setup.py test' to work.
4059 #:tests? #f))
4060 (inputs
4061 `(("zeromq" ,zeromq)))
4062 (native-inputs
4063 `(("pkg-config" ,pkg-config)
4064 ("python-nose" ,python-nose)
4065 ("python-setuptools" ,python-setuptools)))
4066 (home-page "http://github.com/zeromq/pyzmq")
4067 (synopsis "Python bindings for 0MQ")
4068 (description
4069 "PyZMQ is the official Python binding for the ZeroMQ messaging library.")
4070 (license bsd-4)))
4071
4072(define-public python2-pyzmq
4073 (package-with-python2 python-pyzmq))
4074
4075(define-public python-pep8
4076 (package
4077 (name "python-pep8")
4078 (version "1.6.2")
4079 (source
4080 (origin
4081 (method url-fetch)
4082 (uri (string-append
4083 "https://pypi.python.org/packages/source/p/pep8/pep8-"
4084 version
4085 ".tar.gz"))
4086 (sha256
4087 (base32
4088 "1zybkcdw1sx84dvkfss96nhykqg9bc0cdpwpl4k9wlxm61bf7dxq"))))
4089 (build-system python-build-system)
4090 (inputs
4091 `(("python-setuptools" ,python-setuptools)))
4092 (home-page "http://pep8.readthedocs.org/")
4093 (synopsis "Python style guide checker")
4094 (description
4095 "This tools checks Python code against some of the style conventions in
4096PEP 8.")
4097 (license license:expat)))
4098
4099(define-public python2-pep8
4100 (package-with-python2 python-pep8))
4101
4102(define-public python-pyflakes
4103 (package
4104 (name "python-pyflakes")
4105 (version "0.9.2")
4106 (source
4107 (origin
4108 (method url-fetch)
4109 (uri (string-append
4110 "https://pypi.python.org/packages/source/p/pyflakes/pyflakes-"
4111 version
4112 ".tar.gz"))
4113 (sha256
4114 (base32
4115 "0pvawddspdq0y22dbraq5gld9qr6rwa7zhmpfhl2b7v9rqiiqs82"))))
4116 (build-system python-build-system)
4117 (inputs
4118 `(("python-setuptools" ,python-setuptools)))
4119 (home-page
4120 "https://github.com/pyflakes/pyflakes")
4121 (synopsis "Passive checker of Python programs")
4122 (description
4123 "Pyflakes statically checks Python source code for common errors.")
4124 (license license:expat)))
4125
4126(define-public python-mccabe
4127 (package
4128 (name "python-mccabe")
4129 (version "0.3.1")
4130 (source
4131 (origin
4132 (method url-fetch)
4133 (uri (string-append
4134 "https://pypi.python.org/packages/source/m/mccabe/mccabe-"
4135 version
4136 ".tar.gz"))
4137 (sha256
4138 (base32
4139 "05ix3vdv5hjk4irl97n2n3c4g1vqvz7dbmkzs13f3bx97bxsczjz"))))
4140 (build-system python-build-system)
4141 (inputs
4142 `(("python-setuptools" ,python-setuptools)))
4143 (home-page "https://github.com/flintwork/mccabe")
4144 (synopsis "McCabe checker, plugin for flake8")
4145 (description
4146 "This package provides a Flake8 plug-in to compute the McCabe cyclomatic
4147complexity of Python source code.")
4148 (license license:expat)))
4149
4150(define-public python2-mccabe
4151 (package-with-python2 python-mccabe))
4152
4153;; Flake8 2.4.1 requires an older version of pep8.
4154;; This should be removed ASAP.
4155(define-public python-pep8-1.5.7
4156 (package (inherit python-pep8)
4157 (version "1.5.7")
4158 (source
4159 (origin
4160 (method url-fetch)
4161 (uri (string-append
4162 "https://pypi.python.org/packages/source/p/pep8/pep8-"
4163 version
4164 ".tar.gz"))
4165 (sha256
4166 (base32
4167 "12b9bbdbwnspxgak14xg58c130x2n0blxzlms5jn2dszn8qj3d0m"))))))
4168
4169(define-public python2-pep8-1.5.7
4170 (package-with-python2 python-pep8-1.5.7))
4171
4172;; Flake8 2.4.1 requires an older version of pyflakes.
4173;; This should be removed ASAP.
4174(define-public python-pyflakes-0.8.1
4175 (package (inherit python-pyflakes)
4176 (version "0.8.1")
4177 (source
4178 (origin
4179 (method url-fetch)
4180 (uri (string-append
4181 "https://pypi.python.org/packages/source/p/pyflakes/pyflakes-"
4182 version
4183 ".tar.gz"))
4184 (sha256
4185 (base32
4186 "0sbpq6pqm1i9wqi41mlfrsc5rk92jv4mskvlyxmnhlbdnc80ma1z"))))))
4187
4188(define-public python2-pyflakes-0.8.1
4189 (package-with-python2 python-pyflakes))
4190
4191(define-public python-flake8
4192 (package
4193 (name "python-flake8")
4194 (version "2.4.1")
4195 (source
4196 (origin
4197 (method url-fetch)
4198 (uri (string-append
4199 "https://pypi.python.org/packages/source/f/flake8/flake8-"
4200 version
4201 ".tar.gz"))
4202 (sha256
4203 (base32
4204 "0dvmrpv7x98xkzffjz1z7lqr90sp5zdz16bdwckfd1cckpjvnzif"))))
4205 (build-system python-build-system)
4206 (inputs
4207 `(("python-setuptools" ,python-setuptools)
4208 ("python-pep8" ,python-pep8-1.5.7)
4209 ("python-pyflakes" ,python-pyflakes-0.8.1)
4210 ("python-mccabe" ,python-mccabe)
4211 ("python-mock" ,python-mock)
4212 ("python-nose" ,python-nose)))
4213 (home-page "https://gitlab.com/pycqa/flake8")
4214 (synopsis
4215 "The modular source code checker: pep8, pyflakes and co")
4216 (description
4217 "Flake8 is a wrapper around PyFlakes, pep8 and python-mccabe.")
4218 (license license:expat)))
4219
4220(define-public python2-flake8
4221 (package-with-python2 python-flake8))