##// END OF EJS Templates
dependencies: bumped pytest libraries to latest versions.
marcink -
r1221:9a854dd7 default
parent child Browse files
Show More
@@ -1,1864 +1,1864 b''
1 1 # Generated by pip2nix 0.4.0
2 2 # See https://github.com/johbo/pip2nix
3 3
4 4 {
5 5 Babel = super.buildPythonPackage {
6 6 name = "Babel-1.3";
7 7 buildInputs = with self; [];
8 8 doCheck = false;
9 9 propagatedBuildInputs = with self; [pytz];
10 10 src = fetchurl {
11 11 url = "https://pypi.python.org/packages/33/27/e3978243a03a76398c384c83f7ca879bc6e8f1511233a621fcada135606e/Babel-1.3.tar.gz";
12 12 md5 = "5264ceb02717843cbc9ffce8e6e06bdb";
13 13 };
14 14 meta = {
15 15 license = [ pkgs.lib.licenses.bsdOriginal ];
16 16 };
17 17 };
18 18 Beaker = super.buildPythonPackage {
19 19 name = "Beaker-1.7.0";
20 20 buildInputs = with self; [];
21 21 doCheck = false;
22 22 propagatedBuildInputs = with self; [];
23 23 src = fetchurl {
24 24 url = "https://pypi.python.org/packages/97/8e/409d2e7c009b8aa803dc9e6f239f1db7c3cdf578249087a404e7c27a505d/Beaker-1.7.0.tar.gz";
25 25 md5 = "386be3f7fe427358881eee4622b428b3";
26 26 };
27 27 meta = {
28 28 license = [ pkgs.lib.licenses.bsdOriginal ];
29 29 };
30 30 };
31 31 CProfileV = super.buildPythonPackage {
32 32 name = "CProfileV-1.0.6";
33 33 buildInputs = with self; [];
34 34 doCheck = false;
35 35 propagatedBuildInputs = with self; [bottle];
36 36 src = fetchurl {
37 37 url = "https://pypi.python.org/packages/eb/df/983a0b6cfd3ac94abf023f5011cb04f33613ace196e33f53c86cf91850d5/CProfileV-1.0.6.tar.gz";
38 38 md5 = "08c7c242b6e64237bc53c5d13537e03d";
39 39 };
40 40 meta = {
41 41 license = [ pkgs.lib.licenses.mit ];
42 42 };
43 43 };
44 44 Chameleon = super.buildPythonPackage {
45 45 name = "Chameleon-2.24";
46 46 buildInputs = with self; [];
47 47 doCheck = false;
48 48 propagatedBuildInputs = with self; [];
49 49 src = fetchurl {
50 50 url = "https://pypi.python.org/packages/5a/9e/637379ffa13c5172b5c0e704833ffea6bf51cec7567f93fd6e903d53ed74/Chameleon-2.24.tar.gz";
51 51 md5 = "1b01f1f6533a8a11d0d2f2366dec5342";
52 52 };
53 53 meta = {
54 54 license = [ { fullName = "BSD-like (http://repoze.org/license.html)"; } ];
55 55 };
56 56 };
57 57 FormEncode = super.buildPythonPackage {
58 58 name = "FormEncode-1.2.4";
59 59 buildInputs = with self; [];
60 60 doCheck = false;
61 61 propagatedBuildInputs = with self; [];
62 62 src = fetchurl {
63 63 url = "https://pypi.python.org/packages/8e/59/0174271a6f004512e0201188593e6d319db139d14cb7490e488bbb078015/FormEncode-1.2.4.tar.gz";
64 64 md5 = "6bc17fb9aed8aea198975e888e2077f4";
65 65 };
66 66 meta = {
67 67 license = [ pkgs.lib.licenses.psfl ];
68 68 };
69 69 };
70 70 Jinja2 = super.buildPythonPackage {
71 71 name = "Jinja2-2.7.3";
72 72 buildInputs = with self; [];
73 73 doCheck = false;
74 74 propagatedBuildInputs = with self; [MarkupSafe];
75 75 src = fetchurl {
76 76 url = "https://pypi.python.org/packages/b0/73/eab0bca302d6d6a0b5c402f47ad1760dc9cb2dd14bbc1873ad48db258e4d/Jinja2-2.7.3.tar.gz";
77 77 md5 = "b9dffd2f3b43d673802fe857c8445b1a";
78 78 };
79 79 meta = {
80 80 license = [ pkgs.lib.licenses.bsdOriginal ];
81 81 };
82 82 };
83 83 Mako = super.buildPythonPackage {
84 84 name = "Mako-1.0.1";
85 85 buildInputs = with self; [];
86 86 doCheck = false;
87 87 propagatedBuildInputs = with self; [MarkupSafe];
88 88 src = fetchurl {
89 89 url = "https://pypi.python.org/packages/8e/a4/aa56533ecaa5f22ca92428f74e074d0c9337282933c722391902c8f9e0f8/Mako-1.0.1.tar.gz";
90 90 md5 = "9f0aafd177b039ef67b90ea350497a54";
91 91 };
92 92 meta = {
93 93 license = [ pkgs.lib.licenses.mit ];
94 94 };
95 95 };
96 96 Markdown = super.buildPythonPackage {
97 97 name = "Markdown-2.6.2";
98 98 buildInputs = with self; [];
99 99 doCheck = false;
100 100 propagatedBuildInputs = with self; [];
101 101 src = fetchurl {
102 102 url = "https://pypi.python.org/packages/62/8b/83658b5f6c220d5fcde9f9852d46ea54765d734cfbc5a9f4c05bfc36db4d/Markdown-2.6.2.tar.gz";
103 103 md5 = "256d19afcc564dc4ce4c229bb762f7ae";
104 104 };
105 105 meta = {
106 106 license = [ pkgs.lib.licenses.bsdOriginal ];
107 107 };
108 108 };
109 109 MarkupSafe = super.buildPythonPackage {
110 110 name = "MarkupSafe-0.23";
111 111 buildInputs = with self; [];
112 112 doCheck = false;
113 113 propagatedBuildInputs = with self; [];
114 114 src = fetchurl {
115 115 url = "https://pypi.python.org/packages/c0/41/bae1254e0396c0cc8cf1751cb7d9afc90a602353695af5952530482c963f/MarkupSafe-0.23.tar.gz";
116 116 md5 = "f5ab3deee4c37cd6a922fb81e730da6e";
117 117 };
118 118 meta = {
119 119 license = [ pkgs.lib.licenses.bsdOriginal ];
120 120 };
121 121 };
122 122 MySQL-python = super.buildPythonPackage {
123 123 name = "MySQL-python-1.2.5";
124 124 buildInputs = with self; [];
125 125 doCheck = false;
126 126 propagatedBuildInputs = with self; [];
127 127 src = fetchurl {
128 128 url = "https://pypi.python.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip";
129 129 md5 = "654f75b302db6ed8dc5a898c625e030c";
130 130 };
131 131 meta = {
132 132 license = [ pkgs.lib.licenses.gpl1 ];
133 133 };
134 134 };
135 135 Paste = super.buildPythonPackage {
136 136 name = "Paste-2.0.2";
137 137 buildInputs = with self; [];
138 138 doCheck = false;
139 139 propagatedBuildInputs = with self; [six];
140 140 src = fetchurl {
141 141 url = "https://pypi.python.org/packages/d5/8d/0f8ac40687b97ff3e07ebd1369be20bdb3f93864d2dc3c2ff542edb4ce50/Paste-2.0.2.tar.gz";
142 142 md5 = "4bfc8a7eaf858f6309d2ac0f40fc951c";
143 143 };
144 144 meta = {
145 145 license = [ pkgs.lib.licenses.mit ];
146 146 };
147 147 };
148 148 PasteDeploy = super.buildPythonPackage {
149 149 name = "PasteDeploy-1.5.2";
150 150 buildInputs = with self; [];
151 151 doCheck = false;
152 152 propagatedBuildInputs = with self; [];
153 153 src = fetchurl {
154 154 url = "https://pypi.python.org/packages/0f/90/8e20cdae206c543ea10793cbf4136eb9a8b3f417e04e40a29d72d9922cbd/PasteDeploy-1.5.2.tar.gz";
155 155 md5 = "352b7205c78c8de4987578d19431af3b";
156 156 };
157 157 meta = {
158 158 license = [ pkgs.lib.licenses.mit ];
159 159 };
160 160 };
161 161 PasteScript = super.buildPythonPackage {
162 162 name = "PasteScript-1.7.5";
163 163 buildInputs = with self; [];
164 164 doCheck = false;
165 165 propagatedBuildInputs = with self; [Paste PasteDeploy];
166 166 src = fetchurl {
167 167 url = "https://pypi.python.org/packages/a5/05/fc60efa7c2f17a1dbaeccb2a903a1e90902d92b9d00eebabe3095829d806/PasteScript-1.7.5.tar.gz";
168 168 md5 = "4c72d78dcb6bb993f30536842c16af4d";
169 169 };
170 170 meta = {
171 171 license = [ pkgs.lib.licenses.mit ];
172 172 };
173 173 };
174 174 Pygments = super.buildPythonPackage {
175 175 name = "Pygments-2.1.3";
176 176 buildInputs = with self; [];
177 177 doCheck = false;
178 178 propagatedBuildInputs = with self; [];
179 179 src = fetchurl {
180 180 url = "https://pypi.python.org/packages/b8/67/ab177979be1c81bc99c8d0592ef22d547e70bb4c6815c383286ed5dec504/Pygments-2.1.3.tar.gz";
181 181 md5 = "ed3fba2467c8afcda4d317e4ef2c6150";
182 182 };
183 183 meta = {
184 184 license = [ pkgs.lib.licenses.bsdOriginal ];
185 185 };
186 186 };
187 187 Pylons = super.buildPythonPackage {
188 188 name = "Pylons-1.0.1";
189 189 buildInputs = with self; [];
190 190 doCheck = false;
191 191 propagatedBuildInputs = with self; [Routes WebHelpers Beaker Paste PasteDeploy PasteScript FormEncode simplejson decorator nose Mako WebError WebTest Tempita MarkupSafe WebOb];
192 192 src = fetchurl {
193 193 url = "https://pypi.python.org/packages/a2/69/b835a6bad00acbfeed3f33c6e44fa3f936efc998c795bfb15c61a79ecf62/Pylons-1.0.1.tar.gz";
194 194 md5 = "6cb880d75fa81213192142b07a6e4915";
195 195 };
196 196 meta = {
197 197 license = [ pkgs.lib.licenses.bsdOriginal ];
198 198 };
199 199 };
200 200 Pyro4 = super.buildPythonPackage {
201 201 name = "Pyro4-4.41";
202 202 buildInputs = with self; [];
203 203 doCheck = false;
204 204 propagatedBuildInputs = with self; [serpent];
205 205 src = fetchurl {
206 206 url = "https://pypi.python.org/packages/56/2b/89b566b4bf3e7f8ba790db2d1223852f8cb454c52cab7693dd41f608ca2a/Pyro4-4.41.tar.gz";
207 207 md5 = "ed69e9bfafa9c06c049a87cb0c4c2b6c";
208 208 };
209 209 meta = {
210 210 license = [ pkgs.lib.licenses.mit ];
211 211 };
212 212 };
213 213 Routes = super.buildPythonPackage {
214 214 name = "Routes-1.13";
215 215 buildInputs = with self; [];
216 216 doCheck = false;
217 217 propagatedBuildInputs = with self; [repoze.lru];
218 218 src = fetchurl {
219 219 url = "https://pypi.python.org/packages/88/d3/259c3b3cde8837eb9441ab5f574a660e8a4acea8f54a078441d4d2acac1c/Routes-1.13.tar.gz";
220 220 md5 = "d527b0ab7dd9172b1275a41f97448783";
221 221 };
222 222 meta = {
223 223 license = [ pkgs.lib.licenses.bsdOriginal ];
224 224 };
225 225 };
226 226 SQLAlchemy = super.buildPythonPackage {
227 227 name = "SQLAlchemy-0.9.9";
228 228 buildInputs = with self; [];
229 229 doCheck = false;
230 230 propagatedBuildInputs = with self; [];
231 231 src = fetchurl {
232 232 url = "https://pypi.python.org/packages/28/f7/1bbfd0d8597e8c358d5e15a166a486ad82fc5579b4e67b6ef7c05b1d182b/SQLAlchemy-0.9.9.tar.gz";
233 233 md5 = "8a10a9bd13ed3336ef7333ac2cc679ff";
234 234 };
235 235 meta = {
236 236 license = [ pkgs.lib.licenses.mit ];
237 237 };
238 238 };
239 239 Sphinx = super.buildPythonPackage {
240 240 name = "Sphinx-1.2.2";
241 241 buildInputs = with self; [];
242 242 doCheck = false;
243 243 propagatedBuildInputs = with self; [Pygments docutils Jinja2];
244 244 src = fetchurl {
245 245 url = "https://pypi.python.org/packages/0a/50/34017e6efcd372893a416aba14b84a1a149fc7074537b0e9cb6ca7b7abe9/Sphinx-1.2.2.tar.gz";
246 246 md5 = "3dc73ccaa8d0bfb2d62fb671b1f7e8a4";
247 247 };
248 248 meta = {
249 249 license = [ pkgs.lib.licenses.bsdOriginal ];
250 250 };
251 251 };
252 252 Tempita = super.buildPythonPackage {
253 253 name = "Tempita-0.5.2";
254 254 buildInputs = with self; [];
255 255 doCheck = false;
256 256 propagatedBuildInputs = with self; [];
257 257 src = fetchurl {
258 258 url = "https://pypi.python.org/packages/56/c8/8ed6eee83dbddf7b0fc64dd5d4454bc05e6ccaafff47991f73f2894d9ff4/Tempita-0.5.2.tar.gz";
259 259 md5 = "4c2f17bb9d481821c41b6fbee904cea1";
260 260 };
261 261 meta = {
262 262 license = [ pkgs.lib.licenses.mit ];
263 263 };
264 264 };
265 265 URLObject = super.buildPythonPackage {
266 266 name = "URLObject-2.4.0";
267 267 buildInputs = with self; [];
268 268 doCheck = false;
269 269 propagatedBuildInputs = with self; [];
270 270 src = fetchurl {
271 271 url = "https://pypi.python.org/packages/cb/b6/e25e58500f9caef85d664bec71ec67c116897bfebf8622c32cb75d1ca199/URLObject-2.4.0.tar.gz";
272 272 md5 = "2ed819738a9f0a3051f31dc9924e3065";
273 273 };
274 274 meta = {
275 275 license = [ ];
276 276 };
277 277 };
278 278 WebError = super.buildPythonPackage {
279 279 name = "WebError-0.10.3";
280 280 buildInputs = with self; [];
281 281 doCheck = false;
282 282 propagatedBuildInputs = with self; [WebOb Tempita Pygments Paste];
283 283 src = fetchurl {
284 284 url = "https://pypi.python.org/packages/35/76/e7e5c2ce7e9c7f31b54c1ff295a495886d1279a002557d74dd8957346a79/WebError-0.10.3.tar.gz";
285 285 md5 = "84b9990b0baae6fd440b1e60cdd06f9a";
286 286 };
287 287 meta = {
288 288 license = [ pkgs.lib.licenses.mit ];
289 289 };
290 290 };
291 291 WebHelpers = super.buildPythonPackage {
292 292 name = "WebHelpers-1.3";
293 293 buildInputs = with self; [];
294 294 doCheck = false;
295 295 propagatedBuildInputs = with self; [MarkupSafe];
296 296 src = fetchurl {
297 297 url = "https://pypi.python.org/packages/ee/68/4d07672821d514184357f1552f2dad923324f597e722de3b016ca4f7844f/WebHelpers-1.3.tar.gz";
298 298 md5 = "32749ffadfc40fea51075a7def32588b";
299 299 };
300 300 meta = {
301 301 license = [ pkgs.lib.licenses.bsdOriginal ];
302 302 };
303 303 };
304 304 WebHelpers2 = super.buildPythonPackage {
305 305 name = "WebHelpers2-2.0";
306 306 buildInputs = with self; [];
307 307 doCheck = false;
308 308 propagatedBuildInputs = with self; [MarkupSafe six];
309 309 src = fetchurl {
310 310 url = "https://pypi.python.org/packages/ff/30/56342c6ea522439e3662427c8d7b5e5b390dff4ff2dc92d8afcb8ab68b75/WebHelpers2-2.0.tar.gz";
311 311 md5 = "0f6b68d70c12ee0aed48c00b24da13d3";
312 312 };
313 313 meta = {
314 314 license = [ pkgs.lib.licenses.mit ];
315 315 };
316 316 };
317 317 WebOb = super.buildPythonPackage {
318 318 name = "WebOb-1.3.1";
319 319 buildInputs = with self; [];
320 320 doCheck = false;
321 321 propagatedBuildInputs = with self; [];
322 322 src = fetchurl {
323 323 url = "https://pypi.python.org/packages/16/78/adfc0380b8a0d75b2d543fa7085ba98a573b1ae486d9def88d172b81b9fa/WebOb-1.3.1.tar.gz";
324 324 md5 = "20918251c5726956ba8fef22d1556177";
325 325 };
326 326 meta = {
327 327 license = [ pkgs.lib.licenses.mit ];
328 328 };
329 329 };
330 330 WebTest = super.buildPythonPackage {
331 331 name = "WebTest-1.4.3";
332 332 buildInputs = with self; [];
333 333 doCheck = false;
334 334 propagatedBuildInputs = with self; [WebOb];
335 335 src = fetchurl {
336 336 url = "https://pypi.python.org/packages/51/3d/84fd0f628df10b30c7db87895f56d0158e5411206b721ca903cb51bfd948/WebTest-1.4.3.zip";
337 337 md5 = "631ce728bed92c681a4020a36adbc353";
338 338 };
339 339 meta = {
340 340 license = [ pkgs.lib.licenses.mit ];
341 341 };
342 342 };
343 343 Whoosh = super.buildPythonPackage {
344 344 name = "Whoosh-2.7.0";
345 345 buildInputs = with self; [];
346 346 doCheck = false;
347 347 propagatedBuildInputs = with self; [];
348 348 src = fetchurl {
349 349 url = "https://pypi.python.org/packages/1c/dc/2f0231ff3875ded36df8c1ab851451e51a237dc0e5a86d3d96036158da94/Whoosh-2.7.0.zip";
350 350 md5 = "7abfd970f16fadc7311960f3fa0bc7a9";
351 351 };
352 352 meta = {
353 353 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.bsd2 ];
354 354 };
355 355 };
356 356 alembic = super.buildPythonPackage {
357 357 name = "alembic-0.8.4";
358 358 buildInputs = with self; [];
359 359 doCheck = false;
360 360 propagatedBuildInputs = with self; [SQLAlchemy Mako python-editor];
361 361 src = fetchurl {
362 362 url = "https://pypi.python.org/packages/ca/7e/299b4499b5c75e5a38c5845145ad24755bebfb8eec07a2e1c366b7181eeb/alembic-0.8.4.tar.gz";
363 363 md5 = "5f95d8ee62b443f9b37eb5bee76c582d";
364 364 };
365 365 meta = {
366 366 license = [ pkgs.lib.licenses.mit ];
367 367 };
368 368 };
369 369 amqplib = super.buildPythonPackage {
370 370 name = "amqplib-1.0.2";
371 371 buildInputs = with self; [];
372 372 doCheck = false;
373 373 propagatedBuildInputs = with self; [];
374 374 src = fetchurl {
375 375 url = "https://pypi.python.org/packages/75/b7/8c2429bf8d92354a0118614f9a4d15e53bc69ebedce534284111de5a0102/amqplib-1.0.2.tgz";
376 376 md5 = "5c92f17fbedd99b2b4a836d4352d1e2f";
377 377 };
378 378 meta = {
379 379 license = [ { fullName = "LGPL"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
380 380 };
381 381 };
382 382 anyjson = super.buildPythonPackage {
383 383 name = "anyjson-0.3.3";
384 384 buildInputs = with self; [];
385 385 doCheck = false;
386 386 propagatedBuildInputs = with self; [];
387 387 src = fetchurl {
388 388 url = "https://pypi.python.org/packages/c3/4d/d4089e1a3dd25b46bebdb55a992b0797cff657b4477bc32ce28038fdecbc/anyjson-0.3.3.tar.gz";
389 389 md5 = "2ea28d6ec311aeeebaf993cb3008b27c";
390 390 };
391 391 meta = {
392 392 license = [ pkgs.lib.licenses.bsdOriginal ];
393 393 };
394 394 };
395 395 appenlight-client = super.buildPythonPackage {
396 396 name = "appenlight-client-0.6.14";
397 397 buildInputs = with self; [];
398 398 doCheck = false;
399 399 propagatedBuildInputs = with self; [WebOb requests];
400 400 src = fetchurl {
401 401 url = "https://pypi.python.org/packages/4d/e0/23fee3ebada8143f707e65c06bcb82992040ee64ea8355e044ed55ebf0c1/appenlight_client-0.6.14.tar.gz";
402 402 md5 = "578c69b09f4356d898fff1199b98a95c";
403 403 };
404 404 meta = {
405 405 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "DFSG approved"; } ];
406 406 };
407 407 };
408 408 authomatic = super.buildPythonPackage {
409 409 name = "authomatic-0.1.0.post1";
410 410 buildInputs = with self; [];
411 411 doCheck = false;
412 412 propagatedBuildInputs = with self; [];
413 413 src = fetchurl {
414 414 url = "https://pypi.python.org/packages/08/1a/8a930461e604c2d5a7a871e1ac59fa82ccf994c32e807230c8d2fb07815a/Authomatic-0.1.0.post1.tar.gz";
415 415 md5 = "be3f3ce08747d776aae6d6cc8dcb49a9";
416 416 };
417 417 meta = {
418 418 license = [ pkgs.lib.licenses.mit ];
419 419 };
420 420 };
421 421 backport-ipaddress = super.buildPythonPackage {
422 422 name = "backport-ipaddress-0.1";
423 423 buildInputs = with self; [];
424 424 doCheck = false;
425 425 propagatedBuildInputs = with self; [];
426 426 src = fetchurl {
427 427 url = "https://pypi.python.org/packages/d3/30/54c6dab05a4dec44db25ff309f1fbb6b7a8bde3f2bade38bb9da67bbab8f/backport_ipaddress-0.1.tar.gz";
428 428 md5 = "9c1f45f4361f71b124d7293a60006c05";
429 429 };
430 430 meta = {
431 431 license = [ pkgs.lib.licenses.psfl ];
432 432 };
433 433 };
434 434 backports.shutil-get-terminal-size = super.buildPythonPackage {
435 435 name = "backports.shutil-get-terminal-size-1.0.0";
436 436 buildInputs = with self; [];
437 437 doCheck = false;
438 438 propagatedBuildInputs = with self; [];
439 439 src = fetchurl {
440 440 url = "https://pypi.python.org/packages/ec/9c/368086faa9c016efce5da3e0e13ba392c9db79e3ab740b763fe28620b18b/backports.shutil_get_terminal_size-1.0.0.tar.gz";
441 441 md5 = "03267762480bd86b50580dc19dff3c66";
442 442 };
443 443 meta = {
444 444 license = [ pkgs.lib.licenses.mit ];
445 445 };
446 446 };
447 447 bottle = super.buildPythonPackage {
448 448 name = "bottle-0.12.8";
449 449 buildInputs = with self; [];
450 450 doCheck = false;
451 451 propagatedBuildInputs = with self; [];
452 452 src = fetchurl {
453 453 url = "https://pypi.python.org/packages/52/df/e4a408f3a7af396d186d4ecd3b389dd764f0f943b4fa8d257bfe7b49d343/bottle-0.12.8.tar.gz";
454 454 md5 = "13132c0a8f607bf860810a6ee9064c5b";
455 455 };
456 456 meta = {
457 457 license = [ pkgs.lib.licenses.mit ];
458 458 };
459 459 };
460 460 bumpversion = super.buildPythonPackage {
461 461 name = "bumpversion-0.5.3";
462 462 buildInputs = with self; [];
463 463 doCheck = false;
464 464 propagatedBuildInputs = with self; [];
465 465 src = fetchurl {
466 466 url = "https://pypi.python.org/packages/14/41/8c9da3549f8e00c84f0432c3a8cf8ed6898374714676aab91501d48760db/bumpversion-0.5.3.tar.gz";
467 467 md5 = "c66a3492eafcf5ad4b024be9fca29820";
468 468 };
469 469 meta = {
470 470 license = [ pkgs.lib.licenses.mit ];
471 471 };
472 472 };
473 473 celery = super.buildPythonPackage {
474 474 name = "celery-2.2.10";
475 475 buildInputs = with self; [];
476 476 doCheck = false;
477 477 propagatedBuildInputs = with self; [python-dateutil anyjson kombu pyparsing];
478 478 src = fetchurl {
479 479 url = "https://pypi.python.org/packages/b1/64/860fd50e45844c83442e7953effcddeff66b2851d90b2d784f7201c111b8/celery-2.2.10.tar.gz";
480 480 md5 = "898bc87e54f278055b561316ba73e222";
481 481 };
482 482 meta = {
483 483 license = [ pkgs.lib.licenses.bsdOriginal ];
484 484 };
485 485 };
486 486 channelstream = super.buildPythonPackage {
487 487 name = "channelstream-0.5.2";
488 488 buildInputs = with self; [];
489 489 doCheck = false;
490 490 propagatedBuildInputs = with self; [gevent ws4py pyramid pyramid-jinja2 itsdangerous requests six];
491 491 src = fetchurl {
492 492 url = "https://pypi.python.org/packages/2b/31/29a8e085cf5bf97fa88e7b947adabfc581a18a3463adf77fb6dada34a65f/channelstream-0.5.2.tar.gz";
493 493 md5 = "1c5eb2a8a405be6f1073da94da6d81d3";
494 494 };
495 495 meta = {
496 496 license = [ pkgs.lib.licenses.bsdOriginal ];
497 497 };
498 498 };
499 499 click = super.buildPythonPackage {
500 500 name = "click-5.1";
501 501 buildInputs = with self; [];
502 502 doCheck = false;
503 503 propagatedBuildInputs = with self; [];
504 504 src = fetchurl {
505 505 url = "https://pypi.python.org/packages/b7/34/a496632c4fb6c1ee76efedf77bb8d28b29363d839953d95095b12defe791/click-5.1.tar.gz";
506 506 md5 = "9c5323008cccfe232a8b161fc8196d41";
507 507 };
508 508 meta = {
509 509 license = [ pkgs.lib.licenses.bsdOriginal ];
510 510 };
511 511 };
512 512 colander = super.buildPythonPackage {
513 513 name = "colander-1.2";
514 514 buildInputs = with self; [];
515 515 doCheck = false;
516 516 propagatedBuildInputs = with self; [translationstring iso8601];
517 517 src = fetchurl {
518 518 url = "https://pypi.python.org/packages/14/23/c9ceba07a6a1dc0eefbb215fc0dc64aabc2b22ee756bc0f0c13278fa0887/colander-1.2.tar.gz";
519 519 md5 = "83db21b07936a0726e588dae1914b9ed";
520 520 };
521 521 meta = {
522 522 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
523 523 };
524 524 };
525 525 configobj = super.buildPythonPackage {
526 526 name = "configobj-5.0.6";
527 527 buildInputs = with self; [];
528 528 doCheck = false;
529 529 propagatedBuildInputs = with self; [six];
530 530 src = fetchurl {
531 531 url = "https://pypi.python.org/packages/64/61/079eb60459c44929e684fa7d9e2fdca403f67d64dd9dbac27296be2e0fab/configobj-5.0.6.tar.gz";
532 532 md5 = "e472a3a1c2a67bb0ec9b5d54c13a47d6";
533 533 };
534 534 meta = {
535 535 license = [ pkgs.lib.licenses.bsdOriginal ];
536 536 };
537 537 };
538 538 cov-core = super.buildPythonPackage {
539 539 name = "cov-core-1.15.0";
540 540 buildInputs = with self; [];
541 541 doCheck = false;
542 542 propagatedBuildInputs = with self; [coverage];
543 543 src = fetchurl {
544 544 url = "https://pypi.python.org/packages/4b/87/13e75a47b4ba1be06f29f6d807ca99638bedc6b57fa491cd3de891ca2923/cov-core-1.15.0.tar.gz";
545 545 md5 = "f519d4cb4c4e52856afb14af52919fe6";
546 546 };
547 547 meta = {
548 548 license = [ pkgs.lib.licenses.mit ];
549 549 };
550 550 };
551 551 coverage = super.buildPythonPackage {
552 552 name = "coverage-3.7.1";
553 553 buildInputs = with self; [];
554 554 doCheck = false;
555 555 propagatedBuildInputs = with self; [];
556 556 src = fetchurl {
557 557 url = "https://pypi.python.org/packages/09/4f/89b06c7fdc09687bca507dc411c342556ef9c5a3b26756137a4878ff19bf/coverage-3.7.1.tar.gz";
558 558 md5 = "c47b36ceb17eaff3ecfab3bcd347d0df";
559 559 };
560 560 meta = {
561 561 license = [ pkgs.lib.licenses.bsdOriginal ];
562 562 };
563 563 };
564 564 cssselect = super.buildPythonPackage {
565 565 name = "cssselect-0.9.1";
566 566 buildInputs = with self; [];
567 567 doCheck = false;
568 568 propagatedBuildInputs = with self; [];
569 569 src = fetchurl {
570 570 url = "https://pypi.python.org/packages/aa/e5/9ee1460d485b94a6d55732eb7ad5b6c084caf73dd6f9cb0bb7d2a78fafe8/cssselect-0.9.1.tar.gz";
571 571 md5 = "c74f45966277dc7a0f768b9b0f3522ac";
572 572 };
573 573 meta = {
574 574 license = [ pkgs.lib.licenses.bsdOriginal ];
575 575 };
576 576 };
577 577 decorator = super.buildPythonPackage {
578 578 name = "decorator-3.4.2";
579 579 buildInputs = with self; [];
580 580 doCheck = false;
581 581 propagatedBuildInputs = with self; [];
582 582 src = fetchurl {
583 583 url = "https://pypi.python.org/packages/35/3a/42566eb7a2cbac774399871af04e11d7ae3fc2579e7dae85213b8d1d1c57/decorator-3.4.2.tar.gz";
584 584 md5 = "9e0536870d2b83ae27d58dbf22582f4d";
585 585 };
586 586 meta = {
587 587 license = [ pkgs.lib.licenses.bsdOriginal ];
588 588 };
589 589 };
590 590 deform = super.buildPythonPackage {
591 591 name = "deform-2.0a2";
592 592 buildInputs = with self; [];
593 593 doCheck = false;
594 594 propagatedBuildInputs = with self; [Chameleon colander peppercorn translationstring zope.deprecation];
595 595 src = fetchurl {
596 596 url = "https://pypi.python.org/packages/8d/b3/aab57e81da974a806dc9c5fa024a6404720f890a6dcf2e80885e3cb4609a/deform-2.0a2.tar.gz";
597 597 md5 = "7a90d41f7fbc18002ce74f39bd90a5e4";
598 598 };
599 599 meta = {
600 600 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
601 601 };
602 602 };
603 603 docutils = super.buildPythonPackage {
604 604 name = "docutils-0.12";
605 605 buildInputs = with self; [];
606 606 doCheck = false;
607 607 propagatedBuildInputs = with self; [];
608 608 src = fetchurl {
609 609 url = "https://pypi.python.org/packages/37/38/ceda70135b9144d84884ae2fc5886c6baac4edea39550f28bcd144c1234d/docutils-0.12.tar.gz";
610 610 md5 = "4622263b62c5c771c03502afa3157768";
611 611 };
612 612 meta = {
613 613 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.publicDomain pkgs.lib.licenses.gpl1 { fullName = "public domain, Python, 2-Clause BSD, GPL 3 (see COPYING.txt)"; } pkgs.lib.licenses.psfl ];
614 614 };
615 615 };
616 616 dogpile.cache = super.buildPythonPackage {
617 617 name = "dogpile.cache-0.6.1";
618 618 buildInputs = with self; [];
619 619 doCheck = false;
620 620 propagatedBuildInputs = with self; [];
621 621 src = fetchurl {
622 622 url = "https://pypi.python.org/packages/f6/a0/6f2142c58c6588d17c734265b103ae1cd0741e1681dd9483a63f22033375/dogpile.cache-0.6.1.tar.gz";
623 623 md5 = "35d7fb30f22bbd0685763d894dd079a9";
624 624 };
625 625 meta = {
626 626 license = [ pkgs.lib.licenses.bsdOriginal ];
627 627 };
628 628 };
629 629 dogpile.core = super.buildPythonPackage {
630 630 name = "dogpile.core-0.4.1";
631 631 buildInputs = with self; [];
632 632 doCheck = false;
633 633 propagatedBuildInputs = with self; [];
634 634 src = fetchurl {
635 635 url = "https://pypi.python.org/packages/0e/77/e72abc04c22aedf874301861e5c1e761231c288b5de369c18be8f4b5c9bb/dogpile.core-0.4.1.tar.gz";
636 636 md5 = "01cb19f52bba3e95c9b560f39341f045";
637 637 };
638 638 meta = {
639 639 license = [ pkgs.lib.licenses.bsdOriginal ];
640 640 };
641 641 };
642 642 dulwich = super.buildPythonPackage {
643 643 name = "dulwich-0.12.0";
644 644 buildInputs = with self; [];
645 645 doCheck = false;
646 646 propagatedBuildInputs = with self; [];
647 647 src = fetchurl {
648 648 url = "https://pypi.python.org/packages/6f/04/fbe561b6d45c0ec758330d5b7f5ba4b6cb4f1ca1ab49859d2fc16320da75/dulwich-0.12.0.tar.gz";
649 649 md5 = "f3a8a12bd9f9dd8c233e18f3d49436fa";
650 650 };
651 651 meta = {
652 652 license = [ pkgs.lib.licenses.gpl2Plus ];
653 653 };
654 654 };
655 655 ecdsa = super.buildPythonPackage {
656 656 name = "ecdsa-0.11";
657 657 buildInputs = with self; [];
658 658 doCheck = false;
659 659 propagatedBuildInputs = with self; [];
660 660 src = fetchurl {
661 661 url = "https://pypi.python.org/packages/6c/3f/92fe5dcdcaa7bd117be21e5520c9a54375112b66ec000d209e9e9519fad1/ecdsa-0.11.tar.gz";
662 662 md5 = "8ef586fe4dbb156697d756900cb41d7c";
663 663 };
664 664 meta = {
665 665 license = [ pkgs.lib.licenses.mit ];
666 666 };
667 667 };
668 668 elasticsearch = super.buildPythonPackage {
669 669 name = "elasticsearch-2.3.0";
670 670 buildInputs = with self; [];
671 671 doCheck = false;
672 672 propagatedBuildInputs = with self; [urllib3];
673 673 src = fetchurl {
674 674 url = "https://pypi.python.org/packages/10/35/5fd52c5f0b0ee405ed4b5195e8bce44c5e041787680dc7b94b8071cac600/elasticsearch-2.3.0.tar.gz";
675 675 md5 = "2550f3b51629cf1ef9636608af92c340";
676 676 };
677 677 meta = {
678 678 license = [ pkgs.lib.licenses.asl20 ];
679 679 };
680 680 };
681 681 elasticsearch-dsl = super.buildPythonPackage {
682 682 name = "elasticsearch-dsl-2.0.0";
683 683 buildInputs = with self; [];
684 684 doCheck = false;
685 685 propagatedBuildInputs = with self; [six python-dateutil elasticsearch];
686 686 src = fetchurl {
687 687 url = "https://pypi.python.org/packages/4e/5d/e788ae8dbe2ff4d13426db0a027533386a5c276c77a2654dc0e2007ce04a/elasticsearch-dsl-2.0.0.tar.gz";
688 688 md5 = "4cdfec81bb35383dd3b7d02d7dc5ee68";
689 689 };
690 690 meta = {
691 691 license = [ pkgs.lib.licenses.asl20 ];
692 692 };
693 693 };
694 694 enum34 = super.buildPythonPackage {
695 695 name = "enum34-1.1.6";
696 696 buildInputs = with self; [];
697 697 doCheck = false;
698 698 propagatedBuildInputs = with self; [];
699 699 src = fetchurl {
700 700 url = "https://pypi.python.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz";
701 701 md5 = "5f13a0841a61f7fc295c514490d120d0";
702 702 };
703 703 meta = {
704 704 license = [ pkgs.lib.licenses.bsdOriginal ];
705 705 };
706 706 };
707 707 future = super.buildPythonPackage {
708 708 name = "future-0.14.3";
709 709 buildInputs = with self; [];
710 710 doCheck = false;
711 711 propagatedBuildInputs = with self; [];
712 712 src = fetchurl {
713 713 url = "https://pypi.python.org/packages/83/80/8ef3a11a15f8eaafafa0937b20c1b3f73527e69ab6b3fa1cf94a5a96aabb/future-0.14.3.tar.gz";
714 714 md5 = "e94079b0bd1fc054929e8769fc0f6083";
715 715 };
716 716 meta = {
717 717 license = [ { fullName = "OSI Approved"; } pkgs.lib.licenses.mit ];
718 718 };
719 719 };
720 720 futures = super.buildPythonPackage {
721 721 name = "futures-3.0.2";
722 722 buildInputs = with self; [];
723 723 doCheck = false;
724 724 propagatedBuildInputs = with self; [];
725 725 src = fetchurl {
726 726 url = "https://pypi.python.org/packages/f8/e7/fc0fcbeb9193ba2d4de00b065e7fd5aecd0679e93ce95a07322b2b1434f4/futures-3.0.2.tar.gz";
727 727 md5 = "42aaf1e4de48d6e871d77dc1f9d96d5a";
728 728 };
729 729 meta = {
730 730 license = [ pkgs.lib.licenses.bsdOriginal ];
731 731 };
732 732 };
733 733 gevent = super.buildPythonPackage {
734 734 name = "gevent-1.1.1";
735 735 buildInputs = with self; [];
736 736 doCheck = false;
737 737 propagatedBuildInputs = with self; [greenlet];
738 738 src = fetchurl {
739 739 url = "https://pypi.python.org/packages/12/dc/0b2e57823225de86f6e111a65d212c9e3b64847dddaa19691a6cb94b0b2e/gevent-1.1.1.tar.gz";
740 740 md5 = "1532f5396ab4d07a231f1935483be7c3";
741 741 };
742 742 meta = {
743 743 license = [ pkgs.lib.licenses.mit ];
744 744 };
745 745 };
746 746 gnureadline = super.buildPythonPackage {
747 747 name = "gnureadline-6.3.3";
748 748 buildInputs = with self; [];
749 749 doCheck = false;
750 750 propagatedBuildInputs = with self; [];
751 751 src = fetchurl {
752 752 url = "https://pypi.python.org/packages/3a/ee/2c3f568b0a74974791ac590ec742ef6133e2fbd287a074ba72a53fa5e97c/gnureadline-6.3.3.tar.gz";
753 753 md5 = "c4af83c9a3fbeac8f2da9b5a7c60e51c";
754 754 };
755 755 meta = {
756 756 license = [ pkgs.lib.licenses.gpl1 ];
757 757 };
758 758 };
759 759 gprof2dot = super.buildPythonPackage {
760 name = "gprof2dot-2015.12.1";
760 name = "gprof2dot-2016.10.13";
761 761 buildInputs = with self; [];
762 762 doCheck = false;
763 763 propagatedBuildInputs = with self; [];
764 764 src = fetchurl {
765 url = "https://pypi.python.org/packages/b9/34/7bf93c1952d40fa5c95ad963f4d8344b61ef58558632402eca18e6c14127/gprof2dot-2015.12.1.tar.gz";
766 md5 = "e23bf4e2f94db032750c193384b4165b";
765 url = "https://pypi.python.org/packages/a0/e0/73c71baed306f0402a00a94ffc7b2be94ad1296dfcb8b46912655b93154c/gprof2dot-2016.10.13.tar.gz";
766 md5 = "0125401f15fd2afe1df686a76c64a4fd";
767 767 };
768 768 meta = {
769 769 license = [ { fullName = "LGPL"; } ];
770 770 };
771 771 };
772 772 greenlet = super.buildPythonPackage {
773 773 name = "greenlet-0.4.9";
774 774 buildInputs = with self; [];
775 775 doCheck = false;
776 776 propagatedBuildInputs = with self; [];
777 777 src = fetchurl {
778 778 url = "https://pypi.python.org/packages/4e/3d/9d421539b74e33608b245092870156b2e171fb49f2b51390aa4641eecb4a/greenlet-0.4.9.zip";
779 779 md5 = "c6659cdb2a5e591723e629d2eef22e82";
780 780 };
781 781 meta = {
782 782 license = [ pkgs.lib.licenses.mit ];
783 783 };
784 784 };
785 785 gunicorn = super.buildPythonPackage {
786 786 name = "gunicorn-19.6.0";
787 787 buildInputs = with self; [];
788 788 doCheck = false;
789 789 propagatedBuildInputs = with self; [];
790 790 src = fetchurl {
791 791 url = "https://pypi.python.org/packages/84/ce/7ea5396efad1cef682bbc4068e72a0276341d9d9d0f501da609fab9fcb80/gunicorn-19.6.0.tar.gz";
792 792 md5 = "338e5e8a83ea0f0625f768dba4597530";
793 793 };
794 794 meta = {
795 795 license = [ pkgs.lib.licenses.mit ];
796 796 };
797 797 };
798 798 infrae.cache = super.buildPythonPackage {
799 799 name = "infrae.cache-1.0.1";
800 800 buildInputs = with self; [];
801 801 doCheck = false;
802 802 propagatedBuildInputs = with self; [Beaker repoze.lru];
803 803 src = fetchurl {
804 804 url = "https://pypi.python.org/packages/bb/f0/e7d5e984cf6592fd2807dc7bc44a93f9d18e04e6a61f87fdfb2622422d74/infrae.cache-1.0.1.tar.gz";
805 805 md5 = "b09076a766747e6ed2a755cc62088e32";
806 806 };
807 807 meta = {
808 808 license = [ pkgs.lib.licenses.zpt21 ];
809 809 };
810 810 };
811 811 invoke = super.buildPythonPackage {
812 812 name = "invoke-0.13.0";
813 813 buildInputs = with self; [];
814 814 doCheck = false;
815 815 propagatedBuildInputs = with self; [];
816 816 src = fetchurl {
817 817 url = "https://pypi.python.org/packages/47/bf/d07ef52fa1ac645468858bbac7cb95b246a972a045e821493d17d89c81be/invoke-0.13.0.tar.gz";
818 818 md5 = "c0d1ed4bfb34eaab551662d8cfee6540";
819 819 };
820 820 meta = {
821 821 license = [ pkgs.lib.licenses.bsdOriginal ];
822 822 };
823 823 };
824 824 ipdb = super.buildPythonPackage {
825 825 name = "ipdb-0.10.1";
826 826 buildInputs = with self; [];
827 827 doCheck = false;
828 828 propagatedBuildInputs = with self; [ipython setuptools];
829 829 src = fetchurl {
830 830 url = "https://pypi.python.org/packages/eb/0a/0a37dc19572580336ad3813792c0d18c8d7117c2d66fc63c501f13a7a8f8/ipdb-0.10.1.tar.gz";
831 831 md5 = "4aeab65f633ddc98ebdb5eebf08dc713";
832 832 };
833 833 meta = {
834 834 license = [ pkgs.lib.licenses.bsdOriginal ];
835 835 };
836 836 };
837 837 ipython = super.buildPythonPackage {
838 838 name = "ipython-5.1.0";
839 839 buildInputs = with self; [];
840 840 doCheck = false;
841 841 propagatedBuildInputs = with self; [setuptools decorator pickleshare simplegeneric traitlets prompt-toolkit Pygments pexpect backports.shutil-get-terminal-size pathlib2 pexpect];
842 842 src = fetchurl {
843 843 url = "https://pypi.python.org/packages/89/63/a9292f7cd9d0090a0f995e1167f3f17d5889dcbc9a175261719c513b9848/ipython-5.1.0.tar.gz";
844 844 md5 = "47c8122420f65b58784cb4b9b4af35e3";
845 845 };
846 846 meta = {
847 847 license = [ pkgs.lib.licenses.bsdOriginal ];
848 848 };
849 849 };
850 850 ipython-genutils = super.buildPythonPackage {
851 851 name = "ipython-genutils-0.1.0";
852 852 buildInputs = with self; [];
853 853 doCheck = false;
854 854 propagatedBuildInputs = with self; [];
855 855 src = fetchurl {
856 856 url = "https://pypi.python.org/packages/71/b7/a64c71578521606edbbce15151358598f3dfb72a3431763edc2baf19e71f/ipython_genutils-0.1.0.tar.gz";
857 857 md5 = "9a8afbe0978adbcbfcb3b35b2d015a56";
858 858 };
859 859 meta = {
860 860 license = [ pkgs.lib.licenses.bsdOriginal ];
861 861 };
862 862 };
863 863 iso8601 = super.buildPythonPackage {
864 864 name = "iso8601-0.1.11";
865 865 buildInputs = with self; [];
866 866 doCheck = false;
867 867 propagatedBuildInputs = with self; [];
868 868 src = fetchurl {
869 869 url = "https://pypi.python.org/packages/c0/75/c9209ee4d1b5975eb8c2cba4428bde6b61bd55664a98290dd015cdb18e98/iso8601-0.1.11.tar.gz";
870 870 md5 = "b06d11cd14a64096f907086044f0fe38";
871 871 };
872 872 meta = {
873 873 license = [ pkgs.lib.licenses.mit ];
874 874 };
875 875 };
876 876 itsdangerous = super.buildPythonPackage {
877 877 name = "itsdangerous-0.24";
878 878 buildInputs = with self; [];
879 879 doCheck = false;
880 880 propagatedBuildInputs = with self; [];
881 881 src = fetchurl {
882 882 url = "https://pypi.python.org/packages/dc/b4/a60bcdba945c00f6d608d8975131ab3f25b22f2bcfe1dab221165194b2d4/itsdangerous-0.24.tar.gz";
883 883 md5 = "a3d55aa79369aef5345c036a8a26307f";
884 884 };
885 885 meta = {
886 886 license = [ pkgs.lib.licenses.bsdOriginal ];
887 887 };
888 888 };
889 889 kombu = super.buildPythonPackage {
890 890 name = "kombu-1.5.1";
891 891 buildInputs = with self; [];
892 892 doCheck = false;
893 893 propagatedBuildInputs = with self; [anyjson amqplib];
894 894 src = fetchurl {
895 895 url = "https://pypi.python.org/packages/19/53/74bf2a624644b45f0850a638752514fc10a8e1cbd738f10804951a6df3f5/kombu-1.5.1.tar.gz";
896 896 md5 = "50662f3c7e9395b3d0721fb75d100b63";
897 897 };
898 898 meta = {
899 899 license = [ pkgs.lib.licenses.bsdOriginal ];
900 900 };
901 901 };
902 902 lxml = super.buildPythonPackage {
903 903 name = "lxml-3.4.4";
904 904 buildInputs = with self; [];
905 905 doCheck = false;
906 906 propagatedBuildInputs = with self; [];
907 907 src = fetchurl {
908 908 url = "https://pypi.python.org/packages/63/c7/4f2a2a4ad6c6fa99b14be6b3c1cece9142e2d915aa7c43c908677afc8fa4/lxml-3.4.4.tar.gz";
909 909 md5 = "a9a65972afc173ec7a39c585f4eea69c";
910 910 };
911 911 meta = {
912 912 license = [ pkgs.lib.licenses.bsdOriginal ];
913 913 };
914 914 };
915 915 meld3 = super.buildPythonPackage {
916 916 name = "meld3-1.0.2";
917 917 buildInputs = with self; [];
918 918 doCheck = false;
919 919 propagatedBuildInputs = with self; [];
920 920 src = fetchurl {
921 921 url = "https://pypi.python.org/packages/45/a0/317c6422b26c12fe0161e936fc35f36552069ba8e6f7ecbd99bbffe32a5f/meld3-1.0.2.tar.gz";
922 922 md5 = "3ccc78cd79cffd63a751ad7684c02c91";
923 923 };
924 924 meta = {
925 925 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
926 926 };
927 927 };
928 928 mock = super.buildPythonPackage {
929 929 name = "mock-1.0.1";
930 930 buildInputs = with self; [];
931 931 doCheck = false;
932 932 propagatedBuildInputs = with self; [];
933 933 src = fetchurl {
934 934 url = "https://pypi.python.org/packages/15/45/30273ee91feb60dabb8fbb2da7868520525f02cf910279b3047182feed80/mock-1.0.1.zip";
935 935 md5 = "869f08d003c289a97c1a6610faf5e913";
936 936 };
937 937 meta = {
938 938 license = [ pkgs.lib.licenses.bsdOriginal ];
939 939 };
940 940 };
941 941 msgpack-python = super.buildPythonPackage {
942 942 name = "msgpack-python-0.4.6";
943 943 buildInputs = with self; [];
944 944 doCheck = false;
945 945 propagatedBuildInputs = with self; [];
946 946 src = fetchurl {
947 947 url = "https://pypi.python.org/packages/15/ce/ff2840885789ef8035f66cd506ea05bdb228340307d5e71a7b1e3f82224c/msgpack-python-0.4.6.tar.gz";
948 948 md5 = "8b317669314cf1bc881716cccdaccb30";
949 949 };
950 950 meta = {
951 951 license = [ pkgs.lib.licenses.asl20 ];
952 952 };
953 953 };
954 954 nose = super.buildPythonPackage {
955 955 name = "nose-1.3.6";
956 956 buildInputs = with self; [];
957 957 doCheck = false;
958 958 propagatedBuildInputs = with self; [];
959 959 src = fetchurl {
960 960 url = "https://pypi.python.org/packages/70/c7/469e68148d17a0d3db5ed49150242fd70a74a8147b8f3f8b87776e028d99/nose-1.3.6.tar.gz";
961 961 md5 = "0ca546d81ca8309080fc80cb389e7a16";
962 962 };
963 963 meta = {
964 964 license = [ { fullName = "GNU Library or Lesser General Public License (LGPL)"; } { fullName = "GNU LGPL"; } ];
965 965 };
966 966 };
967 967 objgraph = super.buildPythonPackage {
968 968 name = "objgraph-2.0.0";
969 969 buildInputs = with self; [];
970 970 doCheck = false;
971 971 propagatedBuildInputs = with self; [];
972 972 src = fetchurl {
973 973 url = "https://pypi.python.org/packages/d7/33/ace750b59247496ed769b170586c5def7202683f3d98e737b75b767ff29e/objgraph-2.0.0.tar.gz";
974 974 md5 = "25b0d5e5adc74aa63ead15699614159c";
975 975 };
976 976 meta = {
977 977 license = [ pkgs.lib.licenses.mit ];
978 978 };
979 979 };
980 980 packaging = super.buildPythonPackage {
981 981 name = "packaging-15.2";
982 982 buildInputs = with self; [];
983 983 doCheck = false;
984 984 propagatedBuildInputs = with self; [];
985 985 src = fetchurl {
986 986 url = "https://pypi.python.org/packages/24/c4/185da1304f07047dc9e0c46c31db75c0351bd73458ac3efad7da3dbcfbe1/packaging-15.2.tar.gz";
987 987 md5 = "c16093476f6ced42128bf610e5db3784";
988 988 };
989 989 meta = {
990 990 license = [ pkgs.lib.licenses.asl20 ];
991 991 };
992 992 };
993 993 paramiko = super.buildPythonPackage {
994 994 name = "paramiko-1.15.1";
995 995 buildInputs = with self; [];
996 996 doCheck = false;
997 997 propagatedBuildInputs = with self; [pycrypto ecdsa];
998 998 src = fetchurl {
999 999 url = "https://pypi.python.org/packages/04/2b/a22d2a560c1951abbbf95a0628e245945565f70dc082d9e784666887222c/paramiko-1.15.1.tar.gz";
1000 1000 md5 = "48c274c3f9b1282932567b21f6acf3b5";
1001 1001 };
1002 1002 meta = {
1003 1003 license = [ { fullName = "LGPL"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1004 1004 };
1005 1005 };
1006 1006 pathlib2 = super.buildPythonPackage {
1007 1007 name = "pathlib2-2.1.0";
1008 1008 buildInputs = with self; [];
1009 1009 doCheck = false;
1010 1010 propagatedBuildInputs = with self; [six];
1011 1011 src = fetchurl {
1012 1012 url = "https://pypi.python.org/packages/c9/27/8448b10d8440c08efeff0794adf7d0ed27adb98372c70c7b38f3947d4749/pathlib2-2.1.0.tar.gz";
1013 1013 md5 = "38e4f58b4d69dfcb9edb49a54a8b28d2";
1014 1014 };
1015 1015 meta = {
1016 1016 license = [ pkgs.lib.licenses.mit ];
1017 1017 };
1018 1018 };
1019 1019 peppercorn = super.buildPythonPackage {
1020 1020 name = "peppercorn-0.5";
1021 1021 buildInputs = with self; [];
1022 1022 doCheck = false;
1023 1023 propagatedBuildInputs = with self; [];
1024 1024 src = fetchurl {
1025 1025 url = "https://pypi.python.org/packages/45/ec/a62ec317d1324a01567c5221b420742f094f05ee48097e5157d32be3755c/peppercorn-0.5.tar.gz";
1026 1026 md5 = "f08efbca5790019ab45d76b7244abd40";
1027 1027 };
1028 1028 meta = {
1029 1029 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1030 1030 };
1031 1031 };
1032 1032 pexpect = super.buildPythonPackage {
1033 1033 name = "pexpect-4.2.1";
1034 1034 buildInputs = with self; [];
1035 1035 doCheck = false;
1036 1036 propagatedBuildInputs = with self; [ptyprocess];
1037 1037 src = fetchurl {
1038 1038 url = "https://pypi.python.org/packages/e8/13/d0b0599099d6cd23663043a2a0bb7c61e58c6ba359b2656e6fb000ef5b98/pexpect-4.2.1.tar.gz";
1039 1039 md5 = "3694410001a99dff83f0b500a1ca1c95";
1040 1040 };
1041 1041 meta = {
1042 1042 license = [ pkgs.lib.licenses.isc { fullName = "ISC License (ISCL)"; } ];
1043 1043 };
1044 1044 };
1045 1045 pickleshare = super.buildPythonPackage {
1046 1046 name = "pickleshare-0.7.4";
1047 1047 buildInputs = with self; [];
1048 1048 doCheck = false;
1049 1049 propagatedBuildInputs = with self; [pathlib2];
1050 1050 src = fetchurl {
1051 1051 url = "https://pypi.python.org/packages/69/fe/dd137d84daa0fd13a709e448138e310d9ea93070620c9db5454e234af525/pickleshare-0.7.4.tar.gz";
1052 1052 md5 = "6a9e5dd8dfc023031f6b7b3f824cab12";
1053 1053 };
1054 1054 meta = {
1055 1055 license = [ pkgs.lib.licenses.mit ];
1056 1056 };
1057 1057 };
1058 1058 prompt-toolkit = super.buildPythonPackage {
1059 1059 name = "prompt-toolkit-1.0.9";
1060 1060 buildInputs = with self; [];
1061 1061 doCheck = false;
1062 1062 propagatedBuildInputs = with self; [six wcwidth];
1063 1063 src = fetchurl {
1064 1064 url = "https://pypi.python.org/packages/83/14/5ac258da6c530eca02852ee25c7a9ff3ca78287bb4c198d0d0055845d856/prompt_toolkit-1.0.9.tar.gz";
1065 1065 md5 = "a39f91a54308fb7446b1a421c11f227c";
1066 1066 };
1067 1067 meta = {
1068 1068 license = [ pkgs.lib.licenses.bsdOriginal ];
1069 1069 };
1070 1070 };
1071 1071 psutil = super.buildPythonPackage {
1072 1072 name = "psutil-4.3.1";
1073 1073 buildInputs = with self; [];
1074 1074 doCheck = false;
1075 1075 propagatedBuildInputs = with self; [];
1076 1076 src = fetchurl {
1077 1077 url = "https://pypi.python.org/packages/78/cc/f267a1371f229bf16db6a4e604428c3b032b823b83155bd33cef45e49a53/psutil-4.3.1.tar.gz";
1078 1078 md5 = "199a366dba829c88bddaf5b41d19ddc0";
1079 1079 };
1080 1080 meta = {
1081 1081 license = [ pkgs.lib.licenses.bsdOriginal ];
1082 1082 };
1083 1083 };
1084 1084 psycopg2 = super.buildPythonPackage {
1085 1085 name = "psycopg2-2.6.1";
1086 1086 buildInputs = with self; [];
1087 1087 doCheck = false;
1088 1088 propagatedBuildInputs = with self; [];
1089 1089 src = fetchurl {
1090 1090 url = "https://pypi.python.org/packages/86/fd/cc8315be63a41fe000cce20482a917e874cdc1151e62cb0141f5e55f711e/psycopg2-2.6.1.tar.gz";
1091 1091 md5 = "842b44f8c95517ed5b792081a2370da1";
1092 1092 };
1093 1093 meta = {
1094 1094 license = [ pkgs.lib.licenses.zpt21 { fullName = "GNU Library or Lesser General Public License (LGPL)"; } { fullName = "LGPL with exceptions or ZPL"; } ];
1095 1095 };
1096 1096 };
1097 1097 ptyprocess = super.buildPythonPackage {
1098 1098 name = "ptyprocess-0.5.1";
1099 1099 buildInputs = with self; [];
1100 1100 doCheck = false;
1101 1101 propagatedBuildInputs = with self; [];
1102 1102 src = fetchurl {
1103 1103 url = "https://pypi.python.org/packages/db/d7/b465161910f3d1cef593c5e002bff67e0384898f597f1a7fdc8db4c02bf6/ptyprocess-0.5.1.tar.gz";
1104 1104 md5 = "94e537122914cc9ec9c1eadcd36e73a1";
1105 1105 };
1106 1106 meta = {
1107 1107 license = [ ];
1108 1108 };
1109 1109 };
1110 1110 py = super.buildPythonPackage {
1111 name = "py-1.4.29";
1111 name = "py-1.4.31";
1112 1112 buildInputs = with self; [];
1113 1113 doCheck = false;
1114 1114 propagatedBuildInputs = with self; [];
1115 1115 src = fetchurl {
1116 url = "https://pypi.python.org/packages/2a/bc/a1a4a332ac10069b8e5e25136a35e08a03f01fd6ab03d819889d79a1fd65/py-1.4.29.tar.gz";
1117 md5 = "c28e0accba523a29b35a48bb703fb96c";
1116 url = "https://pypi.python.org/packages/f4/9a/8dfda23f36600dd701c6722316ba8a3ab4b990261f83e7d3ffc6dfedf7ef/py-1.4.31.tar.gz";
1117 md5 = "5d2c63c56dc3f2115ec35c066ecd582b";
1118 1118 };
1119 1119 meta = {
1120 1120 license = [ pkgs.lib.licenses.mit ];
1121 1121 };
1122 1122 };
1123 1123 py-bcrypt = super.buildPythonPackage {
1124 1124 name = "py-bcrypt-0.4";
1125 1125 buildInputs = with self; [];
1126 1126 doCheck = false;
1127 1127 propagatedBuildInputs = with self; [];
1128 1128 src = fetchurl {
1129 1129 url = "https://pypi.python.org/packages/68/b1/1c3068c5c4d2e35c48b38dcc865301ebfdf45f54507086ac65ced1fd3b3d/py-bcrypt-0.4.tar.gz";
1130 1130 md5 = "dd8b367d6b716a2ea2e72392525f4e36";
1131 1131 };
1132 1132 meta = {
1133 1133 license = [ pkgs.lib.licenses.bsdOriginal ];
1134 1134 };
1135 1135 };
1136 1136 py-gfm = super.buildPythonPackage {
1137 1137 name = "py-gfm-0.1.3";
1138 1138 buildInputs = with self; [];
1139 1139 doCheck = false;
1140 1140 propagatedBuildInputs = with self; [setuptools Markdown];
1141 1141 src = fetchurl {
1142 1142 url = "https://pypi.python.org/packages/12/e4/6b3d8678da04f97d7490d8264d8de51c2dc9fb91209ccee9c515c95e14c5/py-gfm-0.1.3.tar.gz";
1143 1143 md5 = "e588d9e69640a241b97e2c59c22527a6";
1144 1144 };
1145 1145 meta = {
1146 1146 license = [ pkgs.lib.licenses.bsdOriginal ];
1147 1147 };
1148 1148 };
1149 1149 pycrypto = super.buildPythonPackage {
1150 1150 name = "pycrypto-2.6.1";
1151 1151 buildInputs = with self; [];
1152 1152 doCheck = false;
1153 1153 propagatedBuildInputs = with self; [];
1154 1154 src = fetchurl {
1155 1155 url = "https://pypi.python.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz";
1156 1156 md5 = "55a61a054aa66812daf5161a0d5d7eda";
1157 1157 };
1158 1158 meta = {
1159 1159 license = [ pkgs.lib.licenses.publicDomain ];
1160 1160 };
1161 1161 };
1162 1162 pycurl = super.buildPythonPackage {
1163 1163 name = "pycurl-7.19.5";
1164 1164 buildInputs = with self; [];
1165 1165 doCheck = false;
1166 1166 propagatedBuildInputs = with self; [];
1167 1167 src = fetchurl {
1168 1168 url = "https://pypi.python.org/packages/6c/48/13bad289ef6f4869b1d8fc11ae54de8cfb3cc4a2eb9f7419c506f763be46/pycurl-7.19.5.tar.gz";
1169 1169 md5 = "47b4eac84118e2606658122104e62072";
1170 1170 };
1171 1171 meta = {
1172 1172 license = [ pkgs.lib.licenses.mit { fullName = "LGPL/MIT"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1173 1173 };
1174 1174 };
1175 1175 pyflakes = super.buildPythonPackage {
1176 1176 name = "pyflakes-0.8.1";
1177 1177 buildInputs = with self; [];
1178 1178 doCheck = false;
1179 1179 propagatedBuildInputs = with self; [];
1180 1180 src = fetchurl {
1181 1181 url = "https://pypi.python.org/packages/75/22/a90ec0252f4f87f3ffb6336504de71fe16a49d69c4538dae2f12b9360a38/pyflakes-0.8.1.tar.gz";
1182 1182 md5 = "905fe91ad14b912807e8fdc2ac2e2c23";
1183 1183 };
1184 1184 meta = {
1185 1185 license = [ pkgs.lib.licenses.mit ];
1186 1186 };
1187 1187 };
1188 1188 pygments-markdown-lexer = super.buildPythonPackage {
1189 1189 name = "pygments-markdown-lexer-0.1.0.dev39";
1190 1190 buildInputs = with self; [];
1191 1191 doCheck = false;
1192 1192 propagatedBuildInputs = with self; [Pygments];
1193 1193 src = fetchurl {
1194 1194 url = "https://pypi.python.org/packages/c3/12/674cdee66635d638cedb2c5d9c85ce507b7b2f91bdba29e482f1b1160ff6/pygments-markdown-lexer-0.1.0.dev39.zip";
1195 1195 md5 = "6360fe0f6d1f896e35b7a0142ce6459c";
1196 1196 };
1197 1197 meta = {
1198 1198 license = [ pkgs.lib.licenses.asl20 ];
1199 1199 };
1200 1200 };
1201 1201 pyparsing = super.buildPythonPackage {
1202 1202 name = "pyparsing-1.5.7";
1203 1203 buildInputs = with self; [];
1204 1204 doCheck = false;
1205 1205 propagatedBuildInputs = with self; [];
1206 1206 src = fetchurl {
1207 1207 url = "https://pypi.python.org/packages/2e/26/e8fb5b4256a5f5036be7ce115ef8db8d06bc537becfbdc46c6af008314ee/pyparsing-1.5.7.zip";
1208 1208 md5 = "b86854857a368d6ccb4d5b6e76d0637f";
1209 1209 };
1210 1210 meta = {
1211 1211 license = [ pkgs.lib.licenses.mit ];
1212 1212 };
1213 1213 };
1214 1214 pyramid = super.buildPythonPackage {
1215 1215 name = "pyramid-1.6.1";
1216 1216 buildInputs = with self; [];
1217 1217 doCheck = false;
1218 1218 propagatedBuildInputs = with self; [setuptools WebOb repoze.lru zope.interface zope.deprecation venusian translationstring PasteDeploy];
1219 1219 src = fetchurl {
1220 1220 url = "https://pypi.python.org/packages/30/b3/fcc4a2a4800cbf21989e00454b5828cf1f7fe35c63e0810b350e56d4c475/pyramid-1.6.1.tar.gz";
1221 1221 md5 = "b18688ff3cc33efdbb098a35b45dd122";
1222 1222 };
1223 1223 meta = {
1224 1224 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1225 1225 };
1226 1226 };
1227 1227 pyramid-beaker = super.buildPythonPackage {
1228 1228 name = "pyramid-beaker-0.8";
1229 1229 buildInputs = with self; [];
1230 1230 doCheck = false;
1231 1231 propagatedBuildInputs = with self; [pyramid Beaker];
1232 1232 src = fetchurl {
1233 1233 url = "https://pypi.python.org/packages/d9/6e/b85426e00fd3d57f4545f74e1c3828552d8700f13ededeef9233f7bca8be/pyramid_beaker-0.8.tar.gz";
1234 1234 md5 = "22f14be31b06549f80890e2c63a93834";
1235 1235 };
1236 1236 meta = {
1237 1237 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1238 1238 };
1239 1239 };
1240 1240 pyramid-debugtoolbar = super.buildPythonPackage {
1241 1241 name = "pyramid-debugtoolbar-2.4.2";
1242 1242 buildInputs = with self; [];
1243 1243 doCheck = false;
1244 1244 propagatedBuildInputs = with self; [pyramid pyramid-mako repoze.lru Pygments];
1245 1245 src = fetchurl {
1246 1246 url = "https://pypi.python.org/packages/89/00/ed5426ee41ed747ba3ffd30e8230841a6878286ea67d480b1444d24f06a2/pyramid_debugtoolbar-2.4.2.tar.gz";
1247 1247 md5 = "073ea67086cc4bd5decc3a000853642d";
1248 1248 };
1249 1249 meta = {
1250 1250 license = [ { fullName = "Repoze Public License"; } pkgs.lib.licenses.bsdOriginal ];
1251 1251 };
1252 1252 };
1253 1253 pyramid-jinja2 = super.buildPythonPackage {
1254 1254 name = "pyramid-jinja2-2.5";
1255 1255 buildInputs = with self; [];
1256 1256 doCheck = false;
1257 1257 propagatedBuildInputs = with self; [pyramid zope.deprecation Jinja2 MarkupSafe];
1258 1258 src = fetchurl {
1259 1259 url = "https://pypi.python.org/packages/a1/80/595e26ffab7deba7208676b6936b7e5a721875710f982e59899013cae1ed/pyramid_jinja2-2.5.tar.gz";
1260 1260 md5 = "07cb6547204ac5e6f0b22a954ccee928";
1261 1261 };
1262 1262 meta = {
1263 1263 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1264 1264 };
1265 1265 };
1266 1266 pyramid-mako = super.buildPythonPackage {
1267 1267 name = "pyramid-mako-1.0.2";
1268 1268 buildInputs = with self; [];
1269 1269 doCheck = false;
1270 1270 propagatedBuildInputs = with self; [pyramid Mako];
1271 1271 src = fetchurl {
1272 1272 url = "https://pypi.python.org/packages/f1/92/7e69bcf09676d286a71cb3bbb887b16595b96f9ba7adbdc239ffdd4b1eb9/pyramid_mako-1.0.2.tar.gz";
1273 1273 md5 = "ee25343a97eb76bd90abdc2a774eb48a";
1274 1274 };
1275 1275 meta = {
1276 1276 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1277 1277 };
1278 1278 };
1279 1279 pysqlite = super.buildPythonPackage {
1280 1280 name = "pysqlite-2.6.3";
1281 1281 buildInputs = with self; [];
1282 1282 doCheck = false;
1283 1283 propagatedBuildInputs = with self; [];
1284 1284 src = fetchurl {
1285 1285 url = "https://pypi.python.org/packages/5c/a6/1c429cd4c8069cf4bfbd0eb4d592b3f4042155a8202df83d7e9b93aa3dc2/pysqlite-2.6.3.tar.gz";
1286 1286 md5 = "7ff1cedee74646b50117acff87aa1cfa";
1287 1287 };
1288 1288 meta = {
1289 1289 license = [ { fullName = "zlib/libpng License"; } { fullName = "zlib/libpng license"; } ];
1290 1290 };
1291 1291 };
1292 1292 pytest = super.buildPythonPackage {
1293 name = "pytest-2.8.5";
1293 name = "pytest-3.0.5";
1294 1294 buildInputs = with self; [];
1295 1295 doCheck = false;
1296 1296 propagatedBuildInputs = with self; [py];
1297 1297 src = fetchurl {
1298 url = "https://pypi.python.org/packages/b1/3d/d7ea9b0c51e0cacded856e49859f0a13452747491e842c236bbab3714afe/pytest-2.8.5.zip";
1299 md5 = "8493b06f700862f1294298d6c1b715a9";
1298 url = "https://pypi.python.org/packages/a8/87/b7ca49efe52d2b4169f2bfc49aa5e384173c4619ea8e635f123a0dac5b75/pytest-3.0.5.tar.gz";
1299 md5 = "cefd527b59332688bf5db4a10aa8a7cb";
1300 1300 };
1301 1301 meta = {
1302 1302 license = [ pkgs.lib.licenses.mit ];
1303 1303 };
1304 1304 };
1305 1305 pytest-catchlog = super.buildPythonPackage {
1306 1306 name = "pytest-catchlog-1.2.2";
1307 1307 buildInputs = with self; [];
1308 1308 doCheck = false;
1309 1309 propagatedBuildInputs = with self; [py pytest];
1310 1310 src = fetchurl {
1311 1311 url = "https://pypi.python.org/packages/f2/2b/2faccdb1a978fab9dd0bf31cca9f6847fbe9184a0bdcc3011ac41dd44191/pytest-catchlog-1.2.2.zip";
1312 1312 md5 = "09d890c54c7456c818102b7ff8c182c8";
1313 1313 };
1314 1314 meta = {
1315 1315 license = [ pkgs.lib.licenses.mit ];
1316 1316 };
1317 1317 };
1318 1318 pytest-cov = super.buildPythonPackage {
1319 name = "pytest-cov-1.8.1";
1319 name = "pytest-cov-2.4.0";
1320 1320 buildInputs = with self; [];
1321 1321 doCheck = false;
1322 propagatedBuildInputs = with self; [py pytest coverage cov-core];
1322 propagatedBuildInputs = with self; [pytest coverage];
1323 1323 src = fetchurl {
1324 url = "https://pypi.python.org/packages/11/4b/b04646e97f1721878eb21e9f779102d84dd044d324382263b1770a3e4838/pytest-cov-1.8.1.tar.gz";
1325 md5 = "76c778afa2494088270348be42d759fc";
1324 url = "https://pypi.python.org/packages/00/c0/2bfd1fcdb9d407b8ac8185b1cb5ff458105c6b207a9a7f0e13032de9828f/pytest-cov-2.4.0.tar.gz";
1325 md5 = "2fda09677d232acc99ec1b3c5831e33f";
1326 1326 };
1327 1327 meta = {
1328 license = [ pkgs.lib.licenses.mit ];
1328 license = [ pkgs.lib.licenses.bsdOriginal pkgs.lib.licenses.mit ];
1329 1329 };
1330 1330 };
1331 1331 pytest-profiling = super.buildPythonPackage {
1332 name = "pytest-profiling-1.0.1";
1332 name = "pytest-profiling-1.2.2";
1333 1333 buildInputs = with self; [];
1334 1334 doCheck = false;
1335 1335 propagatedBuildInputs = with self; [six pytest gprof2dot];
1336 1336 src = fetchurl {
1337 url = "https://pypi.python.org/packages/d8/67/8ffab73406e22870e07fa4dc8dce1d7689b26dba8efd00161c9b6fc01ec0/pytest-profiling-1.0.1.tar.gz";
1338 md5 = "354404eb5b3fd4dc5eb7fffbb3d9b68b";
1337 url = "https://pypi.python.org/packages/73/e8/804681323bac0bc45c520ec34185ba8469008942266d0074699b204835c1/pytest-profiling-1.2.2.tar.gz";
1338 md5 = "0a16d7dda2d23b91e9730fa4558cf728";
1339 1339 };
1340 1340 meta = {
1341 1341 license = [ pkgs.lib.licenses.mit ];
1342 1342 };
1343 1343 };
1344 1344 pytest-runner = super.buildPythonPackage {
1345 name = "pytest-runner-2.7.1";
1345 name = "pytest-runner-2.9";
1346 1346 buildInputs = with self; [];
1347 1347 doCheck = false;
1348 1348 propagatedBuildInputs = with self; [];
1349 1349 src = fetchurl {
1350 url = "https://pypi.python.org/packages/99/6b/c4ff4418d3424d4475b7af60724fd4a5cdd91ed8e489dc9443281f0052bc/pytest-runner-2.7.1.tar.gz";
1351 md5 = "e56f0bc8d79a6bd91772b44ef4215c7e";
1350 url = "https://pypi.python.org/packages/11/d4/c335ddf94463e451109e3494e909765c3e5205787b772e3b25ee8601b86a/pytest-runner-2.9.tar.gz";
1351 md5 = "2212a2e34404b0960b2fdc2c469247b2";
1352 1352 };
1353 1353 meta = {
1354 1354 license = [ pkgs.lib.licenses.mit ];
1355 1355 };
1356 1356 };
1357 1357 pytest-timeout = super.buildPythonPackage {
1358 name = "pytest-timeout-0.4";
1358 name = "pytest-timeout-1.2.0";
1359 1359 buildInputs = with self; [];
1360 1360 doCheck = false;
1361 1361 propagatedBuildInputs = with self; [pytest];
1362 1362 src = fetchurl {
1363 url = "https://pypi.python.org/packages/24/48/5f6bd4b8026a26e1dd427243d560a29a0f1b24a5c7cffca4bf049a7bb65b/pytest-timeout-0.4.tar.gz";
1364 md5 = "03b28aff69cbbfb959ed35ade5fde262";
1363 url = "https://pypi.python.org/packages/cc/b7/b2a61365ea6b6d2e8881360ae7ed8dad0327ad2df89f2f0be4a02304deb2/pytest-timeout-1.2.0.tar.gz";
1364 md5 = "83607d91aa163562c7ee835da57d061d";
1365 1365 };
1366 1366 meta = {
1367 1367 license = [ pkgs.lib.licenses.mit { fullName = "DFSG approved"; } ];
1368 1368 };
1369 1369 };
1370 1370 python-dateutil = super.buildPythonPackage {
1371 1371 name = "python-dateutil-1.5";
1372 1372 buildInputs = with self; [];
1373 1373 doCheck = false;
1374 1374 propagatedBuildInputs = with self; [];
1375 1375 src = fetchurl {
1376 1376 url = "https://pypi.python.org/packages/b4/7c/df59c89a753eb33c7c44e1dd42de0e9bc2ccdd5a4d576e0bfad97cc280cb/python-dateutil-1.5.tar.gz";
1377 1377 md5 = "0dcb1de5e5cad69490a3b6ab63f0cfa5";
1378 1378 };
1379 1379 meta = {
1380 1380 license = [ pkgs.lib.licenses.psfl ];
1381 1381 };
1382 1382 };
1383 1383 python-editor = super.buildPythonPackage {
1384 1384 name = "python-editor-1.0.3";
1385 1385 buildInputs = with self; [];
1386 1386 doCheck = false;
1387 1387 propagatedBuildInputs = with self; [];
1388 1388 src = fetchurl {
1389 1389 url = "https://pypi.python.org/packages/65/1e/adf6e000ea5dc909aa420352d6ba37f16434c8a3c2fa030445411a1ed545/python-editor-1.0.3.tar.gz";
1390 1390 md5 = "0aca5f2ef176ce68e98a5b7e31372835";
1391 1391 };
1392 1392 meta = {
1393 1393 license = [ pkgs.lib.licenses.asl20 { fullName = "Apache"; } ];
1394 1394 };
1395 1395 };
1396 1396 python-ldap = super.buildPythonPackage {
1397 1397 name = "python-ldap-2.4.19";
1398 1398 buildInputs = with self; [];
1399 1399 doCheck = false;
1400 1400 propagatedBuildInputs = with self; [setuptools];
1401 1401 src = fetchurl {
1402 1402 url = "https://pypi.python.org/packages/42/81/1b64838c82e64f14d4e246ff00b52e650a35c012551b891ada2b85d40737/python-ldap-2.4.19.tar.gz";
1403 1403 md5 = "b941bf31d09739492aa19ef679e94ae3";
1404 1404 };
1405 1405 meta = {
1406 1406 license = [ pkgs.lib.licenses.psfl ];
1407 1407 };
1408 1408 };
1409 1409 python-memcached = super.buildPythonPackage {
1410 1410 name = "python-memcached-1.57";
1411 1411 buildInputs = with self; [];
1412 1412 doCheck = false;
1413 1413 propagatedBuildInputs = with self; [six];
1414 1414 src = fetchurl {
1415 1415 url = "https://pypi.python.org/packages/52/9d/eebc0dcbc5c7c66840ad207dfc1baa376dadb74912484bff73819cce01e6/python-memcached-1.57.tar.gz";
1416 1416 md5 = "de21f64b42b2d961f3d4ad7beb5468a1";
1417 1417 };
1418 1418 meta = {
1419 1419 license = [ pkgs.lib.licenses.psfl ];
1420 1420 };
1421 1421 };
1422 1422 python-pam = super.buildPythonPackage {
1423 1423 name = "python-pam-1.8.2";
1424 1424 buildInputs = with self; [];
1425 1425 doCheck = false;
1426 1426 propagatedBuildInputs = with self; [];
1427 1427 src = fetchurl {
1428 1428 url = "https://pypi.python.org/packages/de/8c/f8f5d38b4f26893af267ea0b39023d4951705ab0413a39e0cf7cf4900505/python-pam-1.8.2.tar.gz";
1429 1429 md5 = "db71b6b999246fb05d78ecfbe166629d";
1430 1430 };
1431 1431 meta = {
1432 1432 license = [ { fullName = "License :: OSI Approved :: MIT License"; } pkgs.lib.licenses.mit ];
1433 1433 };
1434 1434 };
1435 1435 pytz = super.buildPythonPackage {
1436 1436 name = "pytz-2015.4";
1437 1437 buildInputs = with self; [];
1438 1438 doCheck = false;
1439 1439 propagatedBuildInputs = with self; [];
1440 1440 src = fetchurl {
1441 1441 url = "https://pypi.python.org/packages/7e/1a/f43b5c92df7b156822030fed151327ea096bcf417e45acc23bd1df43472f/pytz-2015.4.zip";
1442 1442 md5 = "233f2a2b370d03f9b5911700cc9ebf3c";
1443 1443 };
1444 1444 meta = {
1445 1445 license = [ pkgs.lib.licenses.mit ];
1446 1446 };
1447 1447 };
1448 1448 pyzmq = super.buildPythonPackage {
1449 1449 name = "pyzmq-14.6.0";
1450 1450 buildInputs = with self; [];
1451 1451 doCheck = false;
1452 1452 propagatedBuildInputs = with self; [];
1453 1453 src = fetchurl {
1454 1454 url = "https://pypi.python.org/packages/8a/3b/5463d5a9d712cd8bbdac335daece0d69f6a6792da4e3dd89956c0db4e4e6/pyzmq-14.6.0.tar.gz";
1455 1455 md5 = "395b5de95a931afa5b14c9349a5b8024";
1456 1456 };
1457 1457 meta = {
1458 1458 license = [ pkgs.lib.licenses.bsdOriginal { fullName = "LGPL+BSD"; } { fullName = "GNU Library or Lesser General Public License (LGPL)"; } ];
1459 1459 };
1460 1460 };
1461 1461 recaptcha-client = super.buildPythonPackage {
1462 1462 name = "recaptcha-client-1.0.6";
1463 1463 buildInputs = with self; [];
1464 1464 doCheck = false;
1465 1465 propagatedBuildInputs = with self; [];
1466 1466 src = fetchurl {
1467 1467 url = "https://pypi.python.org/packages/0a/ea/5f2fbbfd894bdac1c68ef8d92019066cfcf9fbff5fe3d728d2b5c25c8db4/recaptcha-client-1.0.6.tar.gz";
1468 1468 md5 = "74228180f7e1fb76c4d7089160b0d919";
1469 1469 };
1470 1470 meta = {
1471 1471 license = [ { fullName = "MIT/X11"; } ];
1472 1472 };
1473 1473 };
1474 1474 repoze.lru = super.buildPythonPackage {
1475 1475 name = "repoze.lru-0.6";
1476 1476 buildInputs = with self; [];
1477 1477 doCheck = false;
1478 1478 propagatedBuildInputs = with self; [];
1479 1479 src = fetchurl {
1480 1480 url = "https://pypi.python.org/packages/6e/1e/aa15cc90217e086dc8769872c8778b409812ff036bf021b15795638939e4/repoze.lru-0.6.tar.gz";
1481 1481 md5 = "2c3b64b17a8e18b405f55d46173e14dd";
1482 1482 };
1483 1483 meta = {
1484 1484 license = [ { fullName = "Repoze Public License"; } { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1485 1485 };
1486 1486 };
1487 1487 requests = super.buildPythonPackage {
1488 1488 name = "requests-2.9.1";
1489 1489 buildInputs = with self; [];
1490 1490 doCheck = false;
1491 1491 propagatedBuildInputs = with self; [];
1492 1492 src = fetchurl {
1493 1493 url = "https://pypi.python.org/packages/f9/6d/07c44fb1ebe04d069459a189e7dab9e4abfe9432adcd4477367c25332748/requests-2.9.1.tar.gz";
1494 1494 md5 = "0b7f480d19012ec52bab78292efd976d";
1495 1495 };
1496 1496 meta = {
1497 1497 license = [ pkgs.lib.licenses.asl20 ];
1498 1498 };
1499 1499 };
1500 1500 rhodecode-enterprise-ce = super.buildPythonPackage {
1501 1501 name = "rhodecode-enterprise-ce-4.6.0";
1502 1502 buildInputs = with self; [WebTest configobj cssselect lxml mock pytest pytest-cov pytest-runner pytest-sugar];
1503 1503 doCheck = true;
1504 1504 propagatedBuildInputs = with self; [Babel Beaker FormEncode Mako Markdown MarkupSafe MySQL-python Paste PasteDeploy PasteScript Pygments pygments-markdown-lexer Pylons Pyro4 Routes SQLAlchemy Tempita URLObject WebError WebHelpers WebHelpers2 WebOb WebTest Whoosh alembic amqplib anyjson appenlight-client authomatic backport-ipaddress celery channelstream colander decorator deform docutils gevent gunicorn infrae.cache ipython iso8601 kombu msgpack-python packaging psycopg2 py-gfm pycrypto pycurl pyparsing pyramid pyramid-debugtoolbar pyramid-mako pyramid-beaker pysqlite python-dateutil python-ldap python-memcached python-pam recaptcha-client repoze.lru requests simplejson subprocess32 waitress zope.cachedescriptors dogpile.cache dogpile.core psutil py-bcrypt];
1505 1505 src = ./.;
1506 1506 meta = {
1507 1507 license = [ { fullName = "AGPLv3, and Commercial License"; } ];
1508 1508 };
1509 1509 };
1510 1510 rhodecode-tools = super.buildPythonPackage {
1511 1511 name = "rhodecode-tools-0.10.2";
1512 1512 buildInputs = with self; [];
1513 1513 doCheck = false;
1514 1514 propagatedBuildInputs = with self; [click future six Mako MarkupSafe requests Whoosh elasticsearch elasticsearch-dsl urllib3];
1515 1515 src = fetchurl {
1516 1516 url = "https://code.rhodecode.com/rhodecode-tools-ce/archive/v0.10.2.zip";
1517 1517 md5 = "d2af3985a1a32a678944d4d48870cb04";
1518 1518 };
1519 1519 meta = {
1520 1520 license = [ { fullName = "AGPLv3 and Proprietary"; } ];
1521 1521 };
1522 1522 };
1523 1523 serpent = super.buildPythonPackage {
1524 1524 name = "serpent-1.12";
1525 1525 buildInputs = with self; [];
1526 1526 doCheck = false;
1527 1527 propagatedBuildInputs = with self; [];
1528 1528 src = fetchurl {
1529 1529 url = "https://pypi.python.org/packages/3b/19/1e0e83b47c09edaef8398655088036e7e67386b5c48770218ebb339fbbd5/serpent-1.12.tar.gz";
1530 1530 md5 = "05869ac7b062828b34f8f927f0457b65";
1531 1531 };
1532 1532 meta = {
1533 1533 license = [ pkgs.lib.licenses.mit ];
1534 1534 };
1535 1535 };
1536 1536 setproctitle = super.buildPythonPackage {
1537 1537 name = "setproctitle-1.1.8";
1538 1538 buildInputs = with self; [];
1539 1539 doCheck = false;
1540 1540 propagatedBuildInputs = with self; [];
1541 1541 src = fetchurl {
1542 1542 url = "https://pypi.python.org/packages/33/c3/ad367a4f4f1ca90468863ae727ac62f6edb558fc09a003d344a02cfc6ea6/setproctitle-1.1.8.tar.gz";
1543 1543 md5 = "728f4c8c6031bbe56083a48594027edd";
1544 1544 };
1545 1545 meta = {
1546 1546 license = [ pkgs.lib.licenses.bsdOriginal ];
1547 1547 };
1548 1548 };
1549 1549 setuptools = super.buildPythonPackage {
1550 1550 name = "setuptools-20.8.1";
1551 1551 buildInputs = with self; [];
1552 1552 doCheck = false;
1553 1553 propagatedBuildInputs = with self; [];
1554 1554 src = fetchurl {
1555 1555 url = "https://pypi.python.org/packages/c4/19/c1bdc88b53da654df43770f941079dbab4e4788c2dcb5658fb86259894c7/setuptools-20.8.1.zip";
1556 1556 md5 = "fe58a5cac0df20bb83942b252a4b0543";
1557 1557 };
1558 1558 meta = {
1559 1559 license = [ pkgs.lib.licenses.mit ];
1560 1560 };
1561 1561 };
1562 1562 setuptools-scm = super.buildPythonPackage {
1563 1563 name = "setuptools-scm-1.11.0";
1564 1564 buildInputs = with self; [];
1565 1565 doCheck = false;
1566 1566 propagatedBuildInputs = with self; [];
1567 1567 src = fetchurl {
1568 1568 url = "https://pypi.python.org/packages/cd/5f/e3a038292358058d83d764a47d09114aa5a8003ed4529518f9e580f1a94f/setuptools_scm-1.11.0.tar.gz";
1569 1569 md5 = "4c5c896ba52e134bbc3507bac6400087";
1570 1570 };
1571 1571 meta = {
1572 1572 license = [ pkgs.lib.licenses.mit ];
1573 1573 };
1574 1574 };
1575 1575 simplegeneric = super.buildPythonPackage {
1576 1576 name = "simplegeneric-0.8.1";
1577 1577 buildInputs = with self; [];
1578 1578 doCheck = false;
1579 1579 propagatedBuildInputs = with self; [];
1580 1580 src = fetchurl {
1581 1581 url = "https://pypi.python.org/packages/3d/57/4d9c9e3ae9a255cd4e1106bb57e24056d3d0709fc01b2e3e345898e49d5b/simplegeneric-0.8.1.zip";
1582 1582 md5 = "f9c1fab00fd981be588fc32759f474e3";
1583 1583 };
1584 1584 meta = {
1585 1585 license = [ pkgs.lib.licenses.zpt21 ];
1586 1586 };
1587 1587 };
1588 1588 simplejson = super.buildPythonPackage {
1589 1589 name = "simplejson-3.7.2";
1590 1590 buildInputs = with self; [];
1591 1591 doCheck = false;
1592 1592 propagatedBuildInputs = with self; [];
1593 1593 src = fetchurl {
1594 1594 url = "https://pypi.python.org/packages/6d/89/7f13f099344eea9d6722779a1f165087cb559598107844b1ac5dbd831fb1/simplejson-3.7.2.tar.gz";
1595 1595 md5 = "a5fc7d05d4cb38492285553def5d4b46";
1596 1596 };
1597 1597 meta = {
1598 1598 license = [ { fullName = "Academic Free License (AFL)"; } pkgs.lib.licenses.mit ];
1599 1599 };
1600 1600 };
1601 1601 six = super.buildPythonPackage {
1602 1602 name = "six-1.9.0";
1603 1603 buildInputs = with self; [];
1604 1604 doCheck = false;
1605 1605 propagatedBuildInputs = with self; [];
1606 1606 src = fetchurl {
1607 1607 url = "https://pypi.python.org/packages/16/64/1dc5e5976b17466fd7d712e59cbe9fb1e18bec153109e5ba3ed6c9102f1a/six-1.9.0.tar.gz";
1608 1608 md5 = "476881ef4012262dfc8adc645ee786c4";
1609 1609 };
1610 1610 meta = {
1611 1611 license = [ pkgs.lib.licenses.mit ];
1612 1612 };
1613 1613 };
1614 1614 subprocess32 = super.buildPythonPackage {
1615 1615 name = "subprocess32-3.2.6";
1616 1616 buildInputs = with self; [];
1617 1617 doCheck = false;
1618 1618 propagatedBuildInputs = with self; [];
1619 1619 src = fetchurl {
1620 1620 url = "https://pypi.python.org/packages/28/8d/33ccbff51053f59ae6c357310cac0e79246bbed1d345ecc6188b176d72c3/subprocess32-3.2.6.tar.gz";
1621 1621 md5 = "754c5ab9f533e764f931136974b618f1";
1622 1622 };
1623 1623 meta = {
1624 1624 license = [ pkgs.lib.licenses.psfl ];
1625 1625 };
1626 1626 };
1627 1627 supervisor = super.buildPythonPackage {
1628 1628 name = "supervisor-3.3.0";
1629 1629 buildInputs = with self; [];
1630 1630 doCheck = false;
1631 1631 propagatedBuildInputs = with self; [meld3];
1632 1632 src = fetchurl {
1633 1633 url = "https://pypi.python.org/packages/44/80/d28047d120bfcc8158b4e41127706731ee6a3419c661e0a858fb0e7c4b2d/supervisor-3.3.0.tar.gz";
1634 1634 md5 = "46bac00378d1eddb616752b990c67416";
1635 1635 };
1636 1636 meta = {
1637 1637 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1638 1638 };
1639 1639 };
1640 1640 traitlets = super.buildPythonPackage {
1641 1641 name = "traitlets-4.3.1";
1642 1642 buildInputs = with self; [];
1643 1643 doCheck = false;
1644 1644 propagatedBuildInputs = with self; [ipython-genutils six decorator enum34];
1645 1645 src = fetchurl {
1646 1646 url = "https://pypi.python.org/packages/b1/d6/5b5aa6d5c474691909b91493da1e8972e309c9f01ecfe4aeafd272eb3234/traitlets-4.3.1.tar.gz";
1647 1647 md5 = "dd0b1b6e5d31ce446d55a4b5e5083c98";
1648 1648 };
1649 1649 meta = {
1650 1650 license = [ pkgs.lib.licenses.bsdOriginal ];
1651 1651 };
1652 1652 };
1653 1653 transifex-client = super.buildPythonPackage {
1654 1654 name = "transifex-client-0.10";
1655 1655 buildInputs = with self; [];
1656 1656 doCheck = false;
1657 1657 propagatedBuildInputs = with self; [];
1658 1658 src = fetchurl {
1659 1659 url = "https://pypi.python.org/packages/f3/4e/7b925192aee656fb3e04fa6381c8b3dc40198047c3b4a356f6cfd642c809/transifex-client-0.10.tar.gz";
1660 1660 md5 = "5549538d84b8eede6b254cd81ae024fa";
1661 1661 };
1662 1662 meta = {
1663 1663 license = [ pkgs.lib.licenses.gpl2 ];
1664 1664 };
1665 1665 };
1666 1666 translationstring = super.buildPythonPackage {
1667 1667 name = "translationstring-1.3";
1668 1668 buildInputs = with self; [];
1669 1669 doCheck = false;
1670 1670 propagatedBuildInputs = with self; [];
1671 1671 src = fetchurl {
1672 1672 url = "https://pypi.python.org/packages/5e/eb/bee578cc150b44c653b63f5ebe258b5d0d812ddac12497e5f80fcad5d0b4/translationstring-1.3.tar.gz";
1673 1673 md5 = "a4b62e0f3c189c783a1685b3027f7c90";
1674 1674 };
1675 1675 meta = {
1676 1676 license = [ { fullName = "BSD-like (http://repoze.org/license.html)"; } ];
1677 1677 };
1678 1678 };
1679 1679 trollius = super.buildPythonPackage {
1680 1680 name = "trollius-1.0.4";
1681 1681 buildInputs = with self; [];
1682 1682 doCheck = false;
1683 1683 propagatedBuildInputs = with self; [futures];
1684 1684 src = fetchurl {
1685 1685 url = "https://pypi.python.org/packages/aa/e6/4141db437f55e6ee7a3fb69663239e3fde7841a811b4bef293145ad6c836/trollius-1.0.4.tar.gz";
1686 1686 md5 = "3631a464d49d0cbfd30ab2918ef2b783";
1687 1687 };
1688 1688 meta = {
1689 1689 license = [ pkgs.lib.licenses.asl20 ];
1690 1690 };
1691 1691 };
1692 1692 uWSGI = super.buildPythonPackage {
1693 1693 name = "uWSGI-2.0.11.2";
1694 1694 buildInputs = with self; [];
1695 1695 doCheck = false;
1696 1696 propagatedBuildInputs = with self; [];
1697 1697 src = fetchurl {
1698 1698 url = "https://pypi.python.org/packages/9b/78/918db0cfab0546afa580c1e565209c49aaf1476bbfe491314eadbe47c556/uwsgi-2.0.11.2.tar.gz";
1699 1699 md5 = "1f02dcbee7f6f61de4b1fd68350cf16f";
1700 1700 };
1701 1701 meta = {
1702 1702 license = [ pkgs.lib.licenses.gpl2 ];
1703 1703 };
1704 1704 };
1705 1705 urllib3 = super.buildPythonPackage {
1706 1706 name = "urllib3-1.16";
1707 1707 buildInputs = with self; [];
1708 1708 doCheck = false;
1709 1709 propagatedBuildInputs = with self; [];
1710 1710 src = fetchurl {
1711 1711 url = "https://pypi.python.org/packages/3b/f0/e763169124e3f5db0926bc3dbfcd580a105f9ca44cf5d8e6c7a803c9f6b5/urllib3-1.16.tar.gz";
1712 1712 md5 = "fcaab1c5385c57deeb7053d3d7d81d59";
1713 1713 };
1714 1714 meta = {
1715 1715 license = [ pkgs.lib.licenses.mit ];
1716 1716 };
1717 1717 };
1718 1718 venusian = super.buildPythonPackage {
1719 1719 name = "venusian-1.0";
1720 1720 buildInputs = with self; [];
1721 1721 doCheck = false;
1722 1722 propagatedBuildInputs = with self; [];
1723 1723 src = fetchurl {
1724 1724 url = "https://pypi.python.org/packages/86/20/1948e0dfc4930ddde3da8c33612f6a5717c0b4bc28f591a5c5cf014dd390/venusian-1.0.tar.gz";
1725 1725 md5 = "dccf2eafb7113759d60c86faf5538756";
1726 1726 };
1727 1727 meta = {
1728 1728 license = [ { fullName = "BSD-derived (http://www.repoze.org/LICENSE.txt)"; } ];
1729 1729 };
1730 1730 };
1731 1731 waitress = super.buildPythonPackage {
1732 1732 name = "waitress-0.8.9";
1733 1733 buildInputs = with self; [];
1734 1734 doCheck = false;
1735 1735 propagatedBuildInputs = with self; [setuptools];
1736 1736 src = fetchurl {
1737 1737 url = "https://pypi.python.org/packages/ee/65/fc9dee74a909a1187ca51e4f15ad9c4d35476e4ab5813f73421505c48053/waitress-0.8.9.tar.gz";
1738 1738 md5 = "da3f2e62b3676be5dd630703a68e2a04";
1739 1739 };
1740 1740 meta = {
1741 1741 license = [ pkgs.lib.licenses.zpt21 ];
1742 1742 };
1743 1743 };
1744 1744 wcwidth = super.buildPythonPackage {
1745 1745 name = "wcwidth-0.1.7";
1746 1746 buildInputs = with self; [];
1747 1747 doCheck = false;
1748 1748 propagatedBuildInputs = with self; [];
1749 1749 src = fetchurl {
1750 1750 url = "https://pypi.python.org/packages/55/11/e4a2bb08bb450fdbd42cc709dd40de4ed2c472cf0ccb9e64af22279c5495/wcwidth-0.1.7.tar.gz";
1751 1751 md5 = "b3b6a0a08f0c8a34d1de8cf44150a4ad";
1752 1752 };
1753 1753 meta = {
1754 1754 license = [ pkgs.lib.licenses.mit ];
1755 1755 };
1756 1756 };
1757 1757 ws4py = super.buildPythonPackage {
1758 1758 name = "ws4py-0.3.5";
1759 1759 buildInputs = with self; [];
1760 1760 doCheck = false;
1761 1761 propagatedBuildInputs = with self; [];
1762 1762 src = fetchurl {
1763 1763 url = "https://pypi.python.org/packages/b6/4f/34af703be86939629479e74d6e650e39f3bd73b3b09212c34e5125764cbc/ws4py-0.3.5.zip";
1764 1764 md5 = "a261b75c20b980e55ce7451a3576a867";
1765 1765 };
1766 1766 meta = {
1767 1767 license = [ pkgs.lib.licenses.bsdOriginal ];
1768 1768 };
1769 1769 };
1770 1770 wsgiref = super.buildPythonPackage {
1771 1771 name = "wsgiref-0.1.2";
1772 1772 buildInputs = with self; [];
1773 1773 doCheck = false;
1774 1774 propagatedBuildInputs = with self; [];
1775 1775 src = fetchurl {
1776 1776 url = "https://pypi.python.org/packages/41/9e/309259ce8dff8c596e8c26df86dbc4e848b9249fd36797fd60be456f03fc/wsgiref-0.1.2.zip";
1777 1777 md5 = "29b146e6ebd0f9fb119fe321f7bcf6cb";
1778 1778 };
1779 1779 meta = {
1780 1780 license = [ { fullName = "PSF or ZPL"; } ];
1781 1781 };
1782 1782 };
1783 1783 zope.cachedescriptors = super.buildPythonPackage {
1784 1784 name = "zope.cachedescriptors-4.0.0";
1785 1785 buildInputs = with self; [];
1786 1786 doCheck = false;
1787 1787 propagatedBuildInputs = with self; [setuptools];
1788 1788 src = fetchurl {
1789 1789 url = "https://pypi.python.org/packages/40/33/694b6644c37f28553f4b9f20b3c3a20fb709a22574dff20b5bdffb09ecd5/zope.cachedescriptors-4.0.0.tar.gz";
1790 1790 md5 = "8d308de8c936792c8e758058fcb7d0f0";
1791 1791 };
1792 1792 meta = {
1793 1793 license = [ pkgs.lib.licenses.zpt21 ];
1794 1794 };
1795 1795 };
1796 1796 zope.deprecation = super.buildPythonPackage {
1797 1797 name = "zope.deprecation-4.1.2";
1798 1798 buildInputs = with self; [];
1799 1799 doCheck = false;
1800 1800 propagatedBuildInputs = with self; [setuptools];
1801 1801 src = fetchurl {
1802 1802 url = "https://pypi.python.org/packages/c1/d3/3919492d5e57d8dd01b36f30b34fc8404a30577392b1eb817c303499ad20/zope.deprecation-4.1.2.tar.gz";
1803 1803 md5 = "e9a663ded58f4f9f7881beb56cae2782";
1804 1804 };
1805 1805 meta = {
1806 1806 license = [ pkgs.lib.licenses.zpt21 ];
1807 1807 };
1808 1808 };
1809 1809 zope.event = super.buildPythonPackage {
1810 1810 name = "zope.event-4.0.3";
1811 1811 buildInputs = with self; [];
1812 1812 doCheck = false;
1813 1813 propagatedBuildInputs = with self; [setuptools];
1814 1814 src = fetchurl {
1815 1815 url = "https://pypi.python.org/packages/c1/29/91ba884d7d6d96691df592e9e9c2bfa57a47040ec1ff47eff18c85137152/zope.event-4.0.3.tar.gz";
1816 1816 md5 = "9a3780916332b18b8b85f522bcc3e249";
1817 1817 };
1818 1818 meta = {
1819 1819 license = [ pkgs.lib.licenses.zpt21 ];
1820 1820 };
1821 1821 };
1822 1822 zope.interface = super.buildPythonPackage {
1823 1823 name = "zope.interface-4.1.3";
1824 1824 buildInputs = with self; [];
1825 1825 doCheck = false;
1826 1826 propagatedBuildInputs = with self; [setuptools];
1827 1827 src = fetchurl {
1828 1828 url = "https://pypi.python.org/packages/9d/81/2509ca3c6f59080123c1a8a97125eb48414022618cec0e64eb1313727bfe/zope.interface-4.1.3.tar.gz";
1829 1829 md5 = "9ae3d24c0c7415deb249dd1a132f0f79";
1830 1830 };
1831 1831 meta = {
1832 1832 license = [ pkgs.lib.licenses.zpt21 ];
1833 1833 };
1834 1834 };
1835 1835
1836 1836 ### Test requirements
1837 1837
1838 1838 pytest-sugar = super.buildPythonPackage {
1839 1839 name = "pytest-sugar-0.7.1";
1840 1840 buildInputs = with self; [];
1841 1841 doCheck = false;
1842 1842 propagatedBuildInputs = with self; [pytest termcolor];
1843 1843 src = fetchurl {
1844 1844 url = "https://pypi.python.org/packages/03/97/05d988b4fa870e7373e8ee4582408543b9ca2bd35c3c67b569369c6f9c49/pytest-sugar-0.7.1.tar.gz";
1845 1845 md5 = "7400f7c11f3d572b2c2a3b60352d35fe";
1846 1846 };
1847 1847 meta = {
1848 1848 license = [ pkgs.lib.licenses.bsdOriginal ];
1849 1849 };
1850 1850 };
1851 1851 termcolor = super.buildPythonPackage {
1852 1852 name = "termcolor-1.1.0";
1853 1853 buildInputs = with self; [];
1854 1854 doCheck = false;
1855 1855 propagatedBuildInputs = with self; [];
1856 1856 src = fetchurl {
1857 1857 url = "https://pypi.python.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz";
1858 1858 md5 = "043e89644f8909d462fbbfa511c768df";
1859 1859 };
1860 1860 meta = {
1861 1861 license = [ pkgs.lib.licenses.mit ];
1862 1862 };
1863 1863 };
1864 1864 }
@@ -1,150 +1,154 b''
1 1 Babel==1.3
2 2 Beaker==1.7.0
3 3 Chameleon==2.24
4 4 CProfileV==1.0.6
5 5 FormEncode==1.2.4
6 6 Jinja2==2.7.3
7 7 Mako==1.0.1
8 8 Markdown==2.6.2
9 9 MarkupSafe==0.23
10 10 MySQL-python==1.2.5
11 11 Paste==2.0.2
12 12 PasteDeploy==1.5.2
13 13 PasteScript==1.7.5
14 14 Pygments==2.1.3
15 15 pygments-markdown-lexer==0.1.0.dev39
16 16
17 17 # TODO: This version is not available on PyPI
18 18 # Pylons==1.0.2.dev20160108
19 19 Pylons==1.0.1
20 20
21 21 # TODO: This version is not available, but newer ones are
22 22 # Pyro4==4.35
23 23 Pyro4==4.41
24 24
25 25 # TODO: This should probably not be in here
26 26 # -e hg+https://johbo@code.rhodecode.com/johbo/rhodecode-fork@3a454bd1f17c0b2b2a951cf2b111e0320d7942a9#egg=RhodeCodeEnterprise-dev
27 27
28 28 Routes==1.13
29 29 SQLAlchemy==0.9.9
30 30 Sphinx==1.2.2
31 31 Tempita==0.5.2
32 32 URLObject==2.4.0
33 33 WebError==0.10.3
34 34
35 35 # TODO: This is modified by us, needs a better integration. For now
36 36 # using the latest version before.
37 37 # WebHelpers==1.3.dev20150807
38 38 WebHelpers==1.3
39 39
40 40 WebHelpers2==2.0
41 41 WebOb==1.3.1
42 WebTest==1.4.3
43 42 Whoosh==2.7.0
44 43 alembic==0.8.4
45 44 amqplib==1.0.2
46 45 anyjson==0.3.3
47 46 appenlight-client==0.6.14
48 47 authomatic==0.1.0.post1;
49 48 backport-ipaddress==0.1
50 49 bottle==0.12.8
51 50 bumpversion==0.5.3
52 51 celery==2.2.10
53 52 channelstream==0.5.2
54 53 click==5.1
55 54 colander==1.2
56 55 configobj==5.0.6
57 cov-core==1.15.0
58 coverage==3.7.1
59 56 cssselect==0.9.1
60 57 decorator==3.4.2
61 58 deform==2.0a2
62 59 docutils==0.12
63 60 dogpile.cache==0.6.1
64 61 dogpile.core==0.4.1
65 62 dulwich==0.12.0
66 63 ecdsa==0.11
67 64 future==0.14.3
68 65 futures==3.0.2
69 66 gevent==1.1.1
70 67 gprof2dot==2015.12.1
71 68 greenlet==0.4.9
72 69 gunicorn==19.6.0
73 70
74 71 # TODO: Needs subvertpy and blows up without Subversion headers,
75 72 # actually we should not need this for Enterprise at all.
76 73 # hgsubversion==1.8.2
77 74
78 75 gnureadline==6.3.3
79 76 infrae.cache==1.0.1
80 77 invoke==0.13.0
81 78 ipdb==0.10.1
82 79 ipython==5.1.0
83 80 iso8601==0.1.11
84 81 itsdangerous==0.24
85 82 kombu==1.5.1
86 83 lxml==3.4.4
87 84 meld3==1.0.2
88 mock==1.0.1
89 85 msgpack-python==0.4.6
90 86 nose==1.3.6
91 87 objgraph==2.0.0
92 88 packaging==15.2
93 89 paramiko==1.15.1
94 90 psutil==4.3.1
95 91 psycopg2==2.6.1
96 py==1.4.29
97 92 py-bcrypt==0.4
98 93 py-gfm==0.1.3
99 94 pycrypto==2.6.1
100 95 pycurl==7.19.5
101 96 pyflakes==0.8.1
102 97 pyparsing==1.5.7
103 98 pyramid==1.6.1
104 99 pyramid-beaker==0.8
105 100 pyramid-debugtoolbar==2.4.2
106 101 pyramid-jinja2==2.5
107 102 pyramid-mako==1.0.2
108 103 pysqlite==2.6.3
109 pytest==2.8.5
110 pytest-runner==2.7.1
111 pytest-catchlog==1.2.2
112 pytest-cov==1.8.1
113 pytest-profiling==1.0.1
114 pytest-timeout==0.4
115 104 python-dateutil==1.5
116 105 python-ldap==2.4.19
117 106 python-memcached==1.57
118 107 python-pam==1.8.2
119 108 pytz==2015.4
120 109 pyzmq==14.6.0
121 110
122 111 # TODO: This is not available in public
123 112 # rc-testdata==0.2.0
124 113
125 114 https://code.rhodecode.com/rhodecode-tools-ce/archive/v0.10.2.zip#md5=d2af3985a1a32a678944d4d48870cb04
126 115
127 116
128 117 recaptcha-client==1.0.6
129 118 repoze.lru==0.6
130 119 requests==2.9.1
131 120 serpent==1.12
132 121 setproctitle==1.1.8
133 122 setuptools==20.8.1
134 123 setuptools-scm==1.11.0
135 124 simplejson==3.7.2
136 125 six==1.9.0
137 126 subprocess32==3.2.6
138 127 supervisor==3.3.0
139 128 transifex-client==0.10
140 129 translationstring==1.3
141 130 trollius==1.0.4
142 131 uWSGI==2.0.11.2
143 132 urllib3==1.16
144 133 venusian==1.0
145 134 waitress==0.8.9
146 135 wsgiref==0.1.2
147 136 zope.cachedescriptors==4.0.0
148 137 zope.deprecation==4.1.2
149 138 zope.event==4.0.3
150 139 zope.interface==4.1.3
140
141 # test related requirements
142 pytest==3.0.5
143 py==1.4.31
144 pytest-runner==2.9.0
145 pytest-catchlog==1.2.2
146 pytest-cov==2.4.0
147 pytest-profiling==1.2.2
148 gprof2dot==2016.10.13
149 pytest-timeout==1.2.0
150 pytest-sugar==0.7.1
151 mock==1.0.1
152 WebTest==1.4.3
153 cov-core==1.15.0
154 coverage==3.7.1
@@ -1,388 +1,388 b''
1 1 # -*- coding: utf-8 -*-
2 2
3 3 # Copyright (C) 2010-2016 RhodeCode GmbH
4 4 #
5 5 # This program is free software: you can redistribute it and/or modify
6 6 # it under the terms of the GNU Affero General Public License, version 3
7 7 # (only), as published by the Free Software Foundation.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU Affero General Public License
15 15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 16 #
17 17 # This program is dual-licensed. If you wish to learn more about the
18 18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20 20
21 21 import json
22 22 import logging
23 23 from StringIO import StringIO
24 24
25 25 import mock
26 26 import pytest
27 27
28 28 from rhodecode.lib import hooks_daemon
29 29 from rhodecode.tests.utils import assert_message_in_log
30 30
31 31
32 32 class TestDummyHooksCallbackDaemon(object):
33 33 def test_hooks_module_path_set_properly(self):
34 34 daemon = hooks_daemon.DummyHooksCallbackDaemon()
35 35 assert daemon.hooks_module == 'rhodecode.lib.hooks_daemon'
36 36
37 37 def test_logs_entering_the_hook(self):
38 38 daemon = hooks_daemon.DummyHooksCallbackDaemon()
39 39 with mock.patch.object(hooks_daemon.log, 'debug') as log_mock:
40 40 with daemon as return_value:
41 41 log_mock.assert_called_once_with(
42 42 'Running dummy hooks callback daemon')
43 43 assert return_value == daemon
44 44
45 45 def test_logs_exiting_the_hook(self):
46 46 daemon = hooks_daemon.DummyHooksCallbackDaemon()
47 47 with mock.patch.object(hooks_daemon.log, 'debug') as log_mock:
48 48 with daemon:
49 49 pass
50 50 log_mock.assert_called_with('Exiting dummy hooks callback daemon')
51 51
52 52
53 53 class TestHooks(object):
54 54 def test_hooks_can_be_used_as_a_context_processor(self):
55 55 hooks = hooks_daemon.Hooks()
56 56 with hooks as return_value:
57 57 pass
58 58 assert hooks == return_value
59 59
60 60
61 61 class TestHooksHttpHandler(object):
62 62 def test_read_request_parses_method_name_and_arguments(self):
63 63 data = {
64 64 'method': 'test',
65 65 'extras': {
66 66 'param1': 1,
67 67 'param2': 'a'
68 68 }
69 69 }
70 70 request = self._generate_post_request(data)
71 71 hooks_patcher = mock.patch.object(
72 72 hooks_daemon.Hooks, data['method'], create=True, return_value=1)
73 73
74 74 with hooks_patcher as hooks_mock:
75 75 MockServer(hooks_daemon.HooksHttpHandler, request)
76 76
77 77 hooks_mock.assert_called_once_with(data['extras'])
78 78
79 79 def test_hooks_serialized_result_is_returned(self):
80 80 request = self._generate_post_request({})
81 81 rpc_method = 'test'
82 82 hook_result = {
83 83 'first': 'one',
84 84 'second': 2
85 85 }
86 86 read_patcher = mock.patch.object(
87 87 hooks_daemon.HooksHttpHandler, '_read_request',
88 88 return_value=(rpc_method, {}))
89 89 hooks_patcher = mock.patch.object(
90 90 hooks_daemon.Hooks, rpc_method, create=True,
91 91 return_value=hook_result)
92 92
93 93 with read_patcher, hooks_patcher:
94 94 server = MockServer(hooks_daemon.HooksHttpHandler, request)
95 95
96 96 expected_result = json.dumps(hook_result)
97 97 assert server.request.output_stream.buflist[-1] == expected_result
98 98
99 99 def test_exception_is_returned_in_response(self):
100 100 request = self._generate_post_request({})
101 101 rpc_method = 'test'
102 102 read_patcher = mock.patch.object(
103 103 hooks_daemon.HooksHttpHandler, '_read_request',
104 104 return_value=(rpc_method, {}))
105 105 hooks_patcher = mock.patch.object(
106 106 hooks_daemon.Hooks, rpc_method, create=True,
107 107 side_effect=Exception('Test exception'))
108 108
109 109 with read_patcher, hooks_patcher:
110 110 server = MockServer(hooks_daemon.HooksHttpHandler, request)
111 111
112 112 expected_result = json.dumps({
113 113 'exception': 'Exception',
114 114 'exception_args': ('Test exception', )
115 115 })
116 116 assert server.request.output_stream.buflist[-1] == expected_result
117 117
118 118 def test_log_message_writes_to_debug_log(self, caplog):
119 119 ip_port = ('0.0.0.0', 8888)
120 120 handler = hooks_daemon.HooksHttpHandler(
121 121 MockRequest('POST /'), ip_port, mock.Mock())
122 122 fake_date = '1/Nov/2015 00:00:00'
123 123 date_patcher = mock.patch.object(
124 124 handler, 'log_date_time_string', return_value=fake_date)
125 with date_patcher, caplog.atLevel(logging.DEBUG):
125 with date_patcher, caplog.at_level(logging.DEBUG):
126 126 handler.log_message('Some message %d, %s', 123, 'string')
127 127
128 128 expected_message = '{} - - [{}] Some message 123, string'.format(
129 129 ip_port[0], fake_date)
130 130 assert_message_in_log(
131 caplog.records(), expected_message,
131 caplog.records, expected_message,
132 132 levelno=logging.DEBUG, module='hooks_daemon')
133 133
134 134 def _generate_post_request(self, data):
135 135 payload = json.dumps(data)
136 136 return 'POST / HTTP/1.0\nContent-Length: {}\n\n{}'.format(
137 137 len(payload), payload)
138 138
139 139
140 140 class ThreadedHookCallbackDaemon(object):
141 141 def test_constructor_calls_prepare(self):
142 142 prepare_daemon_patcher = mock.patch.object(
143 143 hooks_daemon.ThreadedHookCallbackDaemon, '_prepare')
144 144 with prepare_daemon_patcher as prepare_daemon_mock:
145 145 hooks_daemon.ThreadedHookCallbackDaemon()
146 146 prepare_daemon_mock.assert_called_once_with()
147 147
148 148 def test_run_is_called_on_context_start(self):
149 149 patchers = mock.patch.multiple(
150 150 hooks_daemon.ThreadedHookCallbackDaemon,
151 151 _run=mock.DEFAULT, _prepare=mock.DEFAULT, __exit__=mock.DEFAULT)
152 152
153 153 with patchers as mocks:
154 154 daemon = hooks_daemon.ThreadedHookCallbackDaemon()
155 155 with daemon as daemon_context:
156 156 pass
157 157 mocks['_run'].assert_called_once_with()
158 158 assert daemon_context == daemon
159 159
160 160 def test_stop_is_called_on_context_exit(self):
161 161 patchers = mock.patch.multiple(
162 162 hooks_daemon.ThreadedHookCallbackDaemon,
163 163 _run=mock.DEFAULT, _prepare=mock.DEFAULT, _stop=mock.DEFAULT)
164 164
165 165 with patchers as mocks:
166 166 daemon = hooks_daemon.ThreadedHookCallbackDaemon()
167 167 with daemon as daemon_context:
168 168 assert mocks['_stop'].call_count == 0
169 169
170 170 mocks['_stop'].assert_called_once_with()
171 171 assert daemon_context == daemon
172 172
173 173
174 174 class TestPyro4HooksCallbackDaemon(object):
175 175 def test_prepare_inits_pyro4_and_registers_hooks(self, caplog):
176 176 pyro4_daemon = mock.Mock()
177 177
178 with self._pyro4_patcher(pyro4_daemon), caplog.atLevel(logging.DEBUG):
178 with self._pyro4_patcher(pyro4_daemon), caplog.at_level(logging.DEBUG):
179 179 daemon = hooks_daemon.Pyro4HooksCallbackDaemon()
180 180
181 181 assert daemon._daemon == pyro4_daemon
182 182
183 183 assert pyro4_daemon.register.call_count == 1
184 184 args, kwargs = pyro4_daemon.register.call_args
185 185 assert len(args) == 1
186 186 assert isinstance(args[0], hooks_daemon.Hooks)
187 187
188 188 assert_message_in_log(
189 caplog.records(),
189 caplog.records,
190 190 'Preparing callback daemon and registering hook object',
191 191 levelno=logging.DEBUG, module='hooks_daemon')
192 192
193 193 def test_run_creates_a_thread(self):
194 194 thread = mock.Mock()
195 195 pyro4_daemon = mock.Mock()
196 196
197 197 with self._pyro4_patcher(pyro4_daemon):
198 198 daemon = hooks_daemon.Pyro4HooksCallbackDaemon()
199 199
200 200 with self._thread_patcher(thread) as thread_mock:
201 201 daemon._run()
202 202
203 203 assert thread_mock.call_count == 1
204 204 args, kwargs = thread_mock.call_args
205 205 assert args == ()
206 206 assert kwargs['target'] == pyro4_daemon.requestLoop
207 207 assert kwargs['kwargs']['loopCondition']() is True
208 208
209 209 def test_stop_cleans_up_the_connection(self, caplog):
210 210 thread = mock.Mock()
211 211 pyro4_daemon = mock.Mock()
212 212
213 213 with self._pyro4_patcher(pyro4_daemon):
214 214 daemon = hooks_daemon.Pyro4HooksCallbackDaemon()
215 215
216 with self._thread_patcher(thread), caplog.atLevel(logging.DEBUG):
216 with self._thread_patcher(thread), caplog.at_level(logging.DEBUG):
217 217 with daemon:
218 218 assert daemon._daemon == pyro4_daemon
219 219 assert daemon._callback_thread == thread
220 220
221 221 assert daemon._daemon is None
222 222 assert daemon._callback_thread is None
223 223 pyro4_daemon.close.assert_called_with()
224 224 thread.join.assert_called_once_with()
225 225
226 226 assert_message_in_log(
227 caplog.records(), 'Waiting for background thread to finish.',
227 caplog.records, 'Waiting for background thread to finish.',
228 228 levelno=logging.DEBUG, module='hooks_daemon')
229 229
230 230 def _pyro4_patcher(self, daemon):
231 231 return mock.patch.object(
232 232 hooks_daemon.Pyro4, 'Daemon', return_value=daemon)
233 233
234 234 def _thread_patcher(self, thread):
235 235 return mock.patch.object(
236 236 hooks_daemon.threading, 'Thread', return_value=thread)
237 237
238 238
239 239 class TestHttpHooksCallbackDaemon(object):
240 240 def test_prepare_inits_daemon_variable(self, tcp_server, caplog):
241 with self._tcp_patcher(tcp_server), caplog.atLevel(logging.DEBUG):
241 with self._tcp_patcher(tcp_server), caplog.at_level(logging.DEBUG):
242 242 daemon = hooks_daemon.HttpHooksCallbackDaemon()
243 243 assert daemon._daemon == tcp_server
244 244
245 245 assert_message_in_log(
246 caplog.records(),
246 caplog.records,
247 247 'Preparing callback daemon and registering hook object',
248 248 levelno=logging.DEBUG, module='hooks_daemon')
249 249
250 250 def test_prepare_inits_hooks_uri_and_logs_it(
251 251 self, tcp_server, caplog):
252 with self._tcp_patcher(tcp_server), caplog.atLevel(logging.DEBUG):
252 with self._tcp_patcher(tcp_server), caplog.at_level(logging.DEBUG):
253 253 daemon = hooks_daemon.HttpHooksCallbackDaemon()
254 254
255 255 _, port = tcp_server.server_address
256 256 expected_uri = '{}:{}'.format(daemon.IP_ADDRESS, port)
257 257 assert daemon.hooks_uri == expected_uri
258 258
259 259 assert_message_in_log(
260 caplog.records(), 'Hooks uri is: {}'.format(expected_uri),
260 caplog.records, 'Hooks uri is: {}'.format(expected_uri),
261 261 levelno=logging.DEBUG, module='hooks_daemon')
262 262
263 263 def test_run_creates_a_thread(self, tcp_server):
264 264 thread = mock.Mock()
265 265
266 266 with self._tcp_patcher(tcp_server):
267 267 daemon = hooks_daemon.HttpHooksCallbackDaemon()
268 268
269 269 with self._thread_patcher(thread) as thread_mock:
270 270 daemon._run()
271 271
272 272 thread_mock.assert_called_once_with(
273 273 target=tcp_server.serve_forever,
274 274 kwargs={'poll_interval': daemon.POLL_INTERVAL})
275 275 assert thread.daemon is True
276 276 thread.start.assert_called_once_with()
277 277
278 278 def test_run_logs(self, tcp_server, caplog):
279 279
280 280 with self._tcp_patcher(tcp_server):
281 281 daemon = hooks_daemon.HttpHooksCallbackDaemon()
282 282
283 with self._thread_patcher(mock.Mock()), caplog.atLevel(logging.DEBUG):
283 with self._thread_patcher(mock.Mock()), caplog.at_level(logging.DEBUG):
284 284 daemon._run()
285 285
286 286 assert_message_in_log(
287 caplog.records(),
287 caplog.records,
288 288 'Running event loop of callback daemon in background thread',
289 289 levelno=logging.DEBUG, module='hooks_daemon')
290 290
291 291 def test_stop_cleans_up_the_connection(self, tcp_server, caplog):
292 292 thread = mock.Mock()
293 293
294 294 with self._tcp_patcher(tcp_server):
295 295 daemon = hooks_daemon.HttpHooksCallbackDaemon()
296 296
297 with self._thread_patcher(thread), caplog.atLevel(logging.DEBUG):
297 with self._thread_patcher(thread), caplog.at_level(logging.DEBUG):
298 298 with daemon:
299 299 assert daemon._daemon == tcp_server
300 300 assert daemon._callback_thread == thread
301 301
302 302 assert daemon._daemon is None
303 303 assert daemon._callback_thread is None
304 304 tcp_server.shutdown.assert_called_with()
305 305 thread.join.assert_called_once_with()
306 306
307 307 assert_message_in_log(
308 caplog.records(), 'Waiting for background thread to finish.',
308 caplog.records, 'Waiting for background thread to finish.',
309 309 levelno=logging.DEBUG, module='hooks_daemon')
310 310
311 311 def _tcp_patcher(self, tcp_server):
312 312 return mock.patch.object(
313 313 hooks_daemon, 'TCPServer', return_value=tcp_server)
314 314
315 315 def _thread_patcher(self, thread):
316 316 return mock.patch.object(
317 317 hooks_daemon.threading, 'Thread', return_value=thread)
318 318
319 319
320 320 class TestPrepareHooksDaemon(object):
321 321 @pytest.mark.parametrize('protocol', ('http', 'pyro4'))
322 322 def test_returns_dummy_hooks_callback_daemon_when_using_direct_calls(
323 323 self, protocol):
324 324 expected_extras = {'extra1': 'value1'}
325 325 callback, extras = hooks_daemon.prepare_callback_daemon(
326 326 expected_extras.copy(), protocol=protocol, use_direct_calls=True)
327 327 assert isinstance(callback, hooks_daemon.DummyHooksCallbackDaemon)
328 328 expected_extras['hooks_module'] = 'rhodecode.lib.hooks_daemon'
329 329 assert extras == expected_extras
330 330
331 331 @pytest.mark.parametrize('protocol, expected_class', (
332 332 ('pyro4', hooks_daemon.Pyro4HooksCallbackDaemon),
333 333 ('http', hooks_daemon.HttpHooksCallbackDaemon)
334 334 ))
335 335 def test_returns_real_hooks_callback_daemon_when_protocol_is_specified(
336 336 self, protocol, expected_class):
337 337 expected_extras = {
338 338 'extra1': 'value1',
339 339 'hooks_protocol': protocol.lower()
340 340 }
341 341 callback, extras = hooks_daemon.prepare_callback_daemon(
342 342 expected_extras.copy(), protocol=protocol, use_direct_calls=False)
343 343 assert isinstance(callback, expected_class)
344 344 hooks_uri = extras.pop('hooks_uri')
345 345 assert extras == expected_extras
346 346 if protocol.lower() == 'pyro4':
347 347 assert hooks_uri.startswith('PYRO')
348 348
349 349 @pytest.mark.parametrize('protocol', (
350 350 'invalid',
351 351 'Pyro4',
352 352 'Http',
353 353 'HTTP',
354 354 ))
355 355 def test_raises_on_invalid_protocol(self, protocol):
356 356 expected_extras = {
357 357 'extra1': 'value1',
358 358 'hooks_protocol': protocol.lower()
359 359 }
360 360 with pytest.raises(Exception):
361 361 callback, extras = hooks_daemon.prepare_callback_daemon(
362 362 expected_extras.copy(),
363 363 protocol=protocol,
364 364 use_direct_calls=False)
365 365
366 366
367 367 class MockRequest(object):
368 368 def __init__(self, request):
369 369 self.request = request
370 370 self.input_stream = StringIO(b'{}'.format(self.request))
371 371 self.output_stream = StringIO()
372 372
373 373 def makefile(self, mode, *args, **kwargs):
374 374 return self.output_stream if mode == 'wb' else self.input_stream
375 375
376 376
377 377 class MockServer(object):
378 378 def __init__(self, Handler, request):
379 379 ip_port = ('0.0.0.0', 8888)
380 380 self.request = MockRequest(request)
381 381 self.handler = Handler(self.request, ip_port, self)
382 382
383 383
384 384 @pytest.fixture
385 385 def tcp_server():
386 386 server = mock.Mock()
387 387 server.server_address = ('127.0.0.1', 8881)
388 388 return server
@@ -1,100 +1,100 b''
1 1 # -*- coding: utf-8 -*-
2 2
3 3 # Copyright (C) 2010-2016 RhodeCode GmbH
4 4 #
5 5 # This program is free software: you can redistribute it and/or modify
6 6 # it under the terms of the GNU Affero General Public License, version 3
7 7 # (only), as published by the Free Software Foundation.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU Affero General Public License
15 15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 16 #
17 17 # This program is dual-licensed. If you wish to learn more about the
18 18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20 20
21 21 import logging
22 22
23 23 import mock
24 24 import msgpack
25 25 import pytest
26 26
27 27 from rhodecode.lib import vcs
28 28 from rhodecode.lib.vcs import client_http
29 29
30 30
31 31 def test_uses_persistent_http_connections(caplog, vcsbackend_hg):
32 32 repo = vcsbackend_hg.repo
33 33 remote_call = repo._remote.branches
34 34
35 35 with caplog.at_level(logging.INFO):
36 36 for x in range(5):
37 37 remote_call(normal=True, closed=False)
38 38
39 39 new_connections = [
40 r for r in caplog.record_tuples() if is_new_connection(*r)]
40 r for r in caplog.record_tuples if is_new_connection(*r)]
41 41 assert len(new_connections) <= 1
42 42
43 43
44 44 def is_new_connection(logger, level, message):
45 45 return (
46 46 logger == 'requests.packages.urllib3.connectionpool' and
47 47 message.startswith('Starting new HTTP'))
48 48
49 49
50 50 @pytest.fixture
51 51 def stub_session():
52 52 """
53 53 Stub of `requests.Session()`.
54 54 """
55 55 session = mock.Mock()
56 56 session.post().content = msgpack.packb({})
57 57 session.reset_mock()
58 58 return session
59 59
60 60
61 61 @pytest.fixture
62 62 def stub_session_factory(stub_session):
63 63 """
64 64 Stub of `rhodecode.lib.vcs.client_http.ThreadlocalSessionFactory`.
65 65 """
66 66 session_factory = mock.Mock()
67 67 session_factory.return_value = stub_session
68 68 return session_factory
69 69
70 70
71 71 def test_repo_maker_uses_session_for_classmethods(stub_session_factory):
72 72 repo_maker = client_http.RepoMaker(
73 73 'server_and_port', 'endpoint', 'test_dummy_scm', stub_session_factory)
74 74 repo_maker.example_call()
75 75 stub_session_factory().post.assert_called_with(
76 76 'http://server_and_port/endpoint', data=mock.ANY)
77 77
78 78
79 79 def test_repo_maker_uses_session_for_instance_methods(
80 80 stub_session_factory, config):
81 81 repo_maker = client_http.RepoMaker(
82 82 'server_and_port', 'endpoint', 'test_dummy_scm', stub_session_factory)
83 83 repo = repo_maker('stub_path', config)
84 84 repo.example_call()
85 85 stub_session_factory().post.assert_called_with(
86 86 'http://server_and_port/endpoint', data=mock.ANY)
87 87
88 88
89 89 @mock.patch('rhodecode.lib.vcs.client_http.ThreadlocalSessionFactory')
90 90 @mock.patch('rhodecode.lib.vcs.connection')
91 91 def test_connect_passes_in_the_same_session(
92 92 connection, session_factory_class, stub_session):
93 93 session_factory = session_factory_class.return_value
94 94 session_factory.return_value = stub_session
95 95
96 96 vcs.connect_http('server_and_port')
97 97
98 98 assert connection.Hg._session_factory() == stub_session
99 99 assert connection.Svn._session_factory() == stub_session
100 100 assert connection.Git._session_factory() == stub_session
General Comments 0
You need to be logged in to leave comments. Login now