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