guix-more/more/packages/python.scm

python.scm

1
;;; GNU Guix --- Functional package management for GNU
2
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
3
;;;
4
;;; This file is part of GNU Guix.
5
;;;
6
;;; GNU Guix is free software; you can redistribute it and/or modify it
7
;;; under the terms of the GNU General Public License as published by
8
;;; the Free Software Foundation; either version 3 of the License, or (at
9
;;; your option) any later version.
10
;;;
11
;;; GNU Guix is distributed in the hope that it will be useful, but
12
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
;;; GNU General Public License for more details.
15
;;;
16
;;; You should have received a copy of the GNU General Public License
17
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
18
19
(define-module (more packages python)
20
  #:use-module ((guix licenses) #:prefix license:)
21
  #:use-module (gnu packages)
22
  #:use-module (gnu packages audio)
23
  #:use-module (gnu packages check)
24
  #:use-module (gnu packages compression)
25
  #:use-module (gnu packages databases)
26
  #:use-module (gnu packages maths)
27
  #:use-module (gnu packages networking)
28
  #:use-module (gnu packages python)
29
  #:use-module (gnu packages tls)
30
  #:use-module (guix packages)
31
  #:use-module (guix download)
32
  #:use-module (guix git-download)
33
  #:use-module (guix utils)
34
  #:use-module (guix build-system python))
35
36
(define-public python-cooldict
37
  (package
38
    (name "python-cooldict")
39
    (version "1.02")
40
    (source (origin
41
              (method url-fetch)
42
              (uri (pypi-uri "cooldict" version))
43
              (sha256
44
               (base32
45
                "084if0s504576nph0f6glmg3mmvijq7nbnf65hh22gwwdwrjss83"))))
46
    (build-system python-build-system)
47
    (native-inputs
48
     `(("ana" ,python-ana)))
49
    (home-page "https://github.com/zardus/cooldict")
50
    (synopsis "Some useful dict-like structures")
51
    (description "Some useful dict-like structures.")
52
    (license license:bsd-2)))
53
54
(define-public python2-cooldict
55
  (package-with-python2 python-cooldict))
56
 
57
(define-public python-cachetools
58
  (package
59
    (name "python-cachetools")
60
    (version "2.0.0")
61
    (source (origin
62
              (method url-fetch)
63
              (uri (pypi-uri "cachetools" version))
64
              (sha256
65
               (base32
66
                "0a56ydsvsri1r19ny55g0x7jsgjl9n02vnxbhfz0vhhd4h174nki"))))
67
    (build-system python-build-system)
68
    (home-page "https://github.com/tkem/cachetools")
69
    (synopsis "Memoizing collections and decorators including lru_cache")
70
    (description "This module provides various memoizing collections and
71
decorators, including variants of the Python 3 Standard Library @code{lru_cache}
72
function decorator.")
73
    (license license:expat)))
74
75
(define-public python2-cachetools
76
  (package-with-python2 python-cachetools))
77
78
(define-public python-bintrees
79
  (package
80
    (name "python-bintrees")
81
    (version "2.0.7")
82
    (source (origin
83
              (method url-fetch)
84
              (uri (pypi-uri "bintrees" version ".zip"))
85
              (sha256
86
               (base32
87
                "0w0js514awl9qwamcr71spi8mmv7q3n4mgrqrnmr9w6f09k5wrv0"))))
88
    (build-system python-build-system)
89
    (native-inputs `(("unzip" ,unzip)))
90
    (home-page "https://github.com/mozman/bintrees")
91
    (synopsis "Provides Binary- RedBlack- and AVL-Trees written in Python and Cython/C")
92
    (description "This package provides Binary- RedBlack- and AVL-Trees written
93
in Python and Cython/C.
94
95
This Classes are much slower than the built-in dict class, but all
96
iterators/generators yielding data in sorted key order. Trees can be uses as
97
drop in replacement for dicts in most cases.")
98
    (license license:expat)))
99
100
(define-public python2-bintrees
101
  (package-with-python2 python-bintrees))
102
 
103
(define-public python2-dpkt
104
  (package
105
    (name "python2-dpkt")
106
    (version "1.9.1")
107
    (source (origin
108
              (method url-fetch)
109
              (uri (pypi-uri "dpkt" version))
110
              (sha256
111
               (base32
112
                "0rr9ygczhxkfb61778jx0cxs0sq46zwlcj5l3wn6xmd3iy3yx9y6"))
113
              (modules '((guix build utils)))
114
              (snippet
115
               '(substitute* "setup.py"
116
                  (("os.system\\('py2dsc-deb ' + sdist_file\\)") "")))))
117
    (build-system python-build-system)
118
    (arguments
119
     `(#:python ,python-2))
120
    (home-page "https://github.com/kbandla/dpkt")
121
    (synopsis "Fast, simple network packet creation / parsing")
122
    (description "Fast, simple packet creation / parsing, with definitions for
123
the basic TCP/IP protocols.")
124
    (license license:bsd-3)))
125
126
(define-public python2-rpyc
127
  (package
128
    (name "python2-rpyc")
129
    (version "3.3.0")
130
    (source (origin
131
              (method url-fetch)
132
              (uri (pypi-uri "rpyc" version))
133
              (sha256
134
               (base32
135
                "0jwbxxf5f8l05pwh7ilg380y4pqv3nxibaszbwpl9gzh2i9q9yj3"))))
136
    (build-system python-build-system)
137
    (native-inputs
138
     `(("nose" ,python2-nose)))
139
    (propagated-inputs
140
     `(("plumbum" ,python2-plumbum)
141
       ("progressbar" ,python2-progressbar)))
142
    (arguments
143
     `(#:python ,python-2))
144
    (home-page "https://github.com/tomerfiliba/rpyc")
145
    (synopsis "Remote procedure call for Python")
146
    (description "Remote Python Call is a transparent library for symmetrical
147
remote procedure calls, clustering, and distributed-computing.  RPyC makes use
148
of object-proxying, a technique that employs python's dynamic nature, to
149
overcome the physical boundaries between processes and computers, so that
150
remote objects can be manipulated as if they were local.")
151
    (license license:expat)))
152
153
(define-public python2-progressbar
154
  (package
155
    (name "python2-progressbar")
156
    (version "2.3")
157
    (source (origin
158
              (method url-fetch)
159
              (uri (pypi-uri "progressbar" version))
160
              (sha256
161
               (base32
162
                "0m0j93yfvbd8pw8cz2vdb9hyk9d0zkkd509k69jrw545jxr8mlxj"))))
163
    (build-system python-build-system)
164
    (arguments
165
     `(#:python ,python-2))
166
    (home-page "https://github.com/niltonvolpato/python-progressbar")
167
    (synopsis "Text progress bar library for Python")
168
    (description
169
      "A text progress bar is typically used to display the progress of a long
170
running operation, providing a visual cue that processing is underway.
171
172
The ProgressBar class manages the current progress, and the format of the line
173
is given by a number of widgets. A widget is an object that may display
174
differently depending on the state of the progress bar. There are three types
175
of widgets:
176
177
@enumerate
178
@item a string, which always shows itself
179
@item a ProgressBarWidget, which may return a different value every time its
180
update method is called
181
@item a ProgressBarWidgetHFill, which is like ProgressBarWidget, except it
182
expands to fill the remaining width of the line.
183
@end enumerate
184
185
The progressbar module is very easy to use, yet very powerful. It will also
186
automatically enable features like auto-resizing when the system supports it.")
187
    (license (list license:lgpl2.1+ license:bsd-3))))
188
189
(define-public python-progressbar2
190
  (package
191
    (name "python-progressbar2")
192
    (version "3.20.0")
193
    (source (origin
194
              (method url-fetch)
195
              (uri (pypi-uri "progressbar2" version))
196
              (sha256
197
               (base32
198
                "1xz5l3598bl2r1j8h6dqljbjf44f2d137ppi0l381adz4zd38vd1"))))
199
    (build-system python-build-system)
200
    (native-inputs
201
     `(("pytest-runner" ,python-pytest-runner)
202
       ("pytest" ,python-pytest)))
203
    (propagated-inputs
204
     `(("six" ,python-six)
205
       ("utils" ,python-utils)))
206
    (home-page "https://github.com/WoLpH/python-progressbar")
207
    (synopsis "A text progress bar for python")
208
    (description "A text progress bar is typically used to display the progress
209
of a long running operation, providing a visual cue that processing is underway.
210
211
The ProgressBar class manages the current progress, and the format of the line
212
is given by a number of widgets.  A widget is an object that may display
213
differently depending on the state of the progress bar.")
214
    (license license:bsd-2)))
215
216
(define-public python2-progressbar2
217
  (package-with-python2 python-progressbar2))
218
 
219
(define-public python-mulpyplexer
220
  (package
221
    (name "python-mulpyplexer")
222
    (version "0.07")
223
    (source (origin
224
              (method url-fetch)
225
              (uri (pypi-uri "mulpyplexer" version))
226
              (sha256
227
               (base32
228
                "1j5gm913adc8f0mn9y6a9wm9h78jb7ykr8i00yysfcy6ah2ilp9v"))))
229
    (build-system python-build-system)
230
    (home-page "https://github.com/zardus/mulpyplexer")
231
    (synopsis "Multiplex interactions with lists of python objects")
232
    (description "Mulpyplexer is a piece of code that can multiplex interactions with lists of python objects.")
233
    (license license:bsd-2)))
234
235
(define-public python2-mulpyplexer
236
  (package-with-python2 python-mulpyplexer))
237
238
(define-public python-ana
239
  (package
240
    (name "python-ana")
241
    (version "0")
242
    (source (origin
243
              (method git-fetch)
244
              (uri (git-reference
245
                    (url "https://github.com/zardus/ana.git")
246
                    (commit "94928f773661eaa5a6c2dec40dad199c70daedab")))
247
              (sha256
248
               (base32
249
                "0f2wdhs0xwpnk9lznxl96b2yzcz1641wbqrh1aid7q2pm60v6dhv"))
250
              (file-name (string-append name "-" version))))
251
    (build-system python-build-system)
252
    (native-inputs
253
     `(("nose" ,python-nose)))
254
    (arguments
255
     `(#:phases
256
       (modify-phases %standard-phases
257
         (add-before 'build 'fix-python3-import
258
           (lambda _
259
             (substitute* "ana/datalayer.py"
260
               (("import cPickle as pickle") "import pickle")))))))
261
    (home-page "https://github.com/zardus/ana")
262
    (synopsis "Provide easy distributed data storage for python objects")
263
    (description "ANA is a project to provide easy distributed data storage for
264
stuff.  It provides every object with a UUID and, when pickled, will first
265
serialize the object's state to a central location and then \"pickle\" the
266
object into just its UUID.  This is really handy when you have to distribute
267
objects in some distributed system, and you'd rather not pickle the whole
268
object every time you need to send it.")
269
    (license license:bsd-2)))
270
271
(define-public python2-ana
272
  (package
273
    (inherit (package-with-python2 python-ana))
274
    (arguments
275
     `(#:python ,python-2))))
276
277
(define-public python-plumbum
278
  (package
279
    (name "python-plumbum")
280
    (version "1.6.3")
281
    (source
282
     (origin
283
       (method url-fetch)
284
       (uri (pypi-uri "plumbum" version))
285
       (sha256
286
        (base32 "083kikr1f7qzpp5jllss97dy8d6249v7ia3wg9i0a6wz8l4ffj82"))))
287
    (build-system python-build-system)
288
    (native-inputs
289
     `(("pytest" ,python-pytest)))
290
    (home-page "https://plumbum.readthedocs.io/en/latest")
291
    (synopsis "Shell script-like programs in Python")
292
    (description
293
      "Plumbum (Latin for lead, which was used to create pipes back in the day)
294
is a small yet feature-rich library for shell script-like programs in Python.
295
The motto of the library is “Never write shell scripts again”, and thus it
296
attempts to mimic the shell syntax (“shell combinators”) where it makes sense,
297
while keeping it all Pythonic and cross-platform.")
298
    (license license:expat)))
299
300
(define-public python2-plumbum
301
  (package-with-python2 python-plumbum))
302
303
(define-public python-trollius
304
  (package
305
    (name "python-trollius")
306
    (version "2.1")
307
    (source (origin
308
              (method url-fetch)
309
              (uri (pypi-uri "trollius" version))
310
              (sha256
311
               (base32
312
                "146c60hgcmgjkbf2hmiag52f9i3hka6shwbfybdsmlvqjnfms5nd"))))
313
    (build-system python-build-system)
314
    (home-page "https://github.com/haypo/trollius")
315
    (propagated-inputs
316
     `(("mock" ,python-mock)
317
       ("six" ,python-six)))
318
    (arguments
319
     `(#:tests? #f))
320
    (synopsis "")
321
    (description "")
322
    (license license:asl2.0)))
323
324
(define-public python2-trollius
325
  (package-with-python2 python-trollius))
326
327
(define-public python-neovim
328
  (package
329
    (name "python-neovim")
330
    (version "0.1.13")
331
    (source (origin
332
              (method url-fetch)
333
              (uri (pypi-uri "neovim" version))
334
              (sha256
335
               (base32
336
                "0pzk5639jjjx46a6arkwy31falmk5w1061icbml8njm3rbrwwhgx"))))
337
    (build-system python-build-system)
338
    (propagated-inputs
339
     `(("python-greenlet" ,python-greenlet)
340
       ("python-msgpack" ,python-msgpack)))
341
    (arguments
342
     `(#:tests? #f))
343
    (home-page "https://github.com/neovim/python-client")
344
    (synopsis "")
345
    (description "")
346
    (license license:asl2.0)))
347
348
(define-public python2-neovim
349
  (let ((parent (package-with-python2 python-neovim)))
350
    (package
351
      (inherit parent)
352
      (propagated-inputs
353
       `(("trollius" ,python2-trollius)
354
         ,@(package-propagated-inputs parent))))))
355
356
(define-public python-cymruwhois
357
  (package
358
    (name "python-cymruwhois")
359
    (version "1.6")
360
    (source (origin
361
	      (method url-fetch)
362
	      (uri (pypi-uri "cymruwhois" version))
363
	      (sha256
364
	       (base32
365
		"0m7jgpglkjd0lsyw64lfw6qxdm0fg0f54145f79kq4rk1vjqbh5n"))))
366
    (build-system python-build-system)
367
    (native-inputs
368
     `(("python-nose" ,python-nose)))
369
    (home-page "")
370
    (synopsis "")
371
    (description "")
372
    (license license:expat)))
373
374
(define-public python2-cymruwhois
375
  (package-with-python2 python-cymruwhois))
376
377
(define-public python-ripe-atlas-sagan
378
  (package
379
    (name "python-ripe-atlas-sagan")
380
    (version "1.2.1")
381
    (source (origin
382
	      (method url-fetch)
383
	      (uri (pypi-uri "ripe.atlas.sagan" version))
384
	      (sha256
385
	       (base32
386
		"0mc5f50jj61q5z92765gnqhifila2bdngaybzrh6hycz1x6lz0ra"))))
387
    (build-system python-build-system)
388
    (propagated-inputs
389
     `(("cryptography" ,python-cryptography)
390
       ("dateutil" ,python-dateutil)
391
       ("python-nose" ,python-nose)
392
       ("pytz" ,python-pytz)))
393
    (home-page "")
394
    (synopsis "")
395
    (description "")
396
    (license license:gpl3+)))
397
398
(define-public python2-ripe-atlas-sagan
399
  (package-with-python2 python-ripe-atlas-sagan))
400
401
(define-public python-socketio-client
402
  (package
403
    (name "python-socketio-client")
404
    (version "0.7.2")
405
    (source (origin
406
	      (method url-fetch)
407
	      (uri (pypi-uri "socketIO-client" version))
408
	      (sha256
409
	       (base32
410
		"1hfjfhyxgql1ndda1bagg8niy8m28byd2r0yq4l7zycwlzxq9kb4"))))
411
    (build-system python-build-system)
412
    (propagated-inputs
413
      `(("websocket-client" ,python-websocket-client)
414
        ("requests" ,python-requests)))
415
    (native-inputs
416
      `(("coverage" ,python-coverage)
417
	("nose" ,python-nose)))
418
    (arguments '(#:tests? #f)); requires network
419
    (home-page "")
420
    (synopsis "")
421
    (description "")
422
    (license license:gpl3+)))
423
424
(define-public python2-socketio-client
425
  (package-with-python2 python-socketio-client))
426
427
(define-public python-linecache2
428
  (package
429
    (name "python-linecache2")
430
    (version "1.0.0")
431
    (source (origin
432
	      (method url-fetch)
433
	      (uri (pypi-uri "linecache2" version))
434
	      (sha256
435
	       (base32
436
		"0z79g3ds5wk2lvnqw0y2jpakjf32h95bd9zmnvp7dnqhf57gy9jb"))))
437
    (build-system python-build-system)
438
    (arguments '(#:tests? #f)); circular dependency with unittest2
439
    (propagated-inputs
440
      `(("pbr" ,python-pbr)))
441
    (home-page "")
442
    (synopsis "")
443
    (description "")
444
    (license license:gpl3+)))
445
446
(define-public python2-linecache2
447
  (package-with-python2 python-linecache2))
448
449
(define-public python-traceback2
450
  (package
451
    (name "python-traceback2")
452
    (version "1.4.0")
453
    (source (origin
454
	      (method url-fetch)
455
	      (uri (pypi-uri "traceback2" version))
456
	      (sha256
457
	       (base32
458
		"0c1h3jas1jp1fdbn9z2mrgn3jj0hw1x3yhnkxp7jw34q15xcdb05"))))
459
    (build-system python-build-system)
460
    (arguments '(#:tests? #f)); circular dependency with unittest2
461
    (propagated-inputs
462
      `(("linecache2" ,python-linecache2)
463
        ("pbr" ,python-pbr)))
464
    (home-page "")
465
    (synopsis "")
466
    (description "")
467
    (license license:gpl3+)))
468
469
(define-public python2-traceback2
470
  (package-with-python2 python-traceback2))
471
472
(define-public python-argparse
473
  (package
474
    (name "python-argparse")
475
    (version "1.4.0")
476
    (source (origin
477
	      (method url-fetch)
478
	      (uri (pypi-uri "argparse" version))
479
	      (sha256
480
	       (base32
481
		"1r6nznp64j68ih1k537wms7h57nvppq0szmwsaf99n71bfjqkc32"))))
482
    (build-system python-build-system)
483
    (home-page "")
484
    (synopsis "")
485
    (description "")
486
    (license license:gpl3+)))
487
488
(define-public python2-argparse
489
  (package-with-python2 python-argparse))
490
491
(define-public python-unittest2-fix
492
  (package
493
    (inherit python-unittest2)
494
    (version "1.1.0")
495
    (source (origin
496
	      (method url-fetch)
497
	      (uri (pypi-uri "unittest2" version))
498
	      (sha256
499
	       (base32
500
		"0y855kmx7a8rnf81d3lh5lyxai1908xjp0laf4glwa4c8472m212"))))
501
    (arguments
502
      `(#:phases
503
	(modify-phases %standard-phases
504
	  (add-before 'check 'disable-failures
505
	    (lambda _
506
	      (substitute* "unittest2/test/test_result.py"
507
		(("testGet") "dontTestGet"))
508
	      (substitute* "unittest2/test/test_loader.py"
509
		(("test_loadTestsFromNames__relative_malformed_name") "dontTest")
510
		(("test_loadTestsFromName__relative_malformed_name") "dontTest2")))))))
511
    (propagated-inputs
512
      `(("traceback2" ,python-traceback2)
513
	("six" ,python-six)
514
	("argparse" ,python-argparse)))))
515
516
(define-public python2-unittest2-fix
517
  (package-with-python2 python-unittest2-fix))
518
519
(define-public python-funcsigs
520
  (package
521
    (name "python-funcsigs")
522
    (version "1.0.2")
523
    (source (origin
524
	      (method url-fetch)
525
	      (uri (pypi-uri "funcsigs" version))
526
	      (sha256
527
	       (base32
528
		"0l4g5818ffyfmfs1a924811azhjj8ax9xd1cffr1mzd3ycn0zfx7"))))
529
    (build-system python-build-system)
530
    (native-inputs
531
      `(("unittest2" ,python-unittest2-fix)))
532
    (home-page "")
533
    (synopsis "")
534
    (description "")
535
    (license license:asl2.0)))
536
537
(define-public python2-funcsigs
538
  (package-with-python2 python-funcsigs))
539
540
(define-public python-ripe-atlas-cousteau
541
  (package
542
    (name "python-ripe-atlas-cousteau")
543
    (version "1.4")
544
    (source (origin
545
	      (method url-fetch)
546
	      (uri (pypi-uri "ripe.atlas.cousteau" version))
547
	      (sha256
548
	       (base32
549
		"0lhaanxs3hxlw1d0ma6rpx54p91v0kxvmxa82h86r6j5whdckq21"))))
550
    (build-system python-build-system)
551
    (propagated-inputs
552
      `(("websocket-client" ,python-websocket-client)
553
        ("socketIO-client" ,python-socketio-client)
554
        ("dateutil" ,python-dateutil)
555
        ("jsonschema" ,python-jsonschema)
556
        ("requests" ,python-requests)))
557
    (native-inputs
558
      `(("mock" ,python-mock)
559
        ("nose" ,python-nose)
560
        ("funcsigs" ,python-funcsigs)
561
        ("coverage" ,python-coverage)))
562
    (home-page "")
563
    (synopsis "")
564
    (description "")
565
    (license license:gpl3+)))
566
567
(define-public python2-ripe-atlas-cousteau
568
  (package-with-python2 python-ripe-atlas-cousteau))
569
570
(define-public python-ripe-atlas-tools
571
  (package
572
    (name "python-ripe-atlas-tools")
573
    (version "2.1")
574
    (source (origin
575
	      (method url-fetch)
576
	      (uri (pypi-uri "ripe.atlas.tools" version))
577
	      (sha256
578
	       (base32
579
		"07h9cjxxp0dx4p32dhf5j3cciiap7sc32hb1byljkll5lv4vm9l5"))))
580
    (build-system python-build-system)
581
    (propagated-inputs
582
     `(("pyopenssl" ,python-pyopenssl)
583
       ("sagan" ,python-ripe-atlas-sagan)
584
       ("cousteau" ,python-ripe-atlas-cousteau)
585
       ("pyaml" ,python-pyaml)
586
       ("ipy" ,python-ipy)
587
       ("tzlocal" ,python-tzlocal)))
588
    (native-inputs
589
     `(("mock" ,python-mock)
590
       ("coverage" ,python-coverage)))
591
    (arguments
592
      `(#:tests? #f; tests can't load dependencies
593
	#:phases
594
	(modify-phases %standard-phases
595
	  (add-before 'check 'update-dependency
596
	    (lambda _
597
	      (substitute* "setup.py"
598
		(("==1.2") "==1.2.1")))))))
599
    (home-page "")
600
    (synopsis "")
601
    (description "")
602
    (license license:gpl3+)))
603
604
(define-public python2-ripe-atlas-tools
605
  (package-with-python2 python-ripe-atlas-tools))
606
607
(define-public python-pyaudio
608
  (package
609
    (name "python-pyaudio")
610
    (version "0.2.11")
611
    (source (origin
612
              (method url-fetch)
613
              (uri (pypi-uri "PyAudio" version))
614
              (sha256
615
               (base32
616
                "0x7vdsigm7xgvyg3shd3lj113m8zqj2pxmrgdyj66kmnw0qdxgwk"))))
617
    (build-system python-build-system)
618
    (inputs
619
     `(("portaudio" ,portaudio)))
620
    (home-page "https://people.csail.mit.edu/hubert/pyaudio/")
621
    (synopsis "")
622
    (description "")
623
    (license license:asl2.0)))
624