guix-more/more/packages/python.scm

python.scm

1
;;; GNU Guix --- Functional package management for GNU
2
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
3
;;;
4
;;; This file is part of GNU Guix.
5
;;;
6
;;; GNU Guix is free software; you can redistribute it and/or modify it
7
;;; under the terms of the GNU General Public License as published by
8
;;; the Free Software Foundation; either version 3 of the License, or (at
9
;;; your option) any later version.
10
;;;
11
;;; GNU Guix is distributed in the hope that it will be useful, but
12
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
;;; GNU General Public License for more details.
15
;;;
16
;;; You should have received a copy of the GNU General Public License
17
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
18
19
(define-module (more packages python)
20
  #:use-module ((guix licenses) #:prefix license:)
21
  #:use-module (gnu packages)
22
  #:use-module (gnu packages audio)
23
  #:use-module (gnu packages check)
24
  #:use-module (gnu packages compression)
25
  #:use-module (gnu packages databases)
26
  #:use-module (gnu packages maths)
27
  #:use-module (gnu packages networking)
28
  #:use-module (gnu packages python)
29
  #:use-module (gnu packages python-crypto)
30
  #:use-module (gnu packages python-web)
31
  #:use-module (gnu packages time)
32
  #:use-module (gnu packages tls)
33
  #:use-module (guix packages)
34
  #:use-module (guix download)
35
  #:use-module (guix git-download)
36
  #:use-module (guix utils)
37
  #:use-module (guix build-system python))
38
39
(define-public python-cooldict
40
  (package
41
    (name "python-cooldict")
42
    (version "1.02")
43
    (source (origin
44
              (method url-fetch)
45
              (uri (pypi-uri "cooldict" version))
46
              (sha256
47
               (base32
48
                "084if0s504576nph0f6glmg3mmvijq7nbnf65hh22gwwdwrjss83"))))
49
    (build-system python-build-system)
50
    (native-inputs
51
     `(("ana" ,python-ana)))
52
    (home-page "https://github.com/zardus/cooldict")
53
    (synopsis "Some useful dict-like structures")
54
    (description "Some useful dict-like structures.")
55
    (license license:bsd-2)))
56
57
(define-public python2-cooldict
58
  (package-with-python2 python-cooldict))
59
 
60
(define-public python-cachetools
61
  (package
62
    (name "python-cachetools")
63
    (version "2.0.1")
64
    (source (origin
65
              (method url-fetch)
66
              (uri (pypi-uri "cachetools" version))
67
              (sha256
68
               (base32
69
                "0pdw2fr29pxlyn1g5fhdrrqbpn0iw062nv716ngdqvdx7hnizq7d"))))
70
    (build-system python-build-system)
71
    (home-page "https://github.com/tkem/cachetools")
72
    (synopsis "Memoizing collections and decorators including lru_cache")
73
    (description "This module provides various memoizing collections and
74
decorators, including variants of the Python 3 Standard Library @code{lru_cache}
75
function decorator.")
76
    (license license:expat)))
77
78
(define-public python2-cachetools
79
  (package-with-python2 python-cachetools))
80
81
(define-public python-bintrees
82
  (package
83
    (name "python-bintrees")
84
    (version "2.0.7")
85
    (source (origin
86
              (method url-fetch)
87
              (uri (pypi-uri "bintrees" version ".zip"))
88
              (sha256
89
               (base32
90
                "0w0js514awl9qwamcr71spi8mmv7q3n4mgrqrnmr9w6f09k5wrv0"))))
91
    (build-system python-build-system)
92
    (native-inputs `(("unzip" ,unzip)))
93
    (home-page "https://github.com/mozman/bintrees")
94
    (synopsis "Provides Binary- RedBlack- and AVL-Trees written in Python and Cython/C")
95
    (description "This package provides Binary- RedBlack- and AVL-Trees written
96
in Python and Cython/C.
97
98
This Classes are much slower than the built-in dict class, but all
99
iterators/generators yielding data in sorted key order. Trees can be uses as
100
drop in replacement for dicts in most cases.")
101
    (license license:expat)))
102
103
(define-public python2-bintrees
104
  (package-with-python2 python-bintrees))
105
 
106
(define-public python2-dpkt
107
  (package
108
    (name "python2-dpkt")
109
    (version "1.9.1")
110
    (source (origin
111
              (method url-fetch)
112
              (uri (pypi-uri "dpkt" version))
113
              (sha256
114
               (base32
115
                "0rr9ygczhxkfb61778jx0cxs0sq46zwlcj5l3wn6xmd3iy3yx9y6"))
116
              (modules '((guix build utils)))
117
              (snippet
118
               '(substitute* "setup.py"
119
                  (("os.system\\('py2dsc-deb ' + sdist_file\\)") "")))))
120
    (build-system python-build-system)
121
    (arguments
122
     `(#:python ,python-2))
123
    (home-page "https://github.com/kbandla/dpkt")
124
    (synopsis "Fast, simple network packet creation / parsing")
125
    (description "Fast, simple packet creation / parsing, with definitions for
126
the basic TCP/IP protocols.")
127
    (license license:bsd-3)))
128
129
;; According to pypi, should work with py3
130
(define-public python2-rpyc
131
  (package
132
    (name "python2-rpyc")
133
    (version "3.4.4")
134
    (source (origin
135
              (method url-fetch)
136
              (uri (pypi-uri "rpyc" version))
137
              (sha256
138
               (base32
139
                "1iw1nkyh8r55xqafl14lp7lih38b5fdqid05s6cp4zd62821v6d8"))))
140
    (build-system python-build-system)
141
    (native-inputs
142
     `(("nose" ,python2-nose)))
143
    (propagated-inputs
144
     `(("plumbum" ,python2-plumbum)
145
       ("progressbar" ,python2-progressbar)))
146
    (arguments
147
     `(#:python ,python-2))
148
    (home-page "https://github.com/tomerfiliba/rpyc")
149
    (synopsis "Remote procedure call for Python")
150
    (description "Remote Python Call is a transparent library for symmetrical
151
remote procedure calls, clustering, and distributed-computing.  RPyC makes use
152
of object-proxying, a technique that employs python's dynamic nature, to
153
overcome the physical boundaries between processes and computers, so that
154
remote objects can be manipulated as if they were local.")
155
    (license license:expat)))
156
157
;; According to pypi, should work with py3
158
(define-public python2-progressbar
159
  (package
160
    (name "python2-progressbar")
161
    (version "2.3")
162
    (source (origin
163
              (method url-fetch)
164
              (uri (pypi-uri "progressbar" version))
165
              (sha256
166
               (base32
167
                "0m0j93yfvbd8pw8cz2vdb9hyk9d0zkkd509k69jrw545jxr8mlxj"))))
168
    (build-system python-build-system)
169
    (arguments
170
     `(#:python ,python-2))
171
    (home-page "https://github.com/niltonvolpato/python-progressbar")
172
    (synopsis "Text progress bar library for Python")
173
    (description
174
      "A text progress bar is typically used to display the progress of a long
175
running operation, providing a visual cue that processing is underway.
176
177
The ProgressBar class manages the current progress, and the format of the line
178
is given by a number of widgets. A widget is an object that may display
179
differently depending on the state of the progress bar. There are three types
180
of widgets:
181
182
@enumerate
183
@item a string, which always shows itself
184
@item a ProgressBarWidget, which may return a different value every time its
185
update method is called
186
@item a ProgressBarWidgetHFill, which is like ProgressBarWidget, except it
187
expands to fill the remaining width of the line.
188
@end enumerate
189
190
The progressbar module is very easy to use, yet very powerful. It will also
191
automatically enable features like auto-resizing when the system supports it.")
192
    (license (list license:lgpl2.1+ license:bsd-3))))
193
194
(define-public python-progressbar2
195
  (package
196
    (name "python-progressbar2")
197
    (version "3.34.3")
198
    (source (origin
199
              (method url-fetch)
200
              (uri (pypi-uri "progressbar2" version))
201
              (sha256
202
               (base32
203
                "1gigwmr60bgvjg2b4w93nww065dc4af8bq40b4hr9n9f54jp3w5x"))))
204
    (build-system python-build-system)
205
    (native-inputs
206
     `(("pytest-runner" ,python-pytest-runner)
207
       ("pytest" ,python-pytest)))
208
    (propagated-inputs
209
     `(("six" ,python-six)
210
       ("utils" ,python-utils)))
211
    (home-page "https://github.com/WoLpH/python-progressbar")
212
    (synopsis "A text progress bar for python")
213
    (description "A text progress bar is typically used to display the progress
214
of a long running operation, providing a visual cue that processing is underway.
215
216
The ProgressBar class manages the current progress, and the format of the line
217
is given by a number of widgets.  A widget is an object that may display
218
differently depending on the state of the progress bar.")
219
    (license license:bsd-2)))
220
221
(define-public python2-progressbar2
222
  (package-with-python2 python-progressbar2))
223
 
224
(define-public python-mulpyplexer
225
  (package
226
    (name "python-mulpyplexer")
227
    (version "0.08")
228
    (source (origin
229
              (method url-fetch)
230
              (uri (pypi-uri "mulpyplexer" version))
231
              (sha256
232
               (base32
233
                "1zn5d1vyhfjp8x9z5mr9gv8m8gmi3s3jv3kqb790xzi1kqi0p4ya"))))
234
    (build-system python-build-system)
235
    (home-page "https://github.com/zardus/mulpyplexer")
236
    (synopsis "Multiplex interactions with lists of python objects")
237
    (description "Mulpyplexer is a piece of code that can multiplex interactions with lists of python objects.")
238
    (license license:bsd-2)))
239
240
(define-public python2-mulpyplexer
241
  (package-with-python2 python-mulpyplexer))
242
243
(define-public python-ana
244
  (package
245
    (name "python-ana")
246
    (version "0")
247
    (source (origin
248
              (method git-fetch)
249
              (uri (git-reference
250
                    (url "https://github.com/zardus/ana.git")
251
                    (commit "6d37cf9288839c5536ed2075f206d8d2a80c5906")))
252
              (sha256
253
               (base32
254
                "15mvylgfzmsj0n62m6r5xpqzp6qp4nmp9r3j93g0f64z894kqk0q"))
255
              (file-name (string-append name "-" version))))
256
    (build-system python-build-system)
257
    (native-inputs
258
     `(("nose" ,python-nose)))
259
    (home-page "https://github.com/zardus/ana")
260
    (synopsis "Provide easy distributed data storage for python objects")
261
    (description "ANA is a project to provide easy distributed data storage for
262
stuff.  It provides every object with a UUID and, when pickled, will first
263
serialize the object's state to a central location and then \"pickle\" the
264
object into just its UUID.  This is really handy when you have to distribute
265
objects in some distributed system, and you'd rather not pickle the whole
266
object every time you need to send it.")
267
    (license license:bsd-2)))
268
269
(define-public python2-ana
270
  (package-with-python2 python-ana))
271
272
(define-public python-plumbum
273
  (package
274
    (name "python-plumbum")
275
    (version "1.6.5")
276
    (source (origin
277
              (method url-fetch)
278
              (uri (pypi-uri "plumbum" version))
279
              (sha256
280
               (base32
281
                "1vjbl9qy9fkl3vwiiwpaafmyxfks2sc3b3dhkp4vdgk2pdcv1ayq"))))
282
    (build-system python-build-system)
283
    (native-inputs
284
     `(("pytest" ,python-pytest)))
285
    (home-page "https://plumbum.readthedocs.io/en/latest")
286
    (synopsis "Shell script-like programs in Python")
287
    (description
288
      "Plumbum (Latin for lead, which was used to create pipes back in the day)
289
is a small yet feature-rich library for shell script-like programs in Python.
290
The motto of the library is “Never write shell scripts again”, and thus it
291
attempts to mimic the shell syntax (“shell combinators”) where it makes sense,
292
while keeping it all Pythonic and cross-platform.")
293
    (license license:expat)))
294
295
(define-public python2-plumbum
296
  (package-with-python2 python-plumbum))
297
298
(define-public python-trollius
299
  (package
300
    (name "python-trollius")
301
    (version "2.1")
302
    (source (origin
303
              (method url-fetch)
304
              (uri (pypi-uri "trollius" version))
305
              (sha256
306
               (base32
307
                "146c60hgcmgjkbf2hmiag52f9i3hka6shwbfybdsmlvqjnfms5nd"))))
308
    (build-system python-build-system)
309
    (home-page "https://github.com/haypo/trollius")
310
    (propagated-inputs
311
     `(("mock" ,python-mock)
312
       ("six" ,python-six)))
313
    (arguments
314
     `(#:tests? #f))
315
    (synopsis "")
316
    (description "")
317
    (license license:asl2.0)))
318
319
(define-public python2-trollius
320
  (package-with-python2 python-trollius))
321
322
(define-public python-neovim
323
  (package
324
    (name "python-neovim")
325
    (version "0.2.1")
326
    (source (origin
327
              (method url-fetch)
328
              (uri (pypi-uri "neovim" version))
329
              (sha256
330
               (base32
331
                "16vzxmp7f6dl20n30j5cwwvrjj5h3c2ch8ldbss31anf36nirsdp"))))
332
    (build-system python-build-system)
333
    (propagated-inputs
334
     `(("python-greenlet" ,python-greenlet)
335
       ("python-msgpack" ,python-msgpack)))
336
    (arguments
337
     `(#:tests? #f))
338
    (home-page "https://github.com/neovim/python-client")
339
    (synopsis "")
340
    (description "")
341
    (license license:asl2.0)))
342
343
(define-public python2-neovim
344
  (let ((parent (package-with-python2 python-neovim)))
345
    (package
346
      (inherit parent)
347
      (propagated-inputs
348
       `(("trollius" ,python2-trollius)
349
         ,@(package-propagated-inputs parent))))))
350
351
(define-public python-cymruwhois
352
  (package
353
    (name "python-cymruwhois")
354
    (version "1.6")
355
    (source (origin
356
          (method url-fetch)
357
          (uri (pypi-uri "cymruwhois" version))
358
          (sha256
359
           (base32
360
        "0m7jgpglkjd0lsyw64lfw6qxdm0fg0f54145f79kq4rk1vjqbh5n"))))
361
    (build-system python-build-system)
362
    (native-inputs
363
     `(("python-nose" ,python-nose)))
364
    (home-page "")
365
    (synopsis "")
366
    (description "")
367
    (license license:expat)))
368
369
(define-public python2-cymruwhois
370
  (package-with-python2 python-cymruwhois))
371
372
(define-public python-ripe-atlas-sagan
373
  (package
374
    (name "python-ripe-atlas-sagan")
375
    (version "1.2.2")
376
    (source (origin
377
          (method url-fetch)
378
          (uri (pypi-uri "ripe.atlas.sagan" version))
379
          (sha256
380
           (base32
381
        "1pww7f4kh9cgd9qm7hbnkxg2cvj7mcmwhsan97cl5pd0xqxxnvw3"))))
382
    (build-system python-build-system)
383
    (propagated-inputs
384
     `(("cryptography" ,python-cryptography)
385
       ("dateutil" ,python-dateutil)
386
       ("python-nose" ,python-nose)
387
       ("pytz" ,python-pytz)))
388
    (home-page "")
389
    (synopsis "")
390
    (description "")
391
    (license license:gpl3+)))
392
393
(define-public python2-ripe-atlas-sagan
394
  (package-with-python2 python-ripe-atlas-sagan))
395
396
(define-public python-socketio-client
397
  (package
398
    (name "python-socketio-client")
399
    (version "0.7.2")
400
    (source (origin
401
          (method url-fetch)
402
          (uri (pypi-uri "socketIO-client" version))
403
          (sha256
404
           (base32
405
        "1hfjfhyxgql1ndda1bagg8niy8m28byd2r0yq4l7zycwlzxq9kb4"))))
406
    (build-system python-build-system)
407
    (propagated-inputs
408
      `(("websocket-client" ,python-websocket-client)
409
        ("requests" ,python-requests)))
410
    (native-inputs
411
      `(("coverage" ,python-coverage)
412
    ("nose" ,python-nose)))
413
    (arguments '(#:tests? #f)); requires network
414
    (home-page "")
415
    (synopsis "")
416
    (description "")
417
    (license license:gpl3+)))
418
419
(define-public python2-socketio-client
420
  (package-with-python2 python-socketio-client))
421
422
(define-public python-linecache2
423
  (package
424
    (name "python-linecache2")
425
    (version "1.0.0")
426
    (source (origin
427
          (method url-fetch)
428
          (uri (pypi-uri "linecache2" version))
429
          (sha256
430
           (base32
431
        "0z79g3ds5wk2lvnqw0y2jpakjf32h95bd9zmnvp7dnqhf57gy9jb"))))
432
    (build-system python-build-system)
433
    (arguments '(#:tests? #f)); circular dependency with unittest2
434
    (propagated-inputs
435
      `(("pbr" ,python-pbr)))
436
    (home-page "")
437
    (synopsis "")
438
    (description "")
439
    (license license:gpl3+)))
440
441
(define-public python2-linecache2
442
  (package-with-python2 python-linecache2))
443
444
(define-public python-traceback2
445
  (package
446
    (name "python-traceback2")
447
    (version "1.4.0")
448
    (source (origin
449
          (method url-fetch)
450
          (uri (pypi-uri "traceback2" version))
451
          (sha256
452
           (base32
453
        "0c1h3jas1jp1fdbn9z2mrgn3jj0hw1x3yhnkxp7jw34q15xcdb05"))))
454
    (build-system python-build-system)
455
    (arguments '(#:tests? #f)); circular dependency with unittest2
456
    (propagated-inputs
457
      `(("linecache2" ,python-linecache2)
458
        ("pbr" ,python-pbr)))
459
    (home-page "")
460
    (synopsis "")
461
    (description "")
462
    (license license:gpl3+)))
463
464
(define-public python2-traceback2
465
  (package-with-python2 python-traceback2))
466
467
(define-public python-argparse
468
  (package
469
    (name "python-argparse")
470
    (version "1.4.0")
471
    (source (origin
472
          (method url-fetch)
473
          (uri (pypi-uri "argparse" version))
474
          (sha256
475
           (base32
476
        "1r6nznp64j68ih1k537wms7h57nvppq0szmwsaf99n71bfjqkc32"))))
477
    (build-system python-build-system)
478
    (home-page "")
479
    (synopsis "")
480
    (description "")
481
    (license license:gpl3+)))
482
483
(define-public python2-argparse
484
  (package-with-python2 python-argparse))
485
486
(define-public python-unittest2-fix
487
  (package
488
    (inherit python-unittest2)
489
    (version "1.1.0")
490
    (source (origin
491
          (method url-fetch)
492
          (uri (pypi-uri "unittest2" version))
493
          (sha256
494
           (base32
495
        "0y855kmx7a8rnf81d3lh5lyxai1908xjp0laf4glwa4c8472m212"))))
496
    (arguments
497
      `(#:phases
498
    (modify-phases %standard-phases
499
      (add-before 'check 'disable-failures
500
        (lambda _
501
          (substitute* "unittest2/test/test_result.py"
502
        (("testGet") "dontTestGet"))
503
          (substitute* "unittest2/test/test_loader.py"
504
        (("test_loadTestsFromNames__relative_malformed_name") "dontTest")
505
        (("test_loadTestsFromName__relative_malformed_name") "dontTest2")))))))
506
    (propagated-inputs
507
      `(("traceback2" ,python-traceback2)
508
    ("six" ,python-six)
509
    ("argparse" ,python-argparse)))))
510
511
(define-public python2-unittest2-fix
512
  (package-with-python2 python-unittest2-fix))
513
514
(define-public python-funcsigs
515
  (package
516
    (name "python-funcsigs")
517
    (version "1.0.2")
518
    (source (origin
519
          (method url-fetch)
520
          (uri (pypi-uri "funcsigs" version))
521
          (sha256
522
           (base32
523
        "0l4g5818ffyfmfs1a924811azhjj8ax9xd1cffr1mzd3ycn0zfx7"))))
524
    (build-system python-build-system)
525
    (native-inputs
526
      `(("unittest2" ,python-unittest2-fix)))
527
    (home-page "")
528
    (synopsis "")
529
    (description "")
530
    (license license:asl2.0)))
531
532
(define-public python2-funcsigs
533
  (package-with-python2 python-funcsigs))
534
535
(define-public python-ripe-atlas-cousteau
536
  (package
537
    (name "python-ripe-atlas-cousteau")
538
    (version "1.4.1")
539
    (source (origin
540
          (method url-fetch)
541
          (uri (pypi-uri "ripe.atlas.cousteau" version))
542
          (sha256
543
           (base32
544
        "1964qllddqqh1sz9psmmb84ahqdy499vavm9wdn0k2v7q6y0vm0p"))))
545
    (build-system python-build-system)
546
    (propagated-inputs
547
      `(("websocket-client" ,python-websocket-client)
548
        ("socketIO-client" ,python-socketio-client)
549
        ("dateutil" ,python-dateutil)
550
        ("jsonschema" ,python-jsonschema)
551
        ("requests" ,python-requests)))
552
    (native-inputs
553
      `(("mock" ,python-mock)
554
        ("nose" ,python-nose)
555
        ("funcsigs" ,python-funcsigs)
556
        ("coverage" ,python-coverage)))
557
    (home-page "")
558
    (synopsis "")
559
    (description "")
560
    (license license:gpl3+)))
561
562
(define-public python2-ripe-atlas-cousteau
563
  (package-with-python2 python-ripe-atlas-cousteau))
564
565
(define-public python-ripe-atlas-tools
566
  (package
567
    (name "python-ripe-atlas-tools")
568
    (version "2.2.3")
569
    (source (origin
570
              (method url-fetch)
571
              (uri (pypi-uri "ripe.atlas.tools" version))
572
              (sha256
573
               (base32
574
                "1afcf56fyvsxb0i15v43804rqnn0xdp33achds84axnd1rl1375g"))))
575
    (build-system python-build-system)
576
    (propagated-inputs
577
     `(("pyopenssl" ,python-pyopenssl)
578
       ("sagan" ,python-ripe-atlas-sagan)
579
       ("cousteau" ,python-ripe-atlas-cousteau)
580
       ("pyaml" ,python-pyaml)
581
       ("ipy" ,python-ipy)
582
       ("tzlocal" ,python-tzlocal)))
583
    (native-inputs
584
     `(("mock" ,python-mock)
585
       ("coverage" ,python-coverage)))
586
    (arguments
587
      `(#:tests? #f; tests can't load dependencies
588
        #:phases
589
        (modify-phases %standard-phases
590
          (add-before 'check 'update-dependency
591
            (lambda _
592
              ;; Change dependency version to match what we have in guix
593
              (substitute* "setup.py"
594
                (("==1.2") "==1.2.2")
595
                (("==1.4") "==1.4.1"))
596
              #t)))))
597
    (home-page "")
598
    (synopsis "")
599
    (description "")
600
    (license license:gpl3+)))
601
602
(define-public python2-ripe-atlas-tools
603
  (package-with-python2 python-ripe-atlas-tools))
604
605
(define-public python-pyaudio
606
  (package
607
    (name "python-pyaudio")
608
    (version "0.2.11")
609
    (source (origin
610
              (method url-fetch)
611
              (uri (pypi-uri "PyAudio" version))
612
              (sha256
613
               (base32
614
                "0x7vdsigm7xgvyg3shd3lj113m8zqj2pxmrgdyj66kmnw0qdxgwk"))))
615
    (build-system python-build-system)
616
    (inputs
617
     `(("portaudio" ,portaudio)))
618
    (home-page "https://people.csail.mit.edu/hubert/pyaudio/")
619
    (synopsis "")
620
    (description "")
621
    (license license:asl2.0)))
622
623
(define-public python-web.py
624
  (package
625
    (name "python-web.py")
626
    (version "0.40.dev0")
627
    (source (origin
628
              (method url-fetch)
629
              (uri (pypi-uri "web.py" version))
630
              (sha256
631
               (base32
632
                "18v91c4s683r7a797a8k9p56r1avwplbbcb3l6lc746xgj6zlr6l"))))
633
    (build-system python-build-system)
634
    (home-page "http://webpy.org/")
635
    (synopsis "")
636
    (description "")
637
    (license license:public-domain)))
638
639
(define-public python2-web.py
640
  (package-with-python2 python-web.py))
641
642
(define-public python-bitstring
643
  (package
644
    (name "python-bitstring")
645
    (version "3.1.5")
646
    (source (origin
647
              (method url-fetch)
648
              (uri (pypi-uri "bitstring" version ".zip"))
649
              (sha256
650
               (base32
651
                "1algq30j6rz12b1902bpw7iijx5lhrfqhl80d4ac6xzkrrpshqy1"))))
652
    (build-system python-build-system)
653
    (native-inputs
654
     `(("unzip" ,unzip)))
655
    (home-page "https://github.com/scott-griffiths/bitstring")
656
    (synopsis "Simple construction, analysis and modification of binary data")
657
    (description "Bitstring is a pure Python module designed to help make the
658
creation and analysis of binary data as simple and natural as possible.
659
660
Bitstrings can be constructed from integers (big and little endian), hex, octal,
661
binary, strings or files.  They can be sliced, joined, reversed, inserted into,
662
overwritten, etc.  They can also be read from, searched and replaced, and
663
navigated in, similar to a file or stream.")
664
    (license license:expat)))
665
666
(define-public python2-bitstring
667
  (package-with-python2 python-bitstring))
668
669
(define-public python-android-stringslib
670
  (package
671
    (name "python-android-stringslib")
672
    (version "0.1.1")
673
    (source (origin
674
              (method url-fetch)
675
              (uri (pypi-uri "android-stringslib" version))
676
              (sha256
677
               (base32
678
                "00k0nzjvym984805ikq22fzd81cr23j74lhamd50p2vf4yalw76n"))))
679
    (build-system python-build-system)
680
    (arguments
681
     `(#:tests? #f)); no tests
682
    (native-inputs
683
     `(("python-sphinx" ,python-sphinx)))
684
    (home-page "https://framagit.org/tyreunom/python-android-strings-lib")
685
    (synopsis "")
686
    (description "")
687
    (license license:expat)))
688
689
(define-public transmon
690
  (package
691
    (name "transmon")
692
    (version "0.1")
693
    (source (origin
694
              (method url-fetch)
695
              (uri (pypi-uri "transmon" version))
696
              (sha256
697
               (base32
698
                "1l7lxp4xwymyb1wqhycqg33ry6gza4660k12xkja04kmw4aqv0az"))))
699
    (build-system python-build-system)
700
    (arguments
701
     `(#:tests? #f)); no tests
702
    (propagated-inputs
703
     `(("python-android-stringslib" ,python-android-stringslib)
704
       ("python-polib" ,python-polib)
705
       ("python-pygit2" ,python-pygit2)))
706
    (home-page "https://framagit.org/tyreunom/transmon")
707
    (synopsis "")
708
    (description "")
709
    (license license:agpl3+)))
710