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 (guix packages) |
27 | #:use-module (guix download) |
28 | #:use-module (guix git-download) |
29 | #:use-module (guix utils) |
30 | #:use-module (guix build-system python)) |
31 | |
32 | (define-public python-cooldict |
33 | (package |
34 | (name "python-cooldict") |
35 | (version "1.02") |
36 | (source (origin |
37 | (method url-fetch) |
38 | (uri (pypi-uri "cooldict" version)) |
39 | (sha256 |
40 | (base32 |
41 | "084if0s504576nph0f6glmg3mmvijq7nbnf65hh22gwwdwrjss83")))) |
42 | (build-system python-build-system) |
43 | (native-inputs |
44 | `(("ana" ,python-ana))) |
45 | (home-page "https://github.com/zardus/cooldict") |
46 | (synopsis "Some useful dict-like structures") |
47 | (description "Some useful dict-like structures.") |
48 | (license license:bsd-2))) |
49 | |
50 | (define-public python2-cooldict |
51 | (package-with-python2 python-cooldict)) |
52 | |
53 | (define-public python-cachetools |
54 | (package |
55 | (name "python-cachetools") |
56 | (version "2.0.0") |
57 | (source (origin |
58 | (method url-fetch) |
59 | (uri (pypi-uri "cachetools" version)) |
60 | (sha256 |
61 | (base32 |
62 | "0a56ydsvsri1r19ny55g0x7jsgjl9n02vnxbhfz0vhhd4h174nki")))) |
63 | (build-system python-build-system) |
64 | (home-page "https://github.com/tkem/cachetools") |
65 | (synopsis "Memoizing collections and decorators including lru_cache") |
66 | (description "This module provides various memoizing collections and |
67 | decorators, including variants of the Python 3 Standard Library @code{lru_cache} |
68 | function decorator.") |
69 | (license license:expat))) |
70 | |
71 | (define-public python2-cachetools |
72 | (package-with-python2 python-cachetools)) |
73 | |
74 | (define-public python-bintrees |
75 | (package |
76 | (name "python-bintrees") |
77 | (version "2.0.7") |
78 | (source (origin |
79 | (method url-fetch) |
80 | (uri (pypi-uri "bintrees" version ".zip")) |
81 | (sha256 |
82 | (base32 |
83 | "0w0js514awl9qwamcr71spi8mmv7q3n4mgrqrnmr9w6f09k5wrv0")))) |
84 | (build-system python-build-system) |
85 | (native-inputs `(("unzip" ,unzip))) |
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.9.1") |
103 | (source (origin |
104 | (method url-fetch) |
105 | (uri (pypi-uri "dpkt" version)) |
106 | (sha256 |
107 | (base32 |
108 | "0rr9ygczhxkfb61778jx0cxs0sq46zwlcj5l3wn6xmd3iy3yx9y6")) |
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.20.0") |
189 | (source (origin |
190 | (method url-fetch) |
191 | (uri (pypi-uri "progressbar2" version)) |
192 | (sha256 |
193 | (base32 |
194 | "1xz5l3598bl2r1j8h6dqljbjf44f2d137ppi0l381adz4zd38vd1")))) |
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 | |
299 | (define-public python2-trollius |
300 | (package |
301 | (name "python2-trollius") |
302 | (version "2.1") |
303 | (source (origin |
304 | (method url-fetch) |
305 | (uri (pypi-uri "trollius" version)) |
306 | (sha256 |
307 | (base32 |
308 | "146c60hgcmgjkbf2hmiag52f9i3hka6shwbfybdsmlvqjnfms5nd")))) |
309 | (build-system python-build-system) |
310 | (home-page "https://github.com/haypo/trollius") |
311 | (propagated-inputs |
312 | `(("futures" ,python2-futures) |
313 | ("mock" ,python2-mock) |
314 | ("six" ,python2-six))) |
315 | (arguments |
316 | `(#:python ,python-2 |
317 | #:tests? #f)) |
318 | (synopsis "") |
319 | (description "") |
320 | (license license:asl2.0))) |
321 | |
322 | (define-public python-neovim |
323 | (package |
324 | (name "python-neovim") |
325 | (version "0.1.13") |
326 | (source (origin |
327 | (method url-fetch) |
328 | (uri (pypi-uri "neovim" version)) |
329 | (sha256 |
330 | (base32 |
331 | "0pzk5639jjjx46a6arkwy31falmk5w1061icbml8njm3rbrwwhgx")))) |
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 |