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