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 time)
40
  #:use-module (gnu packages tls)
41
  #:use-module (gnu packages version-control)
42
  #:use-module (gnu packages web)
43
  #:use-module (guix packages)
44
  #:use-module (guix download)
45
  #:use-module (guix git-download)
46
  #:use-module (guix utils)
47
  #:use-module (guix build-system python))
48
49
(define-public python-cooldict
50
  (package
51
    (name "python-cooldict")
52
    (version "1.02")
53
    (source (origin
54
              (method url-fetch)
55
              (uri (pypi-uri "cooldict" version))
56
              (sha256
57
               (base32
58
                "084if0s504576nph0f6glmg3mmvijq7nbnf65hh22gwwdwrjss83"))))
59
    (build-system python-build-system)
60
    (native-inputs
61
     `(("ana" ,python-ana)))
62
    (home-page "https://github.com/zardus/cooldict")
63
    (synopsis "Some useful dict-like structures")
64
    (description "Some useful dict-like structures.")
65
    (license license:bsd-2)))
66
67
(define-public python2-cooldict
68
  (package-with-python2 python-cooldict))
69
 
70
(define-public python-cachetools
71
  (package
72
    (name "python-cachetools")
73
    (version "2.0.1")
74
    (source (origin
75
              (method url-fetch)
76
              (uri (pypi-uri "cachetools" version))
77
              (sha256
78
               (base32
79
                "0pdw2fr29pxlyn1g5fhdrrqbpn0iw062nv716ngdqvdx7hnizq7d"))))
80
    (build-system python-build-system)
81
    (home-page "https://github.com/tkem/cachetools")
82
    (synopsis "Memoizing collections and decorators including lru_cache")
83
    (description "This module provides various memoizing collections and
84
decorators, including variants of the Python 3 Standard Library @code{lru_cache}
85
function decorator.")
86
    (license license:expat)))
87
88
(define-public python2-cachetools
89
  (package-with-python2 python-cachetools))
90
91
(define-public python-bintrees
92
  (package
93
    (name "python-bintrees")
94
    (version "2.0.7")
95
    (source (origin
96
              (method url-fetch)
97
              (uri (pypi-uri "bintrees" version ".zip"))
98
              (sha256
99
               (base32
100
                "0w0js514awl9qwamcr71spi8mmv7q3n4mgrqrnmr9w6f09k5wrv0"))))
101
    (build-system python-build-system)
102
    (native-inputs `(("unzip" ,unzip)))
103
    (home-page "https://github.com/mozman/bintrees")
104
    (synopsis "Provides Binary- RedBlack- and AVL-Trees written in Python and Cython/C")
105
    (description "This package provides Binary- RedBlack- and AVL-Trees written
106
in Python and Cython/C.
107
108
This Classes are much slower than the built-in dict class, but all
109
iterators/generators yielding data in sorted key order. Trees can be uses as
110
drop in replacement for dicts in most cases.")
111
    (license license:expat)))
112
113
(define-public python2-bintrees
114
  (package-with-python2 python-bintrees))
115
 
116
(define-public python2-dpkt
117
  (package
118
    (name "python2-dpkt")
119
    (version "1.9.1")
120
    (source (origin
121
              (method url-fetch)
122
              (uri (pypi-uri "dpkt" version))
123
              (sha256
124
               (base32
125
                "0rr9ygczhxkfb61778jx0cxs0sq46zwlcj5l3wn6xmd3iy3yx9y6"))
126
              (modules '((guix build utils)))
127
              (snippet
128
               '(substitute* "setup.py"
129
                  (("os.system\\('py2dsc-deb ' + sdist_file\\)") "")))))
130
    (build-system python-build-system)
131
    (arguments
132
     `(#:python ,python-2))
133
    (home-page "https://github.com/kbandla/dpkt")
134
    (synopsis "Fast, simple network packet creation / parsing")
135
    (description "Fast, simple packet creation / parsing, with definitions for
136
the basic TCP/IP protocols.")
137
    (license license:bsd-3)))
138
139
;; According to pypi, should work with py3
140
(define-public python2-rpyc
141
  (package
142
    (name "python2-rpyc")
143
    (version "3.4.4")
144
    (source (origin
145
              (method url-fetch)
146
              (uri (pypi-uri "rpyc" version))
147
              (sha256
148
               (base32
149
                "1iw1nkyh8r55xqafl14lp7lih38b5fdqid05s6cp4zd62821v6d8"))))
150
    (build-system python-build-system)
151
    (native-inputs
152
     `(("nose" ,python2-nose)))
153
    (propagated-inputs
154
     `(("plumbum" ,python2-plumbum)
155
       ("progressbar" ,python2-progressbar)))
156
    (arguments
157
     `(#:python ,python-2))
158
    (home-page "https://github.com/tomerfiliba/rpyc")
159
    (synopsis "Remote procedure call for Python")
160
    (description "Remote Python Call is a transparent library for symmetrical
161
remote procedure calls, clustering, and distributed-computing.  RPyC makes use
162
of object-proxying, a technique that employs python's dynamic nature, to
163
overcome the physical boundaries between processes and computers, so that
164
remote objects can be manipulated as if they were local.")
165
    (license license:expat)))
166
167
;; According to pypi, should work with py3
168
(define-public python2-progressbar
169
  (package
170
    (name "python2-progressbar")
171
    (version "2.3")
172
    (source (origin
173
              (method url-fetch)
174
              (uri (pypi-uri "progressbar" version))
175
              (sha256
176
               (base32
177
                "0m0j93yfvbd8pw8cz2vdb9hyk9d0zkkd509k69jrw545jxr8mlxj"))))
178
    (build-system python-build-system)
179
    (arguments
180
     `(#:python ,python-2))
181
    (home-page "https://github.com/niltonvolpato/python-progressbar")
182
    (synopsis "Text progress bar library for Python")
183
    (description
184
      "A text progress bar is typically used to display the progress of a long
185
running operation, providing a visual cue that processing is underway.
186
187
The ProgressBar class manages the current progress, and the format of the line
188
is given by a number of widgets. A widget is an object that may display
189
differently depending on the state of the progress bar. There are three types
190
of widgets:
191
192
@enumerate
193
@item a string, which always shows itself
194
@item a ProgressBarWidget, which may return a different value every time its
195
update method is called
196
@item a ProgressBarWidgetHFill, which is like ProgressBarWidget, except it
197
expands to fill the remaining width of the line.
198
@end enumerate
199
200
The progressbar module is very easy to use, yet very powerful. It will also
201
automatically enable features like auto-resizing when the system supports it.")
202
    (license (list license:lgpl2.1+ license:bsd-3))))
203
204
(define-public python-progressbar2
205
  (package
206
    (name "python-progressbar2")
207
    (version "3.34.3")
208
    (source (origin
209
              (method url-fetch)
210
              (uri (pypi-uri "progressbar2" version))
211
              (sha256
212
               (base32
213
                "1gigwmr60bgvjg2b4w93nww065dc4af8bq40b4hr9n9f54jp3w5x"))))
214
    (build-system python-build-system)
215
    (native-inputs
216
     `(("pytest-runner" ,python-pytest-runner)
217
       ("pytest" ,python-pytest)))
218
    (propagated-inputs
219
     `(("six" ,python-six)
220
       ("utils" ,python-utils)))
221
    (home-page "https://github.com/WoLpH/python-progressbar")
222
    (synopsis "A text progress bar for python")
223
    (description "A text progress bar is typically used to display the progress
224
of a long running operation, providing a visual cue that processing is underway.
225
226
The ProgressBar class manages the current progress, and the format of the line
227
is given by a number of widgets.  A widget is an object that may display
228
differently depending on the state of the progress bar.")
229
    (license license:bsd-2)))
230
231
(define-public python2-progressbar2
232
  (package-with-python2 python-progressbar2))
233
 
234
(define-public python-mulpyplexer
235
  (package
236
    (name "python-mulpyplexer")
237
    (version "0.08")
238
    (source (origin
239
              (method url-fetch)
240
              (uri (pypi-uri "mulpyplexer" version))
241
              (sha256
242
               (base32
243
                "1zn5d1vyhfjp8x9z5mr9gv8m8gmi3s3jv3kqb790xzi1kqi0p4ya"))))
244
    (build-system python-build-system)
245
    (home-page "https://github.com/zardus/mulpyplexer")
246
    (synopsis "Multiplex interactions with lists of python objects")
247
    (description "Mulpyplexer is a piece of code that can multiplex interactions with lists of python objects.")
248
    (license license:bsd-2)))
249
250
(define-public python2-mulpyplexer
251
  (package-with-python2 python-mulpyplexer))
252
253
(define-public python-ana
254
  (package
255
    (name "python-ana")
256
    (version "0")
257
    (source (origin
258
              (method git-fetch)
259
              (uri (git-reference
260
                    (url "https://github.com/zardus/ana.git")
261
                    (commit "6d37cf9288839c5536ed2075f206d8d2a80c5906")))
262
              (sha256
263
               (base32
264
                "15mvylgfzmsj0n62m6r5xpqzp6qp4nmp9r3j93g0f64z894kqk0q"))
265
              (file-name (string-append name "-" version))))
266
    (build-system python-build-system)
267
    (native-inputs
268
     `(("nose" ,python-nose)))
269
    (home-page "https://github.com/zardus/ana")
270
    (synopsis "Provide easy distributed data storage for python objects")
271
    (description "ANA is a project to provide easy distributed data storage for
272
stuff.  It provides every object with a UUID and, when pickled, will first
273
serialize the object's state to a central location and then \"pickle\" the
274
object into just its UUID.  This is really handy when you have to distribute
275
objects in some distributed system, and you'd rather not pickle the whole
276
object every time you need to send it.")
277
    (license license:bsd-2)))
278
279
(define-public python2-ana
280
  (package-with-python2 python-ana))
281
282
(define-public python-plumbum
283
  (package
284
    (name "python-plumbum")
285
    (version "1.6.5")
286
    (source (origin
287
              (method url-fetch)
288
              (uri (pypi-uri "plumbum" version))
289
              (sha256
290
               (base32
291
                "1vjbl9qy9fkl3vwiiwpaafmyxfks2sc3b3dhkp4vdgk2pdcv1ayq"))))
292
    (build-system python-build-system)
293
    (native-inputs
294
     `(("pytest" ,python-pytest)))
295
    (home-page "https://plumbum.readthedocs.io/en/latest")
296
    (synopsis "Shell script-like programs in Python")
297
    (description
298
      "Plumbum (Latin for lead, which was used to create pipes back in the day)
299
is a small yet feature-rich library for shell script-like programs in Python.
300
The motto of the library is “Never write shell scripts again”, and thus it
301
attempts to mimic the shell syntax (“shell combinators”) where it makes sense,
302
while keeping it all Pythonic and cross-platform.")
303
    (license license:expat)))
304
305
(define-public python2-plumbum
306
  (package-with-python2 python-plumbum))
307
308
(define-public python-trollius
309
  (package
310
    (name "python-trollius")
311
    (version "2.1")
312
    (source (origin
313
              (method url-fetch)
314
              (uri (pypi-uri "trollius" version))
315
              (sha256
316
               (base32
317
                "146c60hgcmgjkbf2hmiag52f9i3hka6shwbfybdsmlvqjnfms5nd"))))
318
    (build-system python-build-system)
319
    (home-page "https://github.com/haypo/trollius")
320
    (propagated-inputs
321
     `(("mock" ,python-mock)
322
       ("six" ,python-six)))
323
    (arguments
324
     `(#:tests? #f))
325
    (synopsis "")
326
    (description "")
327
    (license license:asl2.0)))
328
329
(define-public python2-trollius
330
  (package-with-python2 python-trollius))
331
332
(define-public python-neovim
333
  (package
334
    (name "python-neovim")
335
    (version "0.3.2")
336
    (source (origin
337
              (method url-fetch)
338
              (uri (pypi-uri "pynvim" version))
339
              (sha256
340
               (base32
341
                "01dybk4vs452pljn1q3il5z2sd313ki0lgiglc0xmjc6wp290r6g"))))
342
    (build-system python-build-system)
343
    (propagated-inputs
344
     `(("python-greenlet" ,python-greenlet)
345
       ("python-msgpack" ,python-msgpack)))
346
    (arguments
347
     `(#:tests? #f))
348
    (home-page "https://github.com/neovim/pynvim")
349
    (synopsis "")
350
    (description "")
351
    (license license:asl2.0)))
352
353
(define-public python2-neovim
354
  (let ((parent (package-with-python2 python-neovim)))
355
    (package
356
      (inherit parent)
357
      (propagated-inputs
358
       `(("trollius" ,python2-trollius)
359
         ,@(package-propagated-inputs parent))))))
360
361
(define-public python-cymruwhois
362
  (package
363
    (name "python-cymruwhois")
364
    (version "1.6")
365
    (source (origin
366
          (method url-fetch)
367
          (uri (pypi-uri "cymruwhois" version))
368
          (sha256
369
           (base32
370
        "0m7jgpglkjd0lsyw64lfw6qxdm0fg0f54145f79kq4rk1vjqbh5n"))))
371
    (build-system python-build-system)
372
    (native-inputs
373
     `(("python-nose" ,python-nose)))
374
    (home-page "")
375
    (synopsis "")
376
    (description "")
377
    (license license:expat)))
378
379
(define-public python2-cymruwhois
380
  (package-with-python2 python-cymruwhois))
381
382
(define-public python-ripe-atlas-sagan
383
  (package
384
    (name "python-ripe-atlas-sagan")
385
    (version "1.2.2")
386
    (source (origin
387
          (method url-fetch)
388
          (uri (pypi-uri "ripe.atlas.sagan" version))
389
          (sha256
390
           (base32
391
        "1pww7f4kh9cgd9qm7hbnkxg2cvj7mcmwhsan97cl5pd0xqxxnvw3"))))
392
    (build-system python-build-system)
393
    (propagated-inputs
394
     `(("cryptography" ,python-cryptography)
395
       ("dateutil" ,python-dateutil)
396
       ("python-nose" ,python-nose)
397
       ("pytz" ,python-pytz)))
398
    (home-page "")
399
    (synopsis "")
400
    (description "")
401
    (license license:gpl3+)))
402
403
(define-public python2-ripe-atlas-sagan
404
  (package-with-python2 python-ripe-atlas-sagan))
405
406
(define-public python-socketio-client
407
  (package
408
    (name "python-socketio-client")
409
    (version "0.7.2")
410
    (source (origin
411
          (method url-fetch)
412
          (uri (pypi-uri "socketIO-client" version))
413
          (sha256
414
           (base32
415
        "1hfjfhyxgql1ndda1bagg8niy8m28byd2r0yq4l7zycwlzxq9kb4"))))
416
    (build-system python-build-system)
417
    (propagated-inputs
418
      `(("websocket-client" ,python-websocket-client)
419
        ("requests" ,python-requests)))
420
    (native-inputs
421
      `(("coverage" ,python-coverage)
422
    ("nose" ,python-nose)))
423
    (arguments '(#:tests? #f)); requires network
424
    (home-page "")
425
    (synopsis "")
426
    (description "")
427
    (license license:gpl3+)))
428
429
(define-public python2-socketio-client
430
  (package-with-python2 python-socketio-client))
431
432
(define-public python-linecache2
433
  (package
434
    (name "python-linecache2")
435
    (version "1.0.0")
436
    (source (origin
437
          (method url-fetch)
438
          (uri (pypi-uri "linecache2" version))
439
          (sha256
440
           (base32
441
        "0z79g3ds5wk2lvnqw0y2jpakjf32h95bd9zmnvp7dnqhf57gy9jb"))))
442
    (build-system python-build-system)
443
    (arguments '(#:tests? #f)); circular dependency with unittest2
444
    (propagated-inputs
445
      `(("pbr" ,python-pbr)))
446
    (home-page "")
447
    (synopsis "")
448
    (description "")
449
    (license license:gpl3+)))
450
451
(define-public python2-linecache2
452
  (package-with-python2 python-linecache2))
453
454
(define-public python-traceback2
455
  (package
456
    (name "python-traceback2")
457
    (version "1.4.0")
458
    (source (origin
459
          (method url-fetch)
460
          (uri (pypi-uri "traceback2" version))
461
          (sha256
462
           (base32
463
        "0c1h3jas1jp1fdbn9z2mrgn3jj0hw1x3yhnkxp7jw34q15xcdb05"))))
464
    (build-system python-build-system)
465
    (arguments '(#:tests? #f)); circular dependency with unittest2
466
    (propagated-inputs
467
      `(("linecache2" ,python-linecache2)
468
        ("pbr" ,python-pbr)))
469
    (home-page "")
470
    (synopsis "")
471
    (description "")
472
    (license license:gpl3+)))
473
474
(define-public python2-traceback2
475
  (package-with-python2 python-traceback2))
476
477
(define-public python-argparse
478
  (package
479
    (name "python-argparse")
480
    (version "1.4.0")
481
    (source (origin
482
          (method url-fetch)
483
          (uri (pypi-uri "argparse" version))
484
          (sha256
485
           (base32
486
        "1r6nznp64j68ih1k537wms7h57nvppq0szmwsaf99n71bfjqkc32"))))
487
    (build-system python-build-system)
488
    (home-page "")
489
    (synopsis "")
490
    (description "")
491
    (license license:gpl3+)))
492
493
(define-public python2-argparse
494
  (package-with-python2 python-argparse))
495
496
(define-public python-unittest2-fix
497
  (package
498
    (inherit python-unittest2)
499
    (version "1.1.0")
500
    (source (origin
501
          (method url-fetch)
502
          (uri (pypi-uri "unittest2" version))
503
          (sha256
504
           (base32
505
        "0y855kmx7a8rnf81d3lh5lyxai1908xjp0laf4glwa4c8472m212"))))
506
    (arguments
507
      `(#:phases
508
    (modify-phases %standard-phases
509
      (add-before 'check 'disable-failures
510
        (lambda _
511
          (substitute* "unittest2/test/test_result.py"
512
        (("testGet") "dontTestGet"))
513
          (substitute* "unittest2/test/test_loader.py"
514
        (("test_loadTestsFromNames__relative_malformed_name") "dontTest")
515
        (("test_loadTestsFromName__relative_malformed_name") "dontTest2")))))))
516
    (propagated-inputs
517
      `(("traceback2" ,python-traceback2)
518
    ("six" ,python-six)
519
    ("argparse" ,python-argparse)))))
520
521
(define-public python2-unittest2-fix
522
  (package-with-python2 python-unittest2-fix))
523
524
(define-public python-funcsigs
525
  (package
526
    (name "python-funcsigs")
527
    (version "1.0.2")
528
    (source (origin
529
          (method url-fetch)
530
          (uri (pypi-uri "funcsigs" version))
531
          (sha256
532
           (base32
533
        "0l4g5818ffyfmfs1a924811azhjj8ax9xd1cffr1mzd3ycn0zfx7"))))
534
    (build-system python-build-system)
535
    (native-inputs
536
      `(("unittest2" ,python-unittest2-fix)))
537
    (home-page "")
538
    (synopsis "")
539
    (description "")
540
    (license license:asl2.0)))
541
542
(define-public python2-funcsigs
543
  (package-with-python2 python-funcsigs))
544
545
(define-public python-ripe-atlas-cousteau
546
  (package
547
    (name "python-ripe-atlas-cousteau")
548
    (version "1.4.1")
549
    (source (origin
550
          (method url-fetch)
551
          (uri (pypi-uri "ripe.atlas.cousteau" version))
552
          (sha256
553
           (base32
554
        "1964qllddqqh1sz9psmmb84ahqdy499vavm9wdn0k2v7q6y0vm0p"))))
555
    (build-system python-build-system)
556
    (propagated-inputs
557
      `(("websocket-client" ,python-websocket-client)
558
        ("socketIO-client" ,python-socketio-client)
559
        ("dateutil" ,python-dateutil)
560
        ("jsonschema" ,python-jsonschema)
561
        ("requests" ,python-requests)))
562
    (native-inputs
563
      `(("mock" ,python-mock)
564
        ("nose" ,python-nose)
565
        ("funcsigs" ,python-funcsigs)
566
        ("coverage" ,python-coverage)))
567
    (home-page "")
568
    (synopsis "")
569
    (description "")
570
    (license license:gpl3+)))
571
572
(define-public python2-ripe-atlas-cousteau
573
  (package-with-python2 python-ripe-atlas-cousteau))
574
575
(define-public python-ripe-atlas-tools
576
  (package
577
    (name "python-ripe-atlas-tools")
578
    (version "2.2.3")
579
    (source (origin
580
              (method url-fetch)
581
              (uri (pypi-uri "ripe.atlas.tools" version))
582
              (sha256
583
               (base32
584
                "1afcf56fyvsxb0i15v43804rqnn0xdp33achds84axnd1rl1375g"))))
585
    (build-system python-build-system)
586
    (propagated-inputs
587
     `(("pyopenssl" ,python-pyopenssl)
588
       ("sagan" ,python-ripe-atlas-sagan)
589
       ("cousteau" ,python-ripe-atlas-cousteau)
590
       ("pyaml" ,python-pyaml)
591
       ("ipy" ,python-ipy)
592
       ("tzlocal" ,python-tzlocal)))
593
    (native-inputs
594
     `(("mock" ,python-mock)
595
       ("coverage" ,python-coverage)))
596
    (arguments
597
      `(#:tests? #f; tests can't load dependencies
598
        #:phases
599
        (modify-phases %standard-phases
600
          (add-before 'check 'update-dependency
601
            (lambda _
602
              ;; Change dependency version to match what we have in guix
603
              (substitute* "setup.py"
604
                (("==1.2") "==1.2.2")
605
                (("==1.4") "==1.4.1"))
606
              #t)))))
607
    (home-page "")
608
    (synopsis "")
609
    (description "")
610
    (license license:gpl3+)))
611
612
(define-public python2-ripe-atlas-tools
613
  (package-with-python2 python-ripe-atlas-tools))
614
615
(define-public python-web.py
616
  (package
617
    (name "python-web.py")
618
    (version "0.40.dev0")
619
    (source (origin
620
              (method url-fetch)
621
              (uri (pypi-uri "web.py" version))
622
              (sha256
623
               (base32
624
                "18v91c4s683r7a797a8k9p56r1avwplbbcb3l6lc746xgj6zlr6l"))))
625
    (build-system python-build-system)
626
    (home-page "http://webpy.org/")
627
    (synopsis "")
628
    (description "")
629
    (license license:public-domain)))
630
631
(define-public python2-web.py
632
  (package-with-python2 python-web.py))
633
634
(define-public python-bitstring
635
  (package
636
    (name "python-bitstring")
637
    (version "3.1.5")
638
    (source (origin
639
              (method url-fetch)
640
              (uri (pypi-uri "bitstring" version ".zip"))
641
              (sha256
642
               (base32
643
                "1algq30j6rz12b1902bpw7iijx5lhrfqhl80d4ac6xzkrrpshqy1"))))
644
    (build-system python-build-system)
645
    (native-inputs
646
     `(("unzip" ,unzip)))
647
    (home-page "https://github.com/scott-griffiths/bitstring")
648
    (synopsis "Simple construction, analysis and modification of binary data")
649
    (description "Bitstring is a pure Python module designed to help make the
650
creation and analysis of binary data as simple and natural as possible.
651
652
Bitstrings can be constructed from integers (big and little endian), hex, octal,
653
binary, strings or files.  They can be sliced, joined, reversed, inserted into,
654
overwritten, etc.  They can also be read from, searched and replaced, and
655
navigated in, similar to a file or stream.")
656
    (license license:expat)))
657
658
(define-public python2-bitstring
659
  (package-with-python2 python-bitstring))
660
661
(define-public python-android-stringslib
662
  (package
663
    (name "python-android-stringslib")
664
    (version "0.1.1")
665
    (source (origin
666
              (method url-fetch)
667
              (uri (pypi-uri "android-stringslib" version))
668
              (sha256
669
               (base32
670
                "00k0nzjvym984805ikq22fzd81cr23j74lhamd50p2vf4yalw76n"))))
671
    (build-system python-build-system)
672
    (arguments
673
     `(#:tests? #f)); no tests
674
    (native-inputs
675
     `(("python-sphinx" ,python-sphinx)))
676
    (home-page "https://framagit.org/tyreunom/python-android-strings-lib")
677
    (synopsis "")
678
    (description "")
679
    (license license:expat)))
680
681
(define-public transmon
682
  (package
683
    (name "transmon")
684
    (version "0.1")
685
    (source (origin
686
              (method url-fetch)
687
              (uri (pypi-uri "transmon" version))
688
              (sha256
689
               (base32
690
                "1l7lxp4xwymyb1wqhycqg33ry6gza4660k12xkja04kmw4aqv0az"))))
691
    (build-system python-build-system)
692
    (arguments
693
     `(#:tests? #f)); no tests
694
    (propagated-inputs
695
     `(("python-android-stringslib" ,python-android-stringslib)
696
       ("python-polib" ,python-polib)
697
       ("python-pygit2" ,python-pygit2)))
698
    (home-page "https://framagit.org/tyreunom/transmon")
699
    (synopsis "")
700
    (description "")
701
    (license license:agpl3+)))
702
703
(define-public python-pyenchant
704
  (package
705
    (name "python-pyenchant")
706
    (version "2.0.0")
707
    (source (origin
708
              (method url-fetch)
709
              (uri (pypi-uri "pyenchant" version))
710
              (sha256
711
               (base32
712
                "1872ckgdip8nj9rnh167m0gsj5754qfg2hjxzsl1s06f5akwscgw"))))
713
    (build-system python-build-system)
714
    (arguments
715
     `(#:tests? #f; FIXME: Dictionary for language 'en_US' could not be found
716
       #:phases
717
       (modify-phases %standard-phases
718
         (add-before 'build 'setlib
719
           (lambda* (#:key inputs #:allow-other-keys)
720
             (substitute* "enchant/_enchant.py"
721
               (("/opt/local/lib/libenchant.dylib\"")
722
                (string-append "/opt/local/lib/libenchant.dylib\"\n"
723
                               "    yield \"" (assoc-ref inputs "enchant")
724
                               "/lib/libenchant-2.so\""))))))))
725
             ;(setenv "PYENCHANT_LIBRARY_PATH"
726
             ;        (string-append (assoc-ref inputs "enchant") "/lib/libenchant.so")))))))
727
    (propagated-inputs
728
     `(("enchant" ,enchant)
729
       ("hunspell" ,hunspell)))
730
    (native-inputs
731
     `(("hunspell-dict-en-us" ,hunspell-dict-en-us)))
732
    (home-page "")
733
    (synopsis "")
734
    (description "")
735
    (license license:lgpl2.1+)))
736
737
(define-public offlate
738
  (package
739
    (name "offlate")
740
    (version "0.1.dev")
741
    (source (origin
742
              (method git-fetch)
743
              (uri (git-reference
744
                     (url "https://framagit.org/tyreunom/offlate.git")
745
                     (commit "28fa87a163aa40d6770390792ce17e583618fb80")))
746
              (sha256
747
               (base32
748
                "0hcg7fiwa51jfm8jgz65vjakid38kfsrrc805f4imldmv9j9gf3a"))))
749
    (build-system python-build-system)
750
    (arguments
751
     `(#:tests? #f; no tests
752
       #:phases
753
       (modify-phases %standard-phases
754
         (add-before 'build 'generate-translations
755
           (lambda _
756
             (invoke "make" "update-langs")
757
             #t)))))
758
    (propagated-inputs
759
     `(("python-android-stringslib" ,python-android-stringslib)
760
       ("python-dateutil" ,python-dateutil)
761
       ("python-lxml" ,python-lxml)
762
       ("python-pyenchant" ,python-pyenchant)
763
       ("python-ruamel.yaml" ,python-ruamel.yaml)
764
       ("python-polib" ,python-polib)
765
       ("python-pyqt" ,python-pyqt)
766
       ("python-requests" ,python-requests)))
767
    (native-inputs
768
     `(("qt" ,qt)))
769
    (home-page "https://framagit.org/tyreunom/offlate")
770
    (synopsis "")
771
    (description "")
772
    (license license:gpl3+)))
773
774
(define-public python-zope.interface
775
  (package
776
    (name "python-zope.interface")
777
    (version "4.5.0")
778
    (source
779
      (origin
780
        (method url-fetch)
781
        (uri (pypi-uri "zope.interface" version))
782
        (sha256
783
          (base32
784
            "0k67m60ij06wkg82n15qgyn96waf4pmrkhv0njpkfzpmv5q89hsp"))))
785
    (build-system python-build-system)
786
    (arguments
787
     `(#:tests? #f))
788
    (home-page
789
      "https://github.com/zopefoundation/zope.interface")
790
    (synopsis "Interfaces for Python")
791
    (description "Interfaces for Python")
792
    (license #f)))
793
794
(define-public python-hkdf
795
  (package
796
    (name "python-hkdf")
797
    (version "0.0.3")
798
    (source (origin
799
              (method url-fetch)
800
              (uri (pypi-uri "hkdf" version))
801
              (sha256
802
               (base32
803
                "1jhxk5vhxmxxjp3zj526ry521v9inzzl8jqaaf0ma65w6k332ak2"))))
804
    (build-system python-build-system)
805
    (native-inputs
806
     `(("python-nose" ,python-nose)))
807
    (home-page
808
      "https://github.com/casebeer/python-hkdf")
809
    (synopsis
810
      "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)")
811
    (description
812
      "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)")
813
    (license #f)))
814
815
(define-public python-geoip
816
  (package
817
    (name "python-geoip")
818
    (version "1.3.2")
819
    (source (origin
820
              (method url-fetch)
821
              (uri (pypi-uri "geoip" version))
822
              (sha256
823
               (base32
824
                "1rphxf3vrn8wywjgr397f49s0s22m83lpwcq45lm0h2p45mdm458"))))
825
    (build-system python-build-system)
826
    (home-page "http://www.maxmind.com/")
827
    (synopsis
828
      "MaxMind GeoIP Legacy Database - Python API")
829
    (description
830
      "MaxMind GeoIP Legacy Database - Python API")
831
    (license #f)))
832
833
(define-public python-hyperlink
834
  (package
835
    (name "python-hyperlink")
836
    (version "18.0.0")
837
    (source
838
      (origin
839
        (method url-fetch)
840
        (uri (pypi-uri "hyperlink" version))
841
        (sha256
842
          (base32
843
            "01m3y19arfqljksngy8grc966zdb4larysralb8cajzi8kvly6zh"))))
844
    (build-system python-build-system)
845
    (propagated-inputs
846
      `(("python-idna" ,python-idna)))
847
    (home-page
848
      "https://github.com/python-hyper/hyperlink")
849
    (synopsis
850
      "A featureful, immutable, and correct URL for Python.")
851
    (description
852
      "A featureful, immutable, and correct URL for Python.")
853
    (license license:expat)))
854
855
(define-public python-twisted-for-wormhole
856
  (package
857
    (inherit python-twisted)
858
    (name "python-twisted")
859
    (version "18.9.0")
860
    (source (origin
861
              (method url-fetch)
862
              (uri (pypi-uri "Twisted" version ".tar.bz2"))
863
              (sha256
864
               (base32
865
                "15d3gmkrg8g27hyd6ihawv2y2dv5gnpyg67wy9npgbl4pz3f4jr9"))))
866
    (propagated-inputs
867
     `(("python-pyhamcrest" ,python-pyhamcrest)
868
       ("python-service-identity" ,python-service-identity)
869
       ("python-hyperlink" ,python-hyperlink)
870
       ,@(package-propagated-inputs python-twisted)))))
871
872
(define-public python-txaio
873
  (package
874
    (name "python-txaio")
875
    (version "18.8.1")
876
    (source
877
      (origin
878
        (method url-fetch)
879
        (uri (pypi-uri "txaio" version))
880
        (sha256
881
          (base32
882
            "1zmpdph6zddgrnkkcykh6qk5s46l7s5mzfqrh82m4b5iffn61qv7"))))
883
    (build-system python-build-system)
884
    (propagated-inputs
885
      `(;("python-[all]" ,#{python-\x5b;all\x5d;}#)
886
        ;("python-[asyncio]"
887
        ; ,#{python-\x5b;asyncio\x5d;}#)
888
        ;("python-[dev]" ,#{python-\x5b;dev\x5d;}#)
889
        ;("python-[twisted]"
890
        ; ,#{python-\x5b;twisted\x5d;}#)
891
        ("python-mock" ,python-mock)
892
        ("python-pep8" ,python-pep8)
893
        ("python-pyenchant" ,python-pyenchant)
894
        ("python-pytest" ,python-pytest)
895
        ("python-pytest-cov" ,python-pytest-cov)
896
        ("python-six" ,python-six)
897
        ("python-sphinx" ,python-sphinx)
898
        ;("python-sphinx-rtd-theme"
899
        ; ,python-sphinx-rtd-theme)
900
        ;("python-sphinxcontrib-spelling"
901
        ; ,python-sphinxcontrib-spelling)
902
        ("python-tox" ,python-tox)
903
        ("python-twine" ,python-twine)
904
        ("python-twisted" ,python-twisted)
905
        ("python-wheel" ,python-wheel)
906
        ("python-zope.interface" ,python-zope.interface)))
907
    (home-page "https://github.com/crossbario/txaio")
908
    (synopsis
909
      "Compatibility API between asyncio/Twisted/Trollius")
910
    (description
911
      "Compatibility API between asyncio/Twisted/Trollius")
912
    (license #f)))
913
914
(define-public python-txtorcon
915
  (package
916
    (name "python-txtorcon")
917
    (version "18.3.0")
918
    (source (origin
919
              (method url-fetch)
920
              (uri (pypi-uri "txtorcon" version))
921
              (sha256
922
               (base32
923
                "1c7qfpr1zz34whz66lk4xpwdn7d5jqk6ccgas5n54li479mra0an"))))
924
    (build-system python-build-system)
925
    (arguments
926
     `(#:tests? #f))
927
    (propagated-inputs
928
     `(;("python-codecov" ,python-codecov)
929
       ;("python-coverage" ,python-coverage)
930
       ;("python-coveralls" ,python-coveralls)
931
       ;("python-cuvner" ,python-cuvner)
932
       ;("python-geoip" ,python-geoip)
933
       ("python-ipaddress" ,python-ipaddress)
934
       ("python-mock" ,python-mock)
935
       ("python-pycodestyle" ,python-pycodestyle)
936
       ("python-pyflakes" ,python-pyflakes)
937
       ;("python-readme-renderer" ,python-readme-renderer)
938
       ;("python-repoze.sphinx.autointerface" ,python-repoze.sphinx.autointerface)
939
       ("python-setuptools" ,python-setuptools)
940
       ("python-sphinx" ,python-sphinx)
941
       ("python-tox" ,python-tox)
942
       ("python-twine" ,python-twine)
943
       ("python-wheel" ,python-wheel)))
944
    (home-page "")
945
    (synopsis
946
      "Twisted-based Tor controller client, with state-tracking and configuration abstractions. https://txtorcon.readthedocs.org https://github.com/meejah/txtorcon")
947
    (description
948
      "Twisted-based Tor controller client, with state-tracking and configuration abstractions. https://txtorcon.readthedocs.org https://github.com/meejah/txtorcon")
949
    (license #f)))
950
951
(define-public python-spake2
952
  (package
953
    (name "python-spake2")
954
    (version "0.8")
955
    (source (origin
956
              (method url-fetch)
957
              (uri (pypi-uri "spake2" version))
958
              (sha256
959
               (base32
960
                "1x16r7lrbklvfzbacb66qv9iiih6liq1y612dqh2chgf555n2yn1"))))
961
    (build-system python-build-system)
962
    (propagated-inputs
963
     `(("python-hkdf" ,python-hkdf)))
964
    (home-page
965
      "https://github.com/warner/python-spake2")
966
    (synopsis
967
      "SPAKE2 password-authenticated key exchange (pure python)")
968
    (description
969
      "SPAKE2 password-authenticated key exchange (pure python)")
970
    (license license:expat)))
971
972
(define-public python-humanize
973
  (package
974
    (name "python-humanize")
975
    (version "0.5.1")
976
    (source (origin
977
              (method url-fetch)
978
              (uri (pypi-uri "humanize" version))
979
              (sha256
980
               (base32
981
                "06dvhm3k8lf2rayn1gxbd46y0fy1db26m3h9vrq7rb1ib08mfgx4"))))
982
    (build-system python-build-system)
983
    (arguments
984
     `(#:tests? #f))
985
    (home-page "http://github.com/jmoiron/humanize")
986
    (synopsis "python humanize utilities")
987
    (description "python humanize utilities")
988
    (license license:expat)))
989
990
(define-public python-service-identity
991
  (package
992
    (name "python-service-identity")
993
    (version "17.0.0")
994
    (source
995
      (origin
996
        (method url-fetch)
997
        (uri (pypi-uri "service_identity" version))
998
        (sha256
999
          (base32
1000
            "1aq24cn3nnsjr9g797dayhx4g653h6bd41ksqhidzq0rvarzn0a0"))))
1001
    (build-system python-build-system)
1002
    (propagated-inputs
1003
      `(("python-attrs" ,python-attrs)
1004
        ("python-pyasn1" ,python-pyasn1)
1005
        ("python-pyasn1-modules" ,python-pyasn1-modules)
1006
        ("python-pyopenssl" ,python-pyopenssl)))
1007
    (home-page
1008
      "https://service-identity.readthedocs.io/")
1009
    (synopsis
1010
      "Service identity verification for pyOpenSSL.")
1011
    (description
1012
      "Service identity verification for pyOpenSSL.")
1013
    (license license:expat)))
1014
1015
(define-public python-pyhamcrest
1016
  (package
1017
    (name "python-pyhamcrest")
1018
    (version "1.9.0")
1019
    (source
1020
      (origin
1021
        (method url-fetch)
1022
        (uri (pypi-uri "pyhamcrest" version))
1023
        (sha256
1024
          (base32
1025
            "1kan3nyxs1dz333s7mfvjj47l8j6qxd1imyf2kg8jzm57njs1ylg"))))
1026
    (build-system python-build-system)
1027
    (arguments
1028
     `(#:tests? #f))
1029
    (propagated-inputs
1030
      `(("python-setuptools" ,python-setuptools)
1031
        ("python-six" ,python-six)))
1032
    (home-page
1033
      "https://github.com/hamcrest/PyHamcrest")
1034
    (synopsis
1035
      "Hamcrest framework for matcher objects")
1036
    (description
1037
      "Hamcrest framework for matcher objects")
1038
    (license #f)))
1039
1040
(define-public python-autobahn
1041
  (package
1042
    (name "python-autobahn")
1043
    (version "18.9.2")
1044
    (source (origin
1045
              (method url-fetch)
1046
              (uri (pypi-uri "autobahn" version))
1047
              (sha256
1048
               (base32
1049
                "1mhj64rsnbi6rc0hskmllw280rvd99z045p6dq8h0mw60r7r52yr"))))
1050
    (build-system python-build-system)
1051
    (arguments
1052
     `(#:tests? #f))
1053
    (propagated-inputs
1054
     `(;("python-[accelerate]"
1055
     ;,#{python-\x5b;accelerate\x5d;}#)
1056
     ;("python-[all]" ,#{python-\x5b;all\x5d;}#)
1057
     ;("python-[asyncio]"
1058
     ;,#{python-\x5b;asyncio\x5d;}#)
1059
     ;("python-[compress]"
1060
     ;,#{python-\x5b;compress\x5d;}#)
1061
     ;("python-[dev]" ,#{python-\x5b;dev\x5d;}#)
1062
     ;("python-[encryption]"
1063
     ;,#{python-\x5b;encryption\x5d;}#)
1064
     ;("python-[nvx]" ,#{python-\x5b;nvx\x5d;}#)
1065
     ;("python-[scram]" ,#{python-\x5b;scram\x5d;}#)
1066
     ;("python-[serialization]"
1067
     ;,#{python-\x5b;serialization\x5d;}#)
1068
     ;("python-[twisted]"
1069
     ;,#{python-\x5b;twisted\x5d;}#)
1070
     ;("python-argon2-cffi" ,python-argon2-cffi)
1071
     ;("python-awscli" ,python-awscli)
1072
     ("python-cbor" ,python-cbor)
1073
     ("python-cffi" ,python-cffi)
1074
     ("python-flake8" ,python-flake8)
1075
     ("python-lz4" ,python-lz4)
1076
     ("python-mock" ,python-mock)
1077
     ("python-passlib" ,python-passlib)
1078
     ;("python-pep8-naming" ,python-pep8-naming)
1079
     ("python-py-ubjson" ,python-py-ubjson)
1080
     ("python-pyenchant" ,python-pyenchant)
1081
     ("python-pyflakes" ,python-pyflakes)
1082
     ("python-pynacl" ,python-pynacl)
1083
     ("python-pyopenssl" ,python-pyopenssl)
1084
     ("python-pyqrcode" ,python-pyqrcode)
1085
     ;("python-pytest" ,python-pytest)
1086
     ;("python-pytest-aiohttp" ,python-pytest-aiohttp)
1087
     ;("python-pytest-asyncio" ,python-pytest-asyncio)
1088
     ;("python-pytrie" ,python-pytrie)
1089
     ;("python-qualname" ,python-qualname)
1090
     ("python-service-identity" ,python-service-identity)
1091
     ("python-six" ,python-six)
1092
     ;("python-snappy" ,python-snappy)
1093
     ("python-sphinx" ,python-sphinx)
1094
     ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
1095
     ;("python-sphinxcontrib-spelling" ,python-sphinxcontrib-spelling)
1096
     ("python-twine" ,python-twine)
1097
     ("python-twisted" ,python-twisted-for-wormhole)
1098
     ("python-txaio" ,python-txaio)
1099
     ;("python-u-msgpack-python" ,python-u-msgpack-python)
1100
     ("python-wheel" ,python-wheel)
1101
     ;("python-wsaccel" ,python-wsaccel)
1102
     ("python-zope.interface" ,python-zope.interface)))
1103
    (home-page "http://crossbar.io/autobahn")
1104
    (synopsis
1105
      "WebSocket client & server library, WAMP real-time framework")
1106
    (description
1107
      "WebSocket client & server library, WAMP real-time framework")
1108
    (license #f)))
1109
1110
(define-public magic-wormhole
1111
  (package
1112
    (name "magic-wormhole")
1113
    (version "0.10.5")
1114
    (source
1115
      (origin
1116
        (method url-fetch)
1117
        (uri (pypi-uri "magic-wormhole" version))
1118
        (sha256
1119
          (base32
1120
            "1vhp97pdnqb8nd08pk9fn7mk5jwihdfcsqilxkg3brai6lgyln4m"))))
1121
    (build-system python-build-system)
1122
    (arguments
1123
     `(#:tests? #f))
1124
    (propagated-inputs
1125
      `(("python-attrs" ,python-attrs)
1126
        ("python-autobahn" ,python-autobahn)
1127
        ("python-automat" ,python-automat)
1128
        ("python-click" ,python-click)
1129
        ("python-hkdf" ,python-hkdf)
1130
        ("python-humanize" ,python-humanize)
1131
        ("python-ipaddress" ,python-ipaddress)
1132
        ("python-pynacl" ,python-pynacl)
1133
        ("python-six" ,python-six)
1134
        ("python-spake2" ,python-spake2)
1135
        ("python-tqdm" ,python-tqdm)
1136
        ("python-twisted" ,python-twisted-for-wormhole)
1137
        ("python-txtorcon" ,python-txtorcon)))
1138
    (home-page
1139
      "https://github.com/warner/magic-wormhole")
1140
    (synopsis
1141
      "Securely transfer data between computers")
1142
    (description
1143
      "Securely transfer data between computers")
1144
    (license license:expat)))
1145
1146
(define-public python-pathlib2
1147
  (package
1148
    (name "python-pathlib2")
1149
    (version "2.3.3")
1150
    (source
1151
      (origin
1152
        (method url-fetch)
1153
        (uri (pypi-uri "pathlib2" version))
1154
        (sha256
1155
          (base32
1156
            "0hpp92vqqgcd8h92msm9slv161b1q160igjwnkf2ag6cx0c96695"))))
1157
    (build-system python-build-system)
1158
    (propagated-inputs
1159
      `(("python-scandir" ,python-scandir)))
1160
    (native-inputs
1161
      `(("python-six" ,python-six)))
1162
    (home-page
1163
      "https://pypi.python.org/pypi/pathlib2/")
1164
    (synopsis "Object-oriented filesystem paths")
1165
    (description "Object-oriented filesystem paths")
1166
    (license license:expat)))
1167
1168
(define-public python-check-manifest
1169
  (package
1170
    (name "python-check-manifest")
1171
    (version "0.37")
1172
    (source
1173
      (origin
1174
        (method url-fetch)
1175
        (uri (pypi-uri "check-manifest" version))
1176
        (sha256
1177
          (base32
1178
            "0lk45ifdv2cpkl6ayfyix7jwmnxa1rha7xvb0ih5999k115wzqs4"))))
1179
    (build-system python-build-system)
1180
    (native-inputs
1181
      `(("python-mock" ,python-mock)
1182
        ("git" ,git)))
1183
    (home-page
1184
      "https://github.com/mgedmin/check-manifest")
1185
    (synopsis
1186
      "Check MANIFEST.in in a Python source package for completeness")
1187
    (description
1188
      "Check MANIFEST.in in a Python source package for completeness")
1189
    (license license:expat)))
1190
1191
(define-public python-codacy-coverage
1192
  (package
1193
    (name "python-codacy-coverage")
1194
    (version "1.3.11")
1195
    (source
1196
      (origin
1197
        (method url-fetch)
1198
        (uri (pypi-uri "codacy-coverage" version))
1199
        (sha256
1200
          (base32
1201
            "1g0c0w56xdkmqb8slacyw5qhzrkp814ng3ddh2lkiij58y9m2imr"))))
1202
    (build-system python-build-system)
1203
    (arguments
1204
     ;; No tests
1205
     `(#:tests? #f))
1206
    (propagated-inputs
1207
      `(("python-check-manifest" ,python-check-manifest)))
1208
    (home-page
1209
      "https://github.com/codacy/python-codacy-coverage")
1210
    (synopsis "Codacy coverage reporter for Python")
1211
    (description
1212
      "Codacy coverage reporter for Python")
1213
    (license license:expat)))
1214
1215
(define-public python-translation-finder
1216
  (package
1217
    (name "python-translation-finder")
1218
    (version "1.0")
1219
    (source
1220
      (origin
1221
        (method url-fetch)
1222
        (uri (pypi-uri "translation-finder" version))
1223
        (sha256
1224
          (base32
1225
            "1bldziyp0kn93g9gg0wjibpcjwg6xcp8zqwch7bnplg0zwxs1y8b"))))
1226
    (build-system python-build-system)
1227
    (propagated-inputs
1228
      `(("python-chardet" ,python-chardet)
1229
        ("python-pathlib2;" ,python-pathlib2)
1230
        ("python-six" ,python-six)))
1231
    (native-inputs
1232
     `(("python-codecov" ,python-codecov)
1233
       ("python-codacy-coverage" ,python-codacy-coverage)
1234
       ("python-pytest-cov" ,python-pytest-cov)
1235
       ("python-pytest-runner" ,python-pytest-runner)
1236
       ("python-twine" ,python-twine)))
1237
    (home-page "https://weblate.org/")
1238
    (synopsis
1239
      "A translation file finder for Weblate, translation tool with tight version control integration")
1240
    (description
1241
      "A translation file finder for Weblate, translation tool with tight version control integration")
1242
    (license license:gpl3+)))
1243
1244
(define-public python-translate-toolkit
1245
  (package
1246
    (name "python-translate-toolkit")
1247
    (version "2.3.1")
1248
    (source
1249
      (origin
1250
        (method url-fetch)
1251
        (uri (pypi-uri "translate-toolkit" version))
1252
        (sha256
1253
          (base32
1254
            "1fsfhqyhdwjbb0ljmkzaibjr3s7q7ipg776rwk14l9c7chvnn58x"))))
1255
    (build-system python-build-system)
1256
    (home-page "http://toolkit.translatehouse.org/")
1257
    (arguments
1258
     ;; Require old versions
1259
     `(#:tests? #f))
1260
    (synopsis
1261
      "Tools and API for translation and localization engineering.")
1262
    (description
1263
      "Tools and API for translation and localization engineering.")
1264
    (license license:gpl2+)))
1265