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