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 aspell)
23
  #:use-module (gnu packages audio)
24
  #:use-module (gnu packages check)
25
  #:use-module (gnu packages compression)
26
  #:use-module (gnu packages databases)
27
  #:use-module (gnu packages enchant)
28
  #:use-module (gnu packages libffi)
29
  #:use-module (gnu packages libreoffice)
30
  #:use-module (gnu packages maths)
31
  #:use-module (gnu packages networking)
32
  #:use-module (gnu packages python)
33
  #:use-module (gnu packages python-compression)
34
  #:use-module (gnu packages python-crypto)
35
  #:use-module (gnu packages python-web)
36
  #:use-module (gnu packages python-xyz)
37
  #:use-module (gnu packages qt)
38
  #:use-module (gnu packages serialization)
39
  #:use-module (gnu packages sphinx)
40
  #:use-module (gnu packages time)
41
  #:use-module (gnu packages tls)
42
  #:use-module (gnu packages version-control)
43
  #:use-module (gnu packages web)
44
  #:use-module (guix packages)
45
  #:use-module (guix download)
46
  #:use-module (guix git-download)
47
  #:use-module (guix utils)
48
  #:use-module (guix build-system python))
49
50
(define-public python-cooldict
51
  (package
52
    (name "python-cooldict")
53
    (version "1.02")
54
    (source (origin
55
              (method url-fetch)
56
              (uri (pypi-uri "cooldict" version))
57
              (sha256
58
               (base32
59
                "084if0s504576nph0f6glmg3mmvijq7nbnf65hh22gwwdwrjss83"))))
60
    (build-system python-build-system)
61
    (native-inputs
62
     `(("ana" ,python-ana)))
63
    (home-page "https://github.com/zardus/cooldict")
64
    (synopsis "Some useful dict-like structures")
65
    (description "Some useful dict-like structures.")
66
    (license license:bsd-2)))
67
68
(define-public python2-cooldict
69
  (package-with-python2 python-cooldict))
70
71
(define-public python-bintrees
72
  (package
73
    (name "python-bintrees")
74
    (version "2.0.7")
75
    (source (origin
76
              (method url-fetch)
77
              (uri (pypi-uri "bintrees" version ".zip"))
78
              (sha256
79
               (base32
80
                "0w0js514awl9qwamcr71spi8mmv7q3n4mgrqrnmr9w6f09k5wrv0"))))
81
    (build-system python-build-system)
82
    (native-inputs `(("unzip" ,unzip)))
83
    (home-page "https://github.com/mozman/bintrees")
84
    (synopsis "Provides Binary- RedBlack- and AVL-Trees written in Python and Cython/C")
85
    (description "This package provides Binary- RedBlack- and AVL-Trees written
86
in Python and Cython/C.
87
88
This Classes are much slower than the built-in dict class, but all
89
iterators/generators yielding data in sorted key order. Trees can be uses as
90
drop in replacement for dicts in most cases.")
91
    (license license:expat)))
92
93
(define-public python2-bintrees
94
  (package-with-python2 python-bintrees))
95
96
(define-public python2-dpkt
97
  (package
98
    (name "python2-dpkt")
99
    (version "1.9.1")
100
    (source (origin
101
              (method url-fetch)
102
              (uri (pypi-uri "dpkt" version))
103
              (sha256
104
               (base32
105
                "0rr9ygczhxkfb61778jx0cxs0sq46zwlcj5l3wn6xmd3iy3yx9y6"))
106
              (modules '((guix build utils)))
107
              (snippet
108
               '(substitute* "setup.py"
109
                  (("os.system\\('py2dsc-deb ' + sdist_file\\)") "")))))
110
    (build-system python-build-system)
111
    (arguments
112
     `(#:python ,python-2))
113
    (home-page "https://github.com/kbandla/dpkt")
114
    (synopsis "Fast, simple network packet creation / parsing")
115
    (description "Fast, simple packet creation / parsing, with definitions for
116
the basic TCP/IP protocols.")
117
    (license license:bsd-3)))
118
119
;; According to pypi, should work with py3
120
(define-public python2-rpyc
121
  (package
122
    (name "python2-rpyc")
123
    (version "3.4.4")
124
    (source (origin
125
              (method url-fetch)
126
              (uri (pypi-uri "rpyc" version))
127
              (sha256
128
               (base32
129
                "1iw1nkyh8r55xqafl14lp7lih38b5fdqid05s6cp4zd62821v6d8"))))
130
    (build-system python-build-system)
131
    (native-inputs
132
     `(("nose" ,python2-nose)))
133
    (propagated-inputs
134
     `(("plumbum" ,python2-plumbum)
135
       ("progressbar" ,python2-progressbar)))
136
    (arguments
137
     `(#:python ,python-2))
138
    (home-page "https://github.com/tomerfiliba/rpyc")
139
    (synopsis "Remote procedure call for Python")
140
    (description "Remote Python Call is a transparent library for symmetrical
141
remote procedure calls, clustering, and distributed-computing.  RPyC makes use
142
of object-proxying, a technique that employs python's dynamic nature, to
143
overcome the physical boundaries between processes and computers, so that
144
remote objects can be manipulated as if they were local.")
145
    (license license:expat)))
146
147
;; According to pypi, should work with py3
148
(define-public python2-progressbar
149
  (package
150
    (name "python2-progressbar")
151
    (version "2.3")
152
    (source (origin
153
              (method url-fetch)
154
              (uri (pypi-uri "progressbar" version))
155
              (sha256
156
               (base32
157
                "0m0j93yfvbd8pw8cz2vdb9hyk9d0zkkd509k69jrw545jxr8mlxj"))))
158
    (build-system python-build-system)
159
    (arguments
160
     `(#:python ,python-2))
161
    (home-page "https://github.com/niltonvolpato/python-progressbar")
162
    (synopsis "Text progress bar library for Python")
163
    (description
164
      "A text progress bar is typically used to display the progress of a long
165
running operation, providing a visual cue that processing is underway.
166
167
The ProgressBar class manages the current progress, and the format of the line
168
is given by a number of widgets. A widget is an object that may display
169
differently depending on the state of the progress bar. There are three types
170
of widgets:
171
172
@enumerate
173
@item a string, which always shows itself
174
@item a ProgressBarWidget, which may return a different value every time its
175
update method is called
176
@item a ProgressBarWidgetHFill, which is like ProgressBarWidget, except it
177
expands to fill the remaining width of the line.
178
@end enumerate
179
180
The progressbar module is very easy to use, yet very powerful. It will also
181
automatically enable features like auto-resizing when the system supports it.")
182
    (license (list license:lgpl2.1+ license:bsd-3))))
183
184
(define-public python-mulpyplexer
185
  (package
186
    (name "python-mulpyplexer")
187
    (version "0.08")
188
    (source (origin
189
              (method url-fetch)
190
              (uri (pypi-uri "mulpyplexer" version))
191
              (sha256
192
               (base32
193
                "1zn5d1vyhfjp8x9z5mr9gv8m8gmi3s3jv3kqb790xzi1kqi0p4ya"))))
194
    (build-system python-build-system)
195
    (home-page "https://github.com/zardus/mulpyplexer")
196
    (synopsis "Multiplex interactions with lists of python objects")
197
    (description "Mulpyplexer is a piece of code that can multiplex interactions with lists of python objects.")
198
    (license license:bsd-2)))
199
200
(define-public python2-mulpyplexer
201
  (package-with-python2 python-mulpyplexer))
202
203
(define-public python-ana
204
  (package
205
    (name "python-ana")
206
    (version "0")
207
    (source (origin
208
              (method git-fetch)
209
              (uri (git-reference
210
                    (url "https://github.com/zardus/ana.git")
211
                    (commit "6d37cf9288839c5536ed2075f206d8d2a80c5906")))
212
              (sha256
213
               (base32
214
                "15mvylgfzmsj0n62m6r5xpqzp6qp4nmp9r3j93g0f64z894kqk0q"))
215
              (file-name (string-append name "-" version))))
216
    (build-system python-build-system)
217
    (native-inputs
218
     `(("nose" ,python-nose)))
219
    (home-page "https://github.com/zardus/ana")
220
    (synopsis "Provide easy distributed data storage for python objects")
221
    (description "ANA is a project to provide easy distributed data storage for
222
stuff.  It provides every object with a UUID and, when pickled, will first
223
serialize the object's state to a central location and then \"pickle\" the
224
object into just its UUID.  This is really handy when you have to distribute
225
objects in some distributed system, and you'd rather not pickle the whole
226
object every time you need to send it.")
227
    (license license:bsd-2)))
228
229
(define-public python2-ana
230
  (package-with-python2 python-ana))
231
232
(define-public python-plumbum
233
  (package
234
    (name "python-plumbum")
235
    (version "1.6.5")
236
    (source (origin
237
              (method url-fetch)
238
              (uri (pypi-uri "plumbum" version))
239
              (sha256
240
               (base32
241
                "1vjbl9qy9fkl3vwiiwpaafmyxfks2sc3b3dhkp4vdgk2pdcv1ayq"))))
242
    (build-system python-build-system)
243
    (native-inputs
244
     `(("pytest" ,python-pytest)))
245
    (home-page "https://plumbum.readthedocs.io/en/latest")
246
    (synopsis "Shell script-like programs in Python")
247
    (description
248
      "Plumbum (Latin for lead, which was used to create pipes back in the day)
249
is a small yet feature-rich library for shell script-like programs in Python.
250
The motto of the library is “Never write shell scripts again”, and thus it
251
attempts to mimic the shell syntax (“shell combinators”) where it makes sense,
252
while keeping it all Pythonic and cross-platform.")
253
    (license license:expat)))
254
255
(define-public python2-plumbum
256
  (package-with-python2 python-plumbum))
257
258
(define-public python-cymruwhois
259
  (package
260
    (name "python-cymruwhois")
261
    (version "1.6")
262
    (source (origin
263
          (method url-fetch)
264
          (uri (pypi-uri "cymruwhois" version))
265
          (sha256
266
           (base32
267
        "0m7jgpglkjd0lsyw64lfw6qxdm0fg0f54145f79kq4rk1vjqbh5n"))))
268
    (build-system python-build-system)
269
    (native-inputs
270
     `(("python-nose" ,python-nose)))
271
    (home-page "")
272
    (synopsis "")
273
    (description "")
274
    (license license:expat)))
275
276
(define-public python-ripe-atlas-sagan
277
  (package
278
    (name "python-ripe-atlas-sagan")
279
    (version "1.2.2")
280
    (source (origin
281
          (method url-fetch)
282
          (uri (pypi-uri "ripe.atlas.sagan" version))
283
          (sha256
284
           (base32
285
        "1pww7f4kh9cgd9qm7hbnkxg2cvj7mcmwhsan97cl5pd0xqxxnvw3"))))
286
    (build-system python-build-system)
287
    (propagated-inputs
288
     `(("cryptography" ,python-cryptography)
289
       ("dateutil" ,python-dateutil)
290
       ("python-nose" ,python-nose)
291
       ("pytz" ,python-pytz)))
292
    (home-page "")
293
    (synopsis "")
294
    (description "")
295
    (license license:gpl3+)))
296
297
(define-public python-socketio-client
298
  (package
299
    (name "python-socketio-client")
300
    (version "0.7.2")
301
    (source (origin
302
          (method url-fetch)
303
          (uri (pypi-uri "socketIO-client" version))
304
          (sha256
305
           (base32
306
        "1hfjfhyxgql1ndda1bagg8niy8m28byd2r0yq4l7zycwlzxq9kb4"))))
307
    (build-system python-build-system)
308
    (propagated-inputs
309
      `(("websocket-client" ,python-websocket-client)
310
        ("requests" ,python-requests)))
311
    (native-inputs
312
      `(("coverage" ,python-coverage)
313
    ("nose" ,python-nose)))
314
    (arguments '(#:tests? #f)); requires network
315
    (home-page "")
316
    (synopsis "")
317
    (description "")
318
    (license license:gpl3+)))
319
320
(define-public python-argparse
321
  (package
322
    (name "python-argparse")
323
    (version "1.4.0")
324
    (source (origin
325
          (method url-fetch)
326
          (uri (pypi-uri "argparse" version))
327
          (sha256
328
           (base32
329
        "1r6nznp64j68ih1k537wms7h57nvppq0szmwsaf99n71bfjqkc32"))))
330
    (build-system python-build-system)
331
    (home-page "")
332
    (synopsis "")
333
    (description "")
334
    (license license:gpl3+)))
335
336
(define-public python-unittest2-fix
337
  (package
338
    (inherit python-unittest2)
339
    (version "1.1.0")
340
    (source (origin
341
          (method url-fetch)
342
          (uri (pypi-uri "unittest2" version))
343
          (sha256
344
           (base32
345
        "0y855kmx7a8rnf81d3lh5lyxai1908xjp0laf4glwa4c8472m212"))))
346
    (arguments
347
      `(#:phases
348
    (modify-phases %standard-phases
349
      (add-before 'check 'disable-failures
350
        (lambda _
351
          (substitute* "unittest2/test/test_result.py"
352
        (("testGet") "dontTestGet"))
353
          (substitute* "unittest2/test/test_loader.py"
354
        (("test_loadTestsFromNames__relative_malformed_name") "dontTest")
355
        (("test_loadTestsFromName__relative_malformed_name") "dontTest2")))))))
356
    (propagated-inputs
357
      `(("traceback2" ,python-traceback2)
358
    ("six" ,python-six)
359
    ("argparse" ,python-argparse)))))
360
361
(define-public python-funcsigs
362
  (package
363
    (name "python-funcsigs")
364
    (version "1.0.2")
365
    (source (origin
366
          (method url-fetch)
367
          (uri (pypi-uri "funcsigs" version))
368
          (sha256
369
           (base32
370
        "0l4g5818ffyfmfs1a924811azhjj8ax9xd1cffr1mzd3ycn0zfx7"))))
371
    (build-system python-build-system)
372
    (native-inputs
373
      `(("unittest2" ,python-unittest2-fix)))
374
    (home-page "")
375
    (synopsis "")
376
    (description "")
377
    (license license:asl2.0)))
378
379
(define-public python-ripe-atlas-cousteau
380
  (package
381
    (name "python-ripe-atlas-cousteau")
382
    (version "1.4.1")
383
    (source (origin
384
          (method url-fetch)
385
          (uri (pypi-uri "ripe.atlas.cousteau" version))
386
          (sha256
387
           (base32
388
        "1964qllddqqh1sz9psmmb84ahqdy499vavm9wdn0k2v7q6y0vm0p"))))
389
    (build-system python-build-system)
390
    (propagated-inputs
391
      `(("websocket-client" ,python-websocket-client)
392
        ("socketIO-client" ,python-socketio-client)
393
        ("dateutil" ,python-dateutil)
394
        ("jsonschema" ,python-jsonschema)
395
        ("requests" ,python-requests)))
396
    (native-inputs
397
      `(("mock" ,python-mock)
398
        ("nose" ,python-nose)
399
        ("funcsigs" ,python-funcsigs)
400
        ("coverage" ,python-coverage)))
401
    (home-page "")
402
    (synopsis "")
403
    (description "")
404
    (license license:gpl3+)))
405
406
(define-public python-ripe-atlas-tools
407
  (package
408
    (name "python-ripe-atlas-tools")
409
    (version "2.2.3")
410
    (source (origin
411
              (method url-fetch)
412
              (uri (pypi-uri "ripe.atlas.tools" version))
413
              (sha256
414
               (base32
415
                "1afcf56fyvsxb0i15v43804rqnn0xdp33achds84axnd1rl1375g"))))
416
    (build-system python-build-system)
417
    (propagated-inputs
418
     `(("pyopenssl" ,python-pyopenssl)
419
       ("sagan" ,python-ripe-atlas-sagan)
420
       ("cousteau" ,python-ripe-atlas-cousteau)
421
       ("pyaml" ,python-pyaml)
422
       ("ipy" ,python-ipy)
423
       ("tzlocal" ,python-tzlocal)))
424
    (native-inputs
425
     `(("mock" ,python-mock)
426
       ("coverage" ,python-coverage)))
427
    (arguments
428
      `(#:tests? #f; tests can't load dependencies
429
        #:phases
430
        (modify-phases %standard-phases
431
          (add-before 'check 'update-dependency
432
            (lambda _
433
              ;; Change dependency version to match what we have in guix
434
              (substitute* "setup.py"
435
                (("==1.2") "==1.2.2")
436
                (("==1.4") "==1.4.1"))
437
              #t)))))
438
    (home-page "")
439
    (synopsis "")
440
    (description "")
441
    (license license:gpl3+)))
442
443
(define-public transmon
444
  (package
445
    (name "transmon")
446
    (version "0.1")
447
    (source (origin
448
              (method url-fetch)
449
              (uri (pypi-uri "transmon" version))
450
              (sha256
451
               (base32
452
                "1l7lxp4xwymyb1wqhycqg33ry6gza4660k12xkja04kmw4aqv0az"))))
453
    (build-system python-build-system)
454
    (arguments
455
     `(#:tests? #f)); no tests
456
    (propagated-inputs
457
     `(("python-android-stringslib" ,python-android-stringslib)
458
       ("python-polib" ,python-polib)
459
       ("python-pygit2" ,python-pygit2)))
460
    (home-page "https://framagit.org/tyreunom/transmon")
461
    (synopsis "")
462
    (description "")
463
    (license license:agpl3+)))
464
465
(define-public python-neovim
466
  (package
467
    (name "python-neovim")
468
    (version "0.3.2")
469
    (source (origin
470
              (method url-fetch)
471
              (uri (pypi-uri "pynvim" version))
472
              (sha256
473
               (base32
474
                "01dybk4vs452pljn1q3il5z2sd313ki0lgiglc0xmjc6wp290r6g"))))
475
    (build-system python-build-system)
476
    (propagated-inputs
477
     `(("python-greenlet" ,python-greenlet)
478
       ("python-msgpack" ,python-msgpack)))
479
    (arguments
480
     `(#:tests? #f))
481
    (home-page "https://github.com/neovim/pynvim")
482
    (synopsis "")
483
    (description "")
484
    (license license:asl2.0)))
485