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