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-cooldict
34
  (package
35
    (name "python-cooldict")
36
    (version "1.02")
37
    (source (origin
38
              (method url-fetch)
39
              (uri (pypi-uri "cooldict" version))
40
              (sha256
41
               (base32
42
                "084if0s504576nph0f6glmg3mmvijq7nbnf65hh22gwwdwrjss83"))))
43
    (build-system python-build-system)
44
    (native-inputs
45
     `(("ana" ,python-ana)))
46
    (home-page "https://github.com/zardus/cooldict")
47
    (synopsis "Some useful dict-like structures")
48
    (description "Some useful dict-like structures.")
49
    (license license:bsd-2)))
50
51
(define-public python2-cooldict
52
  (package-with-python2 python-cooldict))
53
 
54
(define-public python-cachetools
55
  (package
56
    (name "python-cachetools")
57
    (version "2.0.0")
58
    (source (origin
59
              (method url-fetch)
60
              (uri (pypi-uri "cachetools" version))
61
              (sha256
62
               (base32
63
                "0a56ydsvsri1r19ny55g0x7jsgjl9n02vnxbhfz0vhhd4h174nki"))))
64
    (build-system python-build-system)
65
    (home-page "https://github.com/tkem/cachetools")
66
    (synopsis "Memoizing collections and decorators including lru_cache")
67
    (description "This module provides various memoizing collections and
68
decorators, including variants of the Python 3 Standard Library @code{lru_cache}
69
function decorator.")
70
    (license license:expat)))
71
72
(define-public python2-cachetools
73
  (package-with-python2 python-cachetools))
74
75
(define-public python-bintrees
76
  (package
77
    (name "python-bintrees")
78
    (version "2.0.4")
79
    (source (origin
80
              (method url-fetch)
81
              (uri (pypi-uri "bintrees" version))
82
              (sha256
83
               (base32
84
                "1q71md58i33qpjhwgi9ph9hpgch1dy2i6n4qljyl0x410rhikfvc"))))
85
    (build-system python-build-system)
86
    (home-page "https://github.com/mozman/bintrees")
87
    (synopsis "Provides Binary- RedBlack- and AVL-Trees written in Python and Cython/C")
88
    (description "This package provides Binary- RedBlack- and AVL-Trees written
89
in Python and Cython/C.
90
91
This Classes are much slower than the built-in dict class, but all
92
iterators/generators yielding data in sorted key order. Trees can be uses as
93
drop in replacement for dicts in most cases.")
94
    (license license:expat)))
95
96
(define-public python2-bintrees
97
  (package-with-python2 python-bintrees))
98
 
99
(define-public python2-dpkt
100
  (package
101
    (name "python2-dpkt")
102
    (version "1.8.8")
103
    (source (origin
104
              (method url-fetch)
105
              (uri (pypi-uri "dpkt" version))
106
              (sha256
107
               (base32
108
                "004qsqzg3fwkh623l1y8j62ai166hr02y192s7n1hs166kjjb5fr"))
109
              (modules '((guix build utils)))
110
              (snippet
111
               '(substitute* "setup.py"
112
                  (("os.system\\('py2dsc-deb ' + sdist_file\\)") "")))))
113
    (build-system python-build-system)
114
    (arguments
115
     `(#:python ,python-2))
116
    (home-page "https://github.com/kbandla/dpkt")
117
    (synopsis "Fast, simple network packet creation / parsing")
118
    (description "Fast, simple packet creation / parsing, with definitions for
119
the basic TCP/IP protocols.")
120
    (license license:bsd-3)))
121
122
(define-public python2-rpyc
123
  (package
124
    (name "python2-rpyc")
125
    (version "3.3.0")
126
    (source (origin
127
              (method url-fetch)
128
              (uri (pypi-uri "rpyc" version))
129
              (sha256
130
               (base32
131
                "0jwbxxf5f8l05pwh7ilg380y4pqv3nxibaszbwpl9gzh2i9q9yj3"))))
132
    (build-system python-build-system)
133
    (native-inputs
134
     `(("nose" ,python2-nose)))
135
    (propagated-inputs
136
     `(("plumbum" ,python2-plumbum)
137
       ("progressbar" ,python2-progressbar)))
138
    (arguments
139
     `(#:python ,python-2))
140
    (home-page "https://github.com/tomerfiliba/rpyc")
141
    (synopsis "Remote procedure call for Python")
142
    (description "Remote Python Call is a transparent library for symmetrical
143
remote procedure calls, clustering, and distributed-computing.  RPyC makes use
144
of object-proxying, a technique that employs python's dynamic nature, to
145
overcome the physical boundaries between processes and computers, so that
146
remote objects can be manipulated as if they were local.")
147
    (license license:expat)))
148
149
(define-public python2-progressbar
150
  (package
151
    (name "python2-progressbar")
152
    (version "2.3")
153
    (source (origin
154
              (method url-fetch)
155
              (uri (pypi-uri "progressbar" version))
156
              (sha256
157
               (base32
158
                "0m0j93yfvbd8pw8cz2vdb9hyk9d0zkkd509k69jrw545jxr8mlxj"))))
159
    (build-system python-build-system)
160
    (arguments
161
     `(#:python ,python-2))
162
    (home-page "https://github.com/niltonvolpato/python-progressbar")
163
    (synopsis "Text progress bar library for Python")
164
    (description
165
      "A text progress bar is typically used to display the progress of a long
166
running operation, providing a visual cue that processing is underway.
167
168
The ProgressBar class manages the current progress, and the format of the line
169
is given by a number of widgets. A widget is an object that may display
170
differently depending on the state of the progress bar. There are three types
171
of widgets:
172
173
@enumerate
174
@item a string, which always shows itself
175
@item a ProgressBarWidget, which may return a different value every time its
176
update method is called
177
@item a ProgressBarWidgetHFill, which is like ProgressBarWidget, except it
178
expands to fill the remaining width of the line.
179
@end enumerate
180
181
The progressbar module is very easy to use, yet very powerful. It will also
182
automatically enable features like auto-resizing when the system supports it.")
183
    (license (list license:lgpl2.1+ license:bsd-3))))
184
185
(define-public python-progressbar2
186
  (package
187
    (name "python-progressbar2")
188
    (version "3.12.0")
189
    (source (origin
190
              (method url-fetch)
191
              (uri (pypi-uri "progressbar2" version))
192
              (sha256
193
               (base32
194
                "16r21cpjvv0spf4mymgpy7hx6977iy11k44n2w9kipwg4lhwh02k"))))
195
    (build-system python-build-system)
196
    (native-inputs
197
     `(("pytest-runner" ,python-pytest-runner)
198
       ("pytest" ,python-pytest)))
199
    (propagated-inputs
200
     `(("six" ,python-six)
201
       ("utils" ,python-utils)))
202
    (home-page "https://github.com/WoLpH/python-progressbar")
203
    (synopsis "A text progress bar for python")
204
    (description "A text progress bar is typically used to display the progress
205
of a long running operation, providing a visual cue that processing is underway.
206
207
The ProgressBar class manages the current progress, and the format of the line
208
is given by a number of widgets.  A widget is an object that may display
209
differently depending on the state of the progress bar.")
210
    (license license:bsd-2)))
211
212
(define-public python2-progressbar2
213
  (package-with-python2 python-progressbar2))
214
 
215
(define-public python-mulpyplexer
216
  (package
217
    (name "python-mulpyplexer")
218
    (version "0.07")
219
    (source (origin
220
              (method url-fetch)
221
              (uri (pypi-uri "mulpyplexer" version))
222
              (sha256
223
               (base32
224
                "1j5gm913adc8f0mn9y6a9wm9h78jb7ykr8i00yysfcy6ah2ilp9v"))))
225
    (build-system python-build-system)
226
    (home-page "https://github.com/zardus/mulpyplexer")
227
    (synopsis "Multiplex interactions with lists of python objects")
228
    (description "Mulpyplexer is a piece of code that can multiplex interactions with lists of python objects.")
229
    (license license:bsd-2)))
230
231
(define-public python2-mulpyplexer
232
  (package-with-python2 python-mulpyplexer))
233
234
(define-public python-ana
235
  (package
236
    (name "python-ana")
237
    (version "0")
238
    (source (origin
239
              (method git-fetch)
240
              (uri (git-reference
241
                    (url "https://github.com/zardus/ana.git")
242
                    (commit "94928f773661eaa5a6c2dec40dad199c70daedab")))
243
              (sha256
244
               (base32
245
                "0f2wdhs0xwpnk9lznxl96b2yzcz1641wbqrh1aid7q2pm60v6dhv"))
246
              (file-name (string-append name "-" version))))
247
    (build-system python-build-system)
248
    (native-inputs
249
     `(("nose" ,python-nose)))
250
    (arguments
251
     `(#:phases
252
       (modify-phases %standard-phases
253
         (add-before 'build 'fix-python3-import
254
           (lambda _
255
             (substitute* "ana/datalayer.py"
256
               (("import cPickle as pickle") "import pickle")))))))
257
    (home-page "https://github.com/zardus/ana")
258
    (synopsis "Provide easy distributed data storage for python objects")
259
    (description "ANA is a project to provide easy distributed data storage for
260
stuff.  It provides every object with a UUID and, when pickled, will first
261
serialize the object's state to a central location and then \"pickle\" the
262
object into just its UUID.  This is really handy when you have to distribute
263
objects in some distributed system, and you'd rather not pickle the whole
264
object every time you need to send it.")
265
    (license license:bsd-2)))
266
267
(define-public python2-ana
268
  (package
269
    (inherit (package-with-python2 python-ana))
270
    (arguments
271
     `(#:python ,python-2))))
272
273
(define-public python-plumbum
274
  (package
275
    (name "python-plumbum")
276
    (version "1.6.3")
277
    (source
278
     (origin
279
       (method url-fetch)
280
       (uri (pypi-uri "plumbum" version))
281
       (sha256
282
        (base32 "083kikr1f7qzpp5jllss97dy8d6249v7ia3wg9i0a6wz8l4ffj82"))))
283
    (build-system python-build-system)
284
    (native-inputs
285
     `(("pytest" ,python-pytest)))
286
    (home-page "https://plumbum.readthedocs.io/en/latest")
287
    (synopsis "Shell script-like programs in Python")
288
    (description
289
      "Plumbum (Latin for lead, which was used to create pipes back in the day)
290
is a small yet feature-rich library for shell script-like programs in Python.
291
The motto of the library is “Never write shell scripts again”, and thus it
292
attempts to mimic the shell syntax (“shell combinators”) where it makes sense,
293
while keeping it all Pythonic and cross-platform.")
294
    (license license:expat)))
295
296
(define-public python2-plumbum
297
  (package-with-python2 python-plumbum))
298