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 compression)
23
  #:use-module (gnu packages databases)
24
  #:use-module (gnu packages python)
25
  #:use-module (gnu packages tls)
26
  #:use-module (gnu packages zip)
27
  #:use-module (guix packages)
28
  #:use-module (guix download)
29
  #:use-module (guix git-download)
30
  #:use-module (guix utils)
31
  #:use-module (guix build-system python))
32
33
(define-public python-setuptools-scm
34
  (package
35
    (name "python-setuptools-scm")
36
    (version "1.15.0")
37
    (source (origin
38
              (method url-fetch)
39
              (uri (pypi-uri "setuptools_scm" version))
40
              (sha256
41
               (base32
42
                "0bwyc5markib0i7i2qlyhdzxhiywzxbkfiapldma8m91m82jvwfs"))))
43
    (build-system python-build-system)
44
    (home-page "https://github.com/pypa/setuptools_scm/")
45
    (synopsis "Manage Python package versions in SCM metadata")
46
    (description
47
     "Setuptools_scm handles managing your Python package versions in
48
@dfn{software configuration management} (SCM) metadata instead of declaring
49
them as the version argument or in a SCM managed file.")
50
    (license license:expat)))
51
52
(define-public python2-setuptools-scm
53
  (package-with-python2 python-setuptools-scm))
54
55
(define-public python-pytest-runner
56
  (package
57
    (name "python-pytest-runner")
58
    (version "2.11")
59
    (source
60
     (origin
61
       (method url-fetch)
62
       (uri (pypi-uri "pytest-runner" version))
63
       (sha256
64
        (base32
65
         "08rizp3zz8fdm2a5j97rcq3hddbhq5f6k0vr35amjj83zqpawk5x"))))
66
    (build-system python-build-system)
67
    (arguments
68
     `(#:phases
69
       (modify-phases %standard-phases
70
         ;; The fancy way of setting the version with setuptools_scm does not
71
         ;; seem to work here.
72
         (add-after 'unpack 'set-version
73
          (lambda _
74
            (substitute* "docs/conf.py"
75
              (("version = setuptools_scm\\.get_version\\(root='\\.\\.')")
76
               (string-append "version = \"" ,version "\"")))
77
            #t)))))
78
    (native-inputs
79
     `(("python-pytest" ,python-pytest)
80
       ("python-setuptools-scm" ,python-setuptools-scm)))
81
    (home-page "https://github.com/pytest-dev/pytest-runner")
82
    (synopsis "Invoke py.test as a distutils command")
83
    (description
84
     "This package provides a @command{pytest-runner} command that
85
@file{setup.py} files can use to run tests.")
86
    (license license:expat)))
87
88
(define-public python2-pytest-runner
89
  (package-with-python2 python-pytest-runner))
90
91
(define-public python-utils
92
  (package
93
    (name "python-utils")
94
    (version "2.0.1")
95
    (source (origin
96
              (method url-fetch)
97
              (uri (pypi-uri "python-utils" version))
98
              (sha256
99
               (base32
100
                "1zvrc1rc06n89pycg969pcy30bff4sqzhff365sxh629ybnl8pwq"))))
101
    (build-system python-build-system)
102
    (native-inputs
103
     `(("pytest-runner" ,python-pytest-runner)))
104
    (home-page "https://github.com/WoLpH/python-utils")
105
    (synopsis "Convenient utilities not included with the standard Python install")
106
    (description
107
      "Python Utils is a collection of small Python functions and classes which
108
make common patterns shorter and easier.")
109
    (license license:bsd-2)))
110
111
(define-public python2-utils
112
  (package-with-python2 python-utils))
113
114
(define-public python-cooldict
115
  (package
116
    (name "python-cooldict")
117
    (version "1.02")
118
    (source (origin
119
              (method url-fetch)
120
              (uri (pypi-uri "cooldict" version))
121
              (sha256
122
               (base32
123
                "084if0s504576nph0f6glmg3mmvijq7nbnf65hh22gwwdwrjss83"))))
124
    (build-system python-build-system)
125
    (home-page "https://github.com/zardus/cooldict")
126
    (synopsis "Some useful dict-like structures")
127
    (description "Some useful dict-like structures.")
128
    (license license:bsd-2)))
129
130
(define-public python2-cooldict
131
  (package-with-python2 python-cooldict))
132
 
133
(define-public python-cachetools
134
  (package
135
    (name "python-cachetools")
136
    (version "2.0.0")
137
    (source (origin
138
              (method url-fetch)
139
              (uri (pypi-uri "cachetools" version))
140
              (sha256
141
               (base32
142
                "0a56ydsvsri1r19ny55g0x7jsgjl9n02vnxbhfz0vhhd4h174nki"))))
143
    (build-system python-build-system)
144
    (home-page "https://github.com/tkem/cachetools")
145
    (synopsis "Memoizing collections and decorators including lru_cache")
146
    (description "This module provides various memoizing collections and
147
decorators, including variants of the Python 3 Standard Library @code{lru_cache}
148
function decorator.")
149
    (license license:expat)))
150
151
(define-public python2-cachetools
152
  (package-with-python2 python-cachetools))
153
154
(define-public python-bintrees
155
  (package
156
    (name "python-bintrees")
157
    (version "2.0.4")
158
    (source (origin
159
              (method url-fetch)
160
              (uri (pypi-uri "bintrees" version))
161
              (sha256
162
               (base32
163
                "1q71md58i33qpjhwgi9ph9hpgch1dy2i6n4qljyl0x410rhikfvc"))))
164
    (build-system python-build-system)
165
    (home-page "https://github.com/mozman/bintrees")
166
    (synopsis "Provides Binary- RedBlack- and AVL-Trees written in Python and Cython/C")
167
    (description "This package provides Binary- RedBlack- and AVL-Trees written
168
in Python and Cython/C.
169
170
This Classes are much slower than the built-in dict class, but all
171
iterators/generators yielding data in sorted key order. Trees can be uses as
172
drop in replacement for dicts in most cases.")
173
    (license license:expat)))
174
175
(define-public python2-bintrees
176
  (package-with-python2 python-bintrees))
177
 
178
(define-public python2-dpkt
179
  (package
180
    (name "python2-dpkt")
181
    (version "1.8.8")
182
    (source (origin
183
              (method url-fetch)
184
              (uri (pypi-uri "dpkt" version))
185
              (sha256
186
               (base32
187
                "004qsqzg3fwkh623l1y8j62ai166hr02y192s7n1hs166kjjb5fr"))
188
            (modules '((guix build utils)))
189
            (snippet
190
             '(substitute* "setup.py"
191
                (("os.system\\('py2dsc-deb ' + sdist_file\\)") "")))))
192
    (build-system python-build-system)
193
    (arguments
194
     `(#:python ,python-2))
195
    (home-page "https://github.com/kbandla/dpkt")
196
    (synopsis "Fast, simple network packet creation / parsing")
197
    (description "Fast, simple packet creation / parsing, with definitions for
198
the basic TCP/IP protocols.")
199
    (license license:bsd-3)))
200
 
201
(define-public python-rpyc
202
  (package
203
    (name "python-rpyc")
204
    (version "3.3.0")
205
    (source (origin
206
              (method url-fetch)
207
              (uri (pypi-uri "rpyc" version))
208
              (sha256
209
               (base32
210
                "0jwbxxf5f8l05pwh7ilg380y4pqv3nxibaszbwpl9gzh2i9q9yj3"))))
211
    (build-system python-build-system)
212
    (home-page "https://github.com/tomerfiliba/rpyc")
213
    (synopsis "Remote procedure call for Python")
214
    (description "Remote Python Call is a transparent library for symmetrical
215
remote procedure calls, clustering, and distributed-computing.  RPyC makes use
216
of object-proxying, a technique that employs python's dynamic nature, to
217
overcome the physical boundaries between processes and computers, so that
218
remote objects can be manipulated as if they were local.")
219
    (license license:expat)))
220
221
(define-public python2-rpyc
222
  (package-with-python2 python-rpyc))
223
224
(define-public python-progressbar2
225
  (package
226
    (name "python-progressbar2")
227
    (version "3.12.0")
228
    (source (origin
229
              (method url-fetch)
230
              (uri (pypi-uri "progressbar2" version))
231
              (sha256
232
               (base32
233
                "16r21cpjvv0spf4mymgpy7hx6977iy11k44n2w9kipwg4lhwh02k"))))
234
    (build-system python-build-system)
235
    (native-inputs
236
     `(("pytest-runner" ,python-pytest-runner)))
237
    (home-page "https://github.com/WoLpH/python-progressbar")
238
    (synopsis "A text progress bar for python")
239
    (description "A text progress bar is typically used to display the progress
240
of a long running operation, providing a visual cue that processing is underway.
241
242
The ProgressBar class manages the current progress, and the format of the line
243
is given by a number of widgets.  A widget is an object that may display
244
differently depending on the state of the progress bar.")
245
    (license license:bsd-2)))
246
247
(define-public python2-progressbar2
248
  (package-with-python2 python-progressbar2))
249
 
250
(define-public python-mulpyplexer
251
  (package
252
    (name "python-mulpyplexer")
253
    (version "0.07")
254
    (source (origin
255
              (method url-fetch)
256
              (uri (pypi-uri "mulpyplexer" version))
257
              (sha256
258
               (base32
259
                "1j5gm913adc8f0mn9y6a9wm9h78jb7ykr8i00yysfcy6ah2ilp9v"))))
260
    (build-system python-build-system)
261
    (home-page "https://github.com/zardus/mulpyplexer")
262
    (synopsis "Multiplex interactions with lists of python objects")
263
    (description "Mulpyplexer is a piece of code that can multiplex interactions with lists of python objects.")
264
    (license license:bsd-2)))
265
266
(define-public python2-mulpyplexer
267
  (package-with-python2 python-mulpyplexer))
268
269
;; Not reproducible.
270
(define-public python-ana
271
  (package
272
    (name "python-ana")
273
    (version "0")
274
    (source (origin
275
              (method git-fetch)
276
              (uri (git-reference
277
                    (url "https://github.com/zardus/ana.git")
278
                    (commit "94928f773661eaa5a6c2dec40dad199c70daedab")))
279
              (sha256
280
               (base32
281
                "0f2wdhs0xwpnk9lznxl96b2yzcz1641wbqrh1aid7q2pm60v6dhv"))
282
              (file-name (string-append name "-" version))))
283
    (build-system python-build-system)
284
    (home-page "https://github.com/zardus/ana")
285
    (synopsis "Provide easy distributed data storage for python objects")
286
    (description "ANA is a project to provide easy distributed data storage for
287
stuff.  It provides every object with a UUID and, when pickled, will first
288
serialize the object's state to a central location and then \"pickle\" the
289
object into just its UUID.  This is really handy when you have to distribute
290
objects in some distributed system, and you'd rather not pickle the whole
291
object every time you need to send it.")
292
    (license license:bsd-2)))
293
294
;; Not reproducible.
295
(define-public python2-ana
296
  (package-with-python2 python-ana))
297
298
(define-public python-webassets
299
  (package
300
    (name "python-webassets")
301
    (version "0.12.1")
302
    (source
303
     (origin
304
       (method url-fetch)
305
       (uri (pypi-uri "webassets" version))
306
       (sha256
307
        (base32
308
         "1nrqkpb7z46h2b77xafxihqv3322cwqv6293ngaky4j3ff4cing7"))))
309
    (build-system python-build-system)
310
    (home-page "http://github.com/miracle2k/webassets")
311
    (synopsis "Media asset management")
312
    (description "Merges, minifies and compresses Javascript and CSS files,
313
supporting a variety of different filters, including YUI, jsmin, jspacker or
314
CSS tidy.  Also supports URL rewriting in CSS files.")
315
    (license license:bsd-2)))
316
317
318
(define-public python-sphinx-me
319
  (package
320
    (name "python-sphinx-me")
321
    (version "0.3")
322
    (source
323
     (origin
324
       (method url-fetch)
325
       (uri (pypi-uri "sphinx-me" version))
326
       (sha256
327
        (base32
328
         "06jzgp213zihnvpcy2y5jy3ykid3apc2ncp2pg6a2g05lhiziglq"))))
329
    (build-system python-build-system)
330
    (home-page "https://github.com/stephenmcd/sphinx-me")
331
    (synopsis "Create a Sphinx documentation shell")
332
    (description
333
      "Create a Sphinx documentation shell for your project and include the
334
README file as the documentation index.  It handles extracting the required
335
meta data such as the project name, author and version from your project for
336
use in your Sphinx docs.")
337
    (license license:bsd-2)))
338
339
(define-public python2-sphinx-me
340
  (package-with-python2 python-sphinx-me))
341
342
(define-public python-rq
343
  (package
344
    (name "python-rq")
345
    (version "0.7.1")
346
    (source
347
     (origin
348
       (method url-fetch)
349
       (uri (pypi-uri "rq" version))
350
       (sha256
351
        (base32 "0gaq5pnh0zy46r8jvygi0ifbvz3pq6i7xla78ijcgjw0x77qzsdh"))))
352
    (build-system python-build-system)
353
    (propagated-inputs
354
     `(("python-click" ,python-click)
355
       ("python-redis" ,python-redis)))
356
    (home-page "http://python-rq.org/")
357
    (synopsis "Simple job queues for Python")
358
    (description
359
     "RQ (Redis Queue) is a simple Python library for queueing jobs and
360
processing them in the background with workers.  It is backed by Redis and it
361
is designed to have a low barrier to entry.")
362
    (license license:bsd-2)))
363
364
(define-public python2-rq
365
  (package-with-python2 python-rq))
366
367
(define-public python-cssmin
368
  (package
369
    (name "python-cssmin")
370
    (version "0.2.0")
371
    (source
372
      (origin
373
        (method url-fetch)
374
        (uri (pypi-uri "cssmin" version))
375
        (sha256
376
         (base32
377
          "1dk723nfm2yf8cp4pj785giqlwv42l0kj8rk40kczvq1hk6g04p0"))))
378
    (build-system python-build-system)
379
    (home-page "https://github.com/zacharyvoase/cssmin")
380
    (synopsis "Python port of the YUI CSS Compressor")
381
    (description "Python port of the YUI CSS Compressor.")
382
    (license (list license:expat license:bsd-3))))
383
384
(define-public python2-cssmin
385
  (package-with-python2 python-cssmin))
386
 
387
(define-public python-diff-match-patch
388
  (package
389
    (name "python-diff-match-patch")
390
    (version "20121119")
391
    (source
392
      (origin
393
        (method url-fetch)
394
        (uri (pypi-uri "diff-match-patch" version))
395
        (sha256
396
         (base32
397
          "0k1f3v8nbidcmmrk65m7h8v41jqi37653za9fcs96y7jzc8mdflx"))))
398
    (build-system python-build-system)
399
    (home-page "https://code.google.com/p/google-diff-match-patch")
400
    (synopsis "Synchronize plain text")
401
    (description "Diff Match and Patch libraries offer robust algorithms to
402
perform the operations required for synchronizing plain text.")
403
    (license license:asl2.0)))
404
405
(define-public python2-diff-match-patch
406
  (package-with-python2 python-diff-match-patch))
407
 
408
(define-public python-dirsync
409
  (package
410
    (name "python-dirsync")
411
    (version "2.2.2")
412
    (source
413
      (origin
414
        (method url-fetch)
415
        (uri (string-append
416
               "https://pypi.python.org/packages/15/7c/2d4986c0bd927fcc496d1c19"
417
               "3fdd2c0aafbd30ba8928ec92b79f3abf2bd7/dirsync-" version ".zip"))
418
        (sha256
419
         (base32
420
          "1hcdvmkwd5512zbxpin0k7bx5bkgzy3swjx7d0kj1y45af6r75v2"))))
421
    (build-system python-build-system)
422
    (native-inputs
423
     `(("unzip" ,unzip)))
424
    (propagated-inputs
425
     `(("six" ,python-six)))
426
    (home-page "https://bitbucket.org/tkhyn/dirsync")
427
    (synopsis "Advanced directory tree synchronisation tool")
428
    (description "Advanced directory tree synchronisation tool.")
429
    (license license:expat)))
430
431
(define-public python2-dirsync
432
  (package-with-python2 python-dirsync))
433
 
434
(define-public python-elasticsearch
435
  (package
436
    (name "python-elasticsearch")
437
    (version "1.0.0")
438
    (source
439
      (origin
440
        (method url-fetch)
441
        (uri (pypi-uri "elasticsearch" version))
442
        (sha256
443
         (base32
444
          "1sdw1r05cw7ihnmng8ra9v968fj7bq6sji8i1dikymsnkcpgc69g"))))
445
    (build-system python-build-system)
446
    (propagated-inputs
447
     `(("urllib3" ,python-urllib3)))
448
    (home-page "https://github.com/elastic/elasticsearch-py")
449
    (synopsis "Low-level client for Elasticsearch")
450
    (description "Official low-level client for Elasticsearch.  Its goal is to
451
provide common ground for all Elasticsearch-related code in Python; because of
452
this it tries to be opinion-free and very extendable.")
453
    (license license:expat)))
454
455
(define-public python2-elasticsearch
456
  (package-with-python2 python-elasticsearch))
457
458
(define-public python-dateutil-2
459
  (package
460
    (name "python-dateutil")
461
    (version "2.6.0")
462
    (source
463
     (origin
464
      (method url-fetch)
465
      (uri (pypi-uri "python-dateutil" version))
466
      (sha256
467
       (base32
468
        "1lhq0hxjc3cfha101q02ld5ijlpfyjn2w1yh7wvpiy367pgzi8k2"))))
469
    (build-system python-build-system)
470
    (propagated-inputs
471
     `(("python-six" ,python-six)))
472
    (home-page "https://dateutil.readthedocs.io/en/stable/")
473
    (synopsis "Extensions to the standard datetime module")
474
    (description
475
     "The dateutil module provides powerful extensions to the standard
476
datetime module, available in Python 2.3+.")
477
    (license license:bsd-3)))
478
479
(define-public python2-dateutil-2
480
  (package-with-python2 python-dateutil-2))
481
 
482
(define-public python-levenshtein
483
  (package
484
    (name "python-levenshtein")
485
    (version "0.12.0")
486
    (source
487
     (origin
488
      (method url-fetch)
489
      (uri (pypi-uri "python-Levenshtein" version))
490
      (sha256
491
       (base32
492
        "1c9ybqcja31nghfcc8xxbbz9h60s9qi12b9hr4jyl69xbvg12fh3"))))
493
    (build-system python-build-system)
494
    (home-page "https://github.com/ztane/python-Levenshtein")
495
    (synopsis "Fast computation of Levenshtein distance and string similarity")
496
    (description
497
     "The Levenshtein Python C extension module contains functions for fast computation of
498
@enumerate
499
@item Levenshtein (edit) distance, and edit operations
500
@item string similarity
501
@item approximate median strings, and generally string averaging
502
@item string sequence and set similarity
503
@end enumerate
504
It supports both normal and Unicode strings.")
505
    (license license:gpl2+)))
506
507
(define-public python2-levenshtein
508
  (package-with-python2 python-levenshtein))
509
 
510
(define-public python-scandir
511
  (package
512
    (name "python-scandir")
513
    (version "1.4")
514
    (source
515
     (origin
516
       (method url-fetch)
517
       (uri (pypi-uri "scandir" version))
518
       (sha256
519
        (base32 "0yjrgp0mxp3d8bjkq2m1ac2ys8n76wykksvgyjrnil9gr3fx7a5d"))))
520
    (build-system python-build-system)
521
    (home-page "https://github.com/benhoyt/scandir")
522
    (synopsis "Directory iteration function")
523
    (description
524
     "Directory iteration function like os.listdir(), except that instead of
525
returning a list of bare filenames, it yields DirEntry objects that include
526
file type and stat information along with the name.  Using scandir() increases
527
the speed of os.walk() by 2-20 times (depending on the platform and file
528
system) by avoiding unnecessary calls to os.stat() in most cases.")
529
    (license license:bsd-3)))
530
531
(define-public python2-scandir
532
  (package-with-python2 python-scandir))
533
 
534
(define-public python-stemming
535
  (package
536
    (name "python-stemming")
537
    (version "1.0.1")
538
    (source
539
     (origin
540
       (method url-fetch)
541
       (uri (pypi-uri "stemming" version))
542
       (sha256
543
        (base32 "0ldwa24gnnxhniv0fhygkpc2mwgd93q10ag8rvzayv6hw418frsr"))))
544
    (build-system python-build-system)
545
    (home-page "https://bitbucket.org/mchaput/stemming/overview")
546
    (synopsis "Python implementations of various stemming algorithms")
547
    (description
548
     "Python implementations of the Porter, Porter2, Paice-Husk, and Lovins
549
stemming algorithms for English. These implementations are straightforward and
550
efficient, unlike some Python versions of the same algorithms available on the
551
Web. This package is an extraction of the stemming code included in the Whoosh
552
search engine.")
553
    (license license:public-domain)))
554
555
(define-public python2-stemming
556
  (package-with-python2 python-stemming))
557
 
558
(define-public python-translate-toolkit
559
  (package
560
    (name "python-translate-toolkit")
561
    (version "2.0.0")
562
    (source
563
     (origin
564
       (method url-fetch)
565
       (uri (pypi-uri "translate-toolkit" version ".tar.bz2"))
566
       (sha256
567
        (base32 "1648y76sxg11m31hvvnsps1yvmiz51dnn8ir24q9mjfw1qarx3wp"))))
568
    (build-system python-build-system)
569
    (home-page "http://toolkit.translatehouse.org")
570
    (synopsis "Tools and API for translation and localization engineering")
571
    (description
572
     "Tools and API for translation and localization engineering.  It contains
573
several utilities, as well as an API for building localization tools.")
574
    (license license:gpl2+)))
575
576
(define-public python2-translate-toolkit
577
  (package-with-python2 python-translate-toolkit))
578
579
(define-public python-mysqlclient
580
  (package
581
    (name "python-mysqlclient")
582
    (version "1.3.9")
583
    (source
584
     (origin
585
       (method url-fetch)
586
       (uri (pypi-uri "mysqlclient" version))
587
       (sha256
588
        (base32
589
         "16ccq9hvsrc6nf0nakn19dqncr913kf97j8ip28s5f8m3wgcy34r"))))
590
    (build-system python-build-system)
591
    (inputs
592
     `(("mysql" ,mysql)
593
       ("libz" ,zlib)
594
       ("openssl" ,openssl)))
595
    (home-page "https://github.com/PyMySQL/mysqlclient-python")
596
    (synopsis "MySQLdb is an interface to the popular MySQL database server for Python")
597
    (description "MySQLdb is an interface to the popular MySQL database server
598
for Python.  The design goals are:
599
@enumerate
600
@item Compliance with Python database API version 2.0 [PEP-0249],
601
@item Thread-safety,
602
@item Thread-friendliness (threads will not block each other).
603
@end enumerate")
604
    (license license:gpl2)))
605
606
(define-public python2-mysqlclient
607
  (package-with-python2 python-mysqlclient))
608