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