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 |