1{ pkgs, stdenv, python, self }:
2
3with pkgs.lib;
4
5let
6 pythonAtLeast = versionAtLeast python.pythonVersion;
7 pythonOlder = versionOlder python.pythonVersion;
8 isPy26 = python.majorVersion == "2.6";
9 isPy27 = python.majorVersion == "2.7";
10 isPy33 = python.majorVersion == "3.3";
11 isPy34 = python.majorVersion == "3.4";
12 isPyPy = python.executable == "pypy";
13 isPy3k = strings.substring 0 1 python.majorVersion == "3";
14
15 callPackage = pkgs.newScope self;
16
17 buildPythonPackage = makeOverridable (callPackage ../development/python-modules/generic { });
18
19 # Unique python version identifier
20 pythonName =
21 if isPy26 then "python26" else
22 if isPy27 then "python27" else
23 if isPy33 then "python33" else
24 if isPy34 then "python34" else
25 if isPyPy then "pypy" else "";
26
27 modules = python.modules or {
28 readline = null;
29 sqlite3 = null;
30 curses = null;
31 curses_panel = null;
32 crypt = null;
33 };
34
35 pythonPackages = modules // {
36
37 inherit python isPy26 isPy27 isPy33 isPy34 isPyPy isPy3k pythonName buildPythonPackage;
38
39 # helpers
40
41 # global distutils config used by buildPythonPackage
42 distutils-cfg = callPackage ../development/python-modules/distutils-cfg { };
43
44 wrapPython = pkgs.makeSetupHook
45 { deps = pkgs.makeWrapper;
46 substitutions.libPrefix = python.libPrefix;
47 substitutions.executable = "${python}/bin/${python.executable}";
48 substitutions.magicalSedExpression = let
49 # Looks weird? Of course, it's between single quoted shell strings.
50 # NOTE: Order DOES matter here, so single character quotes need to be
51 # at the last position.
52 quoteVariants = [ "'\"'''\"'" "\"\"\"" "\"" "'\"'\"'" ]; # hey Vim: ''
53
54 mkStringSkipper = labelNum: quote: let
55 label = "q${toString labelNum}";
56 isSingle = elem quote [ "\"" "'\"'\"'" ];
57 endQuote = if isSingle then "[^\\\\]${quote}" else quote;
58 in ''
59 /^ *[a-z]?${quote}/ {
60 /${quote}${quote}|${quote}.*${endQuote}/{n;br}
61 :${label}; n; /^${quote}/{n;br}; /${endQuote}/{n;br}; b${label}
62 }
63 '';
64
65 in ''
66 1 {
67 /^#!/!b; :r
68 /\\$/{N;br}
69 /__future__|^ *(#.*)?$/{n;br}
70 ${concatImapStrings mkStringSkipper quoteVariants}
71 /^ *[^# ]/i import sys; sys.argv[0] = '"'$(basename "$f")'"'
72 }
73 '';
74 }
75 ../development/python-modules/generic/wrap.sh;
76
77 # specials
78
79 recursivePthLoader = callPackage ../development/python-modules/recursive-pth-loader { };
80
81 setuptools = callPackage ../development/python-modules/setuptools { };
82
83 # packages defined elsewhere
84
85 blivet = callPackage ../development/python-modules/blivet { };
86
87 dbus = callPackage ../development/python-modules/dbus {
88 dbus = pkgs.dbus;
89 };
90
91 discid = buildPythonPackage rec {
92 name = "discid-1.1.0";
93
94 meta = {
95 description = "Python binding of libdiscid";
96 homepage = "https://python-discid.readthedocs.org/";
97 license = licenses.lgpl3Plus;
98 platforms = platforms.linux;
99 maintainers = with maintainers; [ iyzsong ];
100 };
101
102 src = pkgs.fetchurl {
103 url = "https://pypi.python.org/packages/source/d/discid/${name}.tar.gz";
104 md5 = "2ad2141452dd10b03ad96ccdad075235";
105 };
106
107 patchPhase = ''
108 substituteInPlace discid/libdiscid.py \
109 --replace '_open_library(_LIB_NAME)' "_open_library('${pkgs.libdiscid}/lib/libdiscid.so.0')"
110 '';
111 };
112
113 h5py = callPackage ../development/python-modules/h5py {
114 hdf5 = pkgs.hdf5.override { mpi = null; };
115 };
116
117 h5py-mpi = self.h5py.override {
118 mpiSupport = true;
119 mpi = pkgs.openmpi;
120 hdf5 = pkgs.hdf5.override { mpi = pkgs.openmpi; enableShared = true; };
121 };
122
123 ipython = callPackage ../shells/ipython {
124 inherit pythonPackages;
125
126 qtconsoleSupport = !pkgs.stdenv.isDarwin; # qt is not supported on darwin
127 pylabQtSupport = !pkgs.stdenv.isDarwin;
128 pylabSupport = !pkgs.stdenv.isDarwin; # cups is not supported on darwin
129 };
130
131 ipythonLight = lowPrio (self.ipython.override {
132 qtconsoleSupport = false;
133 pylabSupport = false;
134 pylabQtSupport = false;
135 });
136
137 mpi4py = callPackage ../development/python-modules/mpi4py {
138 mpi = pkgs.openmpi;
139 };
140
141 nixpart = callPackage ../tools/filesystems/nixpart { };
142
143 # This is used for NixOps to make sure we won't break it with the next major
144 # version of nixpart.
145 nixpart0 = callPackage ../tools/filesystems/nixpart/0.4 { };
146
147 pitz = callPackage ../applications/misc/pitz { };
148
149 plantuml = callPackage ../tools/misc/plantuml { };
150
151 pycairo = callPackage ../development/python-modules/pycairo {
152 };
153
154 pycrypto = callPackage ../development/python-modules/pycrypto { };
155
156 pygobject = callPackage ../development/python-modules/pygobject { };
157
158 pygobject3 = callPackage ../development/python-modules/pygobject/3.nix { };
159
160 pygtk = callPackage ../development/python-modules/pygtk { libglade = null; };
161
162 pyGtkGlade = self.pygtk.override {
163 libglade = pkgs.gnome.libglade;
164 };
165
166 pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix {
167 pythonDBus = self.dbus;
168 pythonPackages = self;
169 };
170
171 pyqt5 = callPackage ../development/python-modules/pyqt/5.x.nix {
172 sip = self.sip_4_16;
173 pythonDBus = self.dbus;
174 qt5 = pkgs.qt5;
175 };
176
177 sip = callPackage ../development/python-modules/sip { };
178
179 sip_4_16 = callPackage ../development/python-modules/sip/4.16.nix { };
180
181 tables = callPackage ../development/python-modules/tables {
182 hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; };
183 };
184
185 # packages defined here
186
187 aafigure = buildPythonPackage rec {
188 name = "aafigure-0.5";
189
190 src = pkgs.fetchurl {
191 url = "https://pypi.python.org/packages/source/a/aafigure/${name}.tar.gz";
192 md5 = "5322888a21eb0bb2e749fbf98eddf574";
193 };
194
195 propagatedBuildInputs = with self; [ pillow ];
196
197 # error: invalid command 'test'
198 doCheck = false;
199
200 # Fix impurity. TODO: Do the font lookup using fontconfig instead of this
201 # manual method. Until that is fixed, we get this whenever we run aafigure:
202 # WARNING: font not found, using PIL default font
203 patchPhase = ''
204 sed -i "s|/usr/share/fonts|/nonexisting-fonts-path|" aafigure/PILhelper.py
205 '';
206
207 meta = {
208 description = "ASCII art to image converter";
209 homepage = https://launchpad.net/aafigure/;
210 license = licenses.bsd2;
211 platforms = platforms.linux;
212 maintainers = with maintainers; [ bjornfor ];
213 };
214 };
215
216
217 actdiag = buildPythonPackage rec {
218 name = "actdiag-0.5.3";
219
220 src = pkgs.fetchurl {
221 url = "https://pypi.python.org/packages/source/a/actdiag/${name}.tar.gz";
222 sha256 = "1vr4hnkr0gcvvpaycd8q3vcx029b2f5yv8swhdr8kwspaqb0dvfa";
223 };
224
225 buildInputs = with self; [ pep8 nose unittest2 docutils ];
226
227 propagatedBuildInputs = with self; [ blockdiag ];
228
229 # One test fails:
230 # UnicodeEncodeError: 'ascii' codec can't encode character u'\u3042' in position 0: ordinal not in range(128)
231 doCheck = false;
232
233 meta = {
234 description = "Generate activity-diagram image from spec-text file (similar to Graphviz)";
235 homepage = http://blockdiag.com/;
236 license = licenses.asl20;
237 platforms = platforms.linux;
238 maintainers = with maintainers; [ bjornfor ];
239 };
240 };
241
242
243 afew = buildPythonPackage rec {
244 rev = "9744c18c4d6b0a3e7f57b01e5fe145a60fc82a47";
245 name = "afew-1.0_${rev}";
246
247 src = pkgs.fetchurl {
248 url = "https://github.com/teythoon/afew/tarball/${rev}";
249 name = "${name}.tar.bz";
250 sha256 = "1qyban022aji2hl91dh0j3xa6ikkxl5argc6w71yp2x8b02kp3mf";
251 };
252
253 buildInputs = with self; [ pkgs.dbacl ];
254
255 propagatedBuildInputs = with self; [
256 self.notmuch
257 self.chardet
258 ] ++ optional (!isPy3k) self.subprocess32;
259
260 doCheck = false;
261
262 preConfigure = ''
263 substituteInPlace afew/DBACL.py --replace "'dbacl'" "'${pkgs.dbacl}/bin/dbacl'"
264 '';
265
266 postInstall = ''
267 wrapProgram $out/bin/afew \
268 --prefix LD_LIBRARY_PATH : ${pkgs.notmuch}/lib
269 '';
270
271 meta = {
272 homepage = https://github.com/teythoon/afew;
273 description = "An initial tagging script for notmuch mail";
274 maintainers = with maintainers; [ garbas ];
275 };
276 };
277
278 aiodns = buildPythonPackage rec {
279 name = "aiodns-${version}";
280 version = "0.3.2";
281
282 src = pkgs.fetchurl {
283 url = "https://pypi.python.org/packages/source/a/aiodns/${name}.tar.gz";
284 sha256 = "0i9ypv9l4d59j87kkrsh1livfgnspyzcbx26jw9x58xs5z05xj7k";
285 };
286
287 propagatedBuildInputs = with self ; [
288 pycares
289 ] ++ optional (isPy33) self.asyncio
290 ++ optional (isPy26 || isPy27) self.trollius;
291
292 meta = {
293 homepage = http://github.com/saghul/aiodns;
294 license = licenses.mit;
295 description = "Simple DNS resolver for asyncio";
296 };
297 };
298
299 alabaster = buildPythonPackage rec {
300 name = "alabaster-0.7.3";
301
302 src = pkgs.fetchurl {
303 url = "https://pypi.python.org/packages/source/a/alabaster/${name}.tar.gz";
304 md5 = "67428d1383fd833f1282fed5deba0898";
305 };
306
307 meta = {
308 homepage = https://github.com/bitprophet/alabaster;
309 description = "a Sphinx theme";
310 license = licenses.bsd3;
311 };
312 };
313
314
315 alembic = buildPythonPackage rec {
316 name = "alembic-0.7.6";
317
318 src = pkgs.fetchurl {
319 url = "https://pypi.python.org/packages/source/a/alembic/${name}.tar.gz";
320 sha256 = "0qgglnxsn470ncyipm33j3d5nf5ny2g3wq7fxyy9fv2x4rhs8kw6";
321 };
322
323 buildInputs = with self; [ nose mock ];
324 propagatedBuildInputs = with self; [ Mako sqlalchemy9 ];
325
326 meta = {
327 homepage = http://bitbucket.org/zzzeek/alembic;
328 description = "A database migration tool for SQLAlchemy";
329 license = licenses.mit;
330 };
331 };
332
333
334 almir = buildPythonPackage rec {
335 name = "almir-0.1.8";
336
337 src = pkgs.fetchurl {
338 url = "http://pypi.python.org/packages/source/a/almir/${name}.zip";
339 md5 = "9a1f3c72a039622ca72b74be7a1cd37e";
340 };
341
342 buildInputs = with self; [
343 pkgs.which
344 self.coverage
345 self.mock
346 self.tissue
347 self.unittest2
348 self.webtest
349 ];
350
351 propagatedBuildInputs = with self; [
352 pkgs.makeWrapper
353 pkgs.bacula
354 self.colander
355 self.deform
356 self.deform_bootstrap
357 self.docutils
358 self.nose
359 self.mysql_connector_repackaged
360 self.pg8000
361 self.pyramid
362 self.pyramid_beaker
363 self.pyramid_exclog
364 self.pyramid_jinja2
365 self.pyramid_tm
366 self.pytz
367 self.sqlalchemy
368 self.transaction
369 self.waitress
370 self.webhelpers
371 self.psycopg2
372 (self.zope_sqlalchemy.override rec {propagatedBuildInputs = with self; [ sqlalchemy8 transaction ];})
373 ];
374
375 postInstall = ''
376 ln -s ${pkgs.bacula}/bin/bconsole $out/bin
377 '';
378
379 meta = {
380 maintainers = with maintainers; [ iElectric ];
381 platforms = platforms.all;
382 };
383 };
384
385
386 alot = buildPythonPackage rec {
387 rev = "0.3.6";
388 name = "alot-0.3.6";
389
390 src = pkgs.fetchurl {
391 url = "https://github.com/pazz/alot/tarball/${rev}";
392 name = "${name}.tar.bz";
393 sha256 = "1rzy70w4isvypa94310xw403vq5him21q8rlx4laa0z530phkrmq";
394 };
395
396 # error: invalid command 'test'
397 doCheck = false;
398
399 propagatedBuildInputs =
400 [ self.notmuch
401 self.urwid
402 self.twisted
403 self.magic
404 self.configobj
405 self.pygpgme
406 ];
407
408 postInstall = ''
409 wrapProgram $out/bin/alot \
410 --prefix LD_LIBRARY_PATH : ${pkgs.notmuch}/lib:${pkgs.file}/lib:${pkgs.gpgme}/lib
411 '';
412
413 meta = {
414 homepage = https://github.com/pazz/alot;
415 description = "Terminal MUA using notmuch mail";
416 maintainers = with maintainers; [ garbas ];
417 };
418 };
419
420
421 anyjson = buildPythonPackage rec {
422 name = "anyjson-0.3.3";
423 disabled = isPy3k;
424
425 src = pkgs.fetchurl {
426 url = "http://pypi.python.org/packages/source/a/anyjson/${name}.tar.gz";
427 md5 = "2ea28d6ec311aeeebaf993cb3008b27c";
428 };
429
430 buildInputs = with self; [ self.nose ];
431
432 meta = {
433 homepage = http://pypi.python.org/pypi/anyjson/;
434 description = "Wrapper that selects the best available JSON implementation";
435 };
436 };
437
438
439 amqp = buildPythonPackage rec {
440 name = "amqp-${version}";
441 version = "1.4.6";
442 disabled = pythonOlder "2.6";
443
444 src = pkgs.fetchurl {
445 url = "https://pypi.python.org/packages/source/a/amqp/${name}.tar.gz";
446 sha256 = "0h76dnqfbc6fslwr7lx86n2gyslfv2x1vl8lpbszjs2svrkwikzb";
447 md5 = "a061581b6864f838bffd62b6a3d0fb9f";
448 };
449
450 buildInputs = with self; [ mock coverage nose-cover3 unittest2 ];
451
452 meta = {
453 homepage = http://github.com/celery/py-amqp;
454 description = "Python client for the Advanced Message Queuing Procotol (AMQP). This is a fork of amqplib which is maintained by the Celery project";
455 license = licenses.lgpl21;
456 };
457 };
458
459
460 amqplib = buildPythonPackage rec {
461 name = "amqplib-0.6.1";
462
463 src = pkgs.fetchurl {
464 url = "http://py-amqplib.googlecode.com/files/${name}.tgz";
465 sha1 = "f124e5e4a6644bf6d1734032a01ac44db1b25a29";
466 };
467
468 # error: invalid command 'test'
469 doCheck = false;
470
471 meta = {
472 homepage = http://code.google.com/p/py-amqplib/;
473 description = "Python client for the Advanced Message Queuing Procotol (AMQP)";
474 };
475 };
476
477 apipkg = buildPythonPackage rec {
478 name = "apipkg-1.4";
479
480 src = pkgs.fetchurl {
481 url = "https://pypi.python.org/packages/source/a/apipkg/${name}.tar.gz";
482 md5 = "17e5668601a2322aff41548cb957e7c8";
483 };
484
485 buildInputs = with self; [ ];
486
487 meta = {
488 description = "namespace control and lazy-import mechanism";
489 homepage = "http://bitbucket.org/hpk42/apipkg";
490 license = licenses.mit;
491 };
492 };
493
494 appdirs = buildPythonPackage rec {
495 name = "appdirs-1.4.0";
496
497 src = pkgs.fetchurl {
498 url = "https://pypi.python.org/packages/source/a/appdirs/appdirs-1.4.0.tar.gz";
499 md5 = "1d17b4c9694ab84794e228f28dc3275b";
500 };
501
502 meta = {
503 description = "A python module for determining appropriate platform-specific dirs";
504 homepage = http://github.com/ActiveState/appdirs;
505 license = licenses.mit;
506 };
507 };
508
509 application = buildPythonPackage rec {
510 name = "python-application-${version}";
511 version = "1.5.0";
512
513 src = pkgs.fetchurl {
514 url = "https://pypi.python.org/packages/source/p/python-application/${name}.tar.gz";
515 sha256 = "9bc00c2c639bf633e2c5e08d4bf1bb5d7edaad6ccdd473692f0362df08f8aafc";
516 };
517 };
518
519
520 apsw = buildPythonPackage rec {
521 name = "apsw-3.7.6.2-r1";
522 disabled = isPyPy;
523
524 src = pkgs.fetchurl {
525 url = "http://apsw.googlecode.com/files/${name}.zip";
526 sha1 = "fa4aec08e59fa5964197f59ba42408d64031675b";
527 };
528
529 buildInputs = with self; [ pkgs.sqlite ];
530
531 # python: double free or corruption (fasttop): 0x0000000002fd4660 ***
532 doCheck = false;
533
534 meta = {
535 description = "A Python wrapper for the SQLite embedded relational database engine";
536 homepage = http://code.google.com/p/apsw/;
537 };
538 };
539
540 asyncio = buildPythonPackage rec {
541 name = "asyncio-${version}";
542 version = "3.4.3";
543
544 disabled = (!isPy33);
545
546 src = pkgs.fetchurl {
547 url = "https://pypi.python.org/packages/source/a/asyncio/${name}.tar.gz";
548 sha256 = "0hfbqwk9y0bbfgxzg93s2wyk6gcjsdxlr5jwy97hx64ppkw0ydl3";
549 };
550
551 meta = {
552 description = "reference implementation of PEP 3156";
553 homepage = http://www.python.org/dev/peps/pep-3156;
554 license = licenses.free;
555 };
556 };
557
558 funcsigs = buildPythonPackage rec {
559 name = "funcsigs-0.4";
560 disabled = ! (isPy26 || isPy27 || isPy33 || isPyPy);
561
562 src = pkgs.fetchurl {
563 url = "https://pypi.python.org/packages/source/f/funcsigs/${name}.tar.gz";
564 md5 = "fb1d031f284233e09701f6db1281c2a5";
565 };
566
567 buildInputs = with self; [
568 unittest2
569 ];
570
571 meta = with pkgs.stdenv.lib; {
572 description = "Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2+";
573 homepage = "https://github.com/aliles/funcsigs";
574 maintainers = with maintainers; [ garbas ];
575 license = licenses.asl20;
576 };
577 };
578
579 apscheduler = buildPythonPackage rec {
580 name = "APScheduler-3.0.1";
581 disabled = !isPy27;
582
583 src = pkgs.fetchurl {
584 url = "https://pypi.python.org/packages/source/A/APScheduler/${name}.tar.gz";
585 md5 = "7c3687b3dcd645fe9df48e34eb7a7592";
586 };
587
588 buildInputs = with self; [
589 pytest
590 sqlalchemy9
591 tornado
592 twisted
593 mock
594 trollius
595 funcsigs
596 gevent
597 ];
598
599 propagatedBuildInputs = with self; [
600 six
601 pytz
602 tzlocal
603 futures
604 ];
605
606 meta = with pkgs.stdenv.lib; {
607 description = "A Python library that lets you schedule your Python code to be executed";
608 homepage = http://pypi.python.org/pypi/APScheduler/;
609 license = licenses.mit;
610 };
611 };
612
613 args = buildPythonPackage rec {
614 name = "args-0.1.0";
615
616 src = pkgs.fetchurl {
617 url = "https://pypi.python.org/packages/source/a/args/${name}.tar.gz";
618 md5 = "66faf79ba2511def7b8b81d542482046";
619 };
620
621 meta = {
622 description = "Command Arguments for Humans";
623 homepage = "https://github.com/kennethreitz/args";
624 };
625 };
626
627 area53 = buildPythonPackage (rec {
628 name = "Area53-0.94";
629
630 src = pkgs.fetchurl {
631 url = "https://pypi.python.org/packages/source/A/Area53/${name}.tar.gz";
632 sha256 = "0v9b7f8b6v21y410anx5sr52k2ac8jrzdf19q6m6p0zsdsf9vr42";
633 };
634
635 # error: invalid command 'test'
636 doCheck = false;
637
638 propagatedBuildInputs = with self; [ self.boto ];
639
640 });
641
642 arrow = buildPythonPackage rec {
643 name = "arrow-${version}";
644 version = "0.5.0";
645
646 src = pkgs.fetchurl {
647 url = "https://pypi.python.org/packages/source/a/arrow/${name}.tar.gz";
648 sha256 = "1q3a6arjm6ysl2ff6lgdm504np7b1rbivrzspybjypq1nczcb7qy";
649 };
650
651 doCheck = false;
652
653 meta = {
654 description = "Twitter API library";
655 license = "apache";
656 maintainers = with maintainers; [ thoughtpolice ];
657 };
658 };
659
660 async = buildPythonPackage rec {
661 name = "async-0.6.1";
662 disabled = isPy3k;
663 meta.maintainers = with maintainers; [ mornfall ];
664
665 buildInputs = with self; [ pkgs.zlib ];
666 doCheck = false;
667
668 src = pkgs.fetchurl {
669 url = "https://pypi.python.org/packages/source/a/async/${name}.tar.gz";
670 sha256 = "1lfmjm8apy9qpnpbq8g641fd01qxh9jlya5g2d6z60vf8p04rla1";
671 };
672 };
673
674 atomiclong = buildPythonPackage rec {
675 version = "0.1.1";
676 name = "atomiclong-${version}";
677
678 src = pkgs.fetchurl {
679 url = "https://pypi.python.org/packages/source/a/atomiclong/atomiclong-${version}.tar.gz";
680 sha256 = "1gjbc9lvpkgg8vj7dspif1gz9aq4flkhxia16qj6yvb7rp27h4yb";
681 };
682
683 buildInputs = with self; [ pytest ];
684 propagatedBuildInputs = with self; [ cffi ];
685
686 meta = {
687 description = "Long data type with atomic operations using CFFI";
688 homepage = https://github.com/dreid/atomiclong;
689 license = licenses.mit;
690 maintainers = with maintainers; [ robbinch ];
691 };
692
693 };
694
695 atomicwrites = buildPythonPackage rec {
696 version = "0.1.0";
697 name = "atomicwrites-${version}";
698
699 src = pkgs.fetchurl {
700 url = "https://pypi.python.org/packages/source/a/atomicwrites/atomicwrites-${version}.tar.gz";
701 sha256 = "1lxz0xhnzihqlvl1h6j2nfxjqqgr4s08196z5phnlcz2s7d5z0mg";
702 };
703
704 meta = {
705 description = "Atomic file writes on POSIX";
706 homepage = https://pypi.python.org/pypi/atomicwrites/0.1.0;
707 maintainers = with maintainers; [ matthiasbeyer ];
708 };
709
710 };
711
712 argparse = buildPythonPackage (rec {
713 name = "argparse-1.2.1";
714
715 src = pkgs.fetchurl {
716 url = "http://argparse.googlecode.com/files/${name}.tar.gz";
717 sha256 = "192174mys40m0bwk6l5jlfnzps0xi81sxm34cqms6dc3c454pbyx";
718 };
719
720 # error: invalid command 'test'
721 doCheck = false;
722
723 meta = {
724 homepage = http://code.google.com/p/argparse/;
725
726 license = licenses.asl20;
727
728 description = "argparse: Python command line parser";
729
730 longDescription = ''
731 The argparse module makes writing command line tools in Python
732 easy. Just briefly describe your command line interface and
733 argparse will take care of the rest, including: parsing the
734 arguments and flags from sys.argv, converting arg strings into
735 objects for your program, formatting and printing any help
736 messages, and much more.
737 '';
738 };
739 });
740
741 astroid = buildPythonPackage (rec {
742 name = "astroid-1.3.4";
743 propagatedBuildInputs = with self; [ logilab_common six ];
744 src = pkgs.fetchurl {
745 url = "https://pypi.python.org/packages/source/a/astroid/${name}.tar.gz";
746 sha256 = "1fz9x21pziy9dmivvlsgl7a86ka2m9jp3pky01da5aj89ym3wi8b";
747 };
748 });
749
750 attrdict = buildPythonPackage (rec {
751 name = "attrdict-2.0.0";
752
753 src = pkgs.fetchurl {
754 url = "https://pypi.python.org/packages/source/a/attrdict/${name}.tar.gz";
755 md5 = "8a7c1a4e737fe9e2b2b8844c0f7746f8";
756 };
757
758 propagatedBuildInputs = with self; [ coverage nose six ];
759
760 meta = {
761 description = "A dict with attribute-style access";
762 homepage = https://github.com/bcj/AttrDict;
763 license = licenses.mit;
764 };
765 });
766
767 audioread = buildPythonPackage rec {
768 name = "audioread-1.2.1";
769
770 src = pkgs.fetchurl {
771 url = "https://pypi.python.org/packages/source/a/audioread/${name}.tar.gz";
772 md5 = "01a80357f38dbd9bf8d7403802df89ac";
773 };
774
775 meta = {
776 description = "Cross-platform audio decoding";
777 homepage = "https://github.com/sampsyo/audioread";
778 license = licenses.mit;
779 };
780 };
781
782 audiotools = buildPythonPackage rec {
783 name = "audiotools-2.22";
784
785 disabled = isPy3k;
786
787 src = pkgs.fetchurl {
788 url = "mirror://sourceforge/audiotools/${name}.tar.gz";
789 sha256 = "1c52pggsbxdbj8h92njf4h0jgfndh4yv58ad723pidys47nw1y71";
790 };
791
792 meta = {
793 description = "Utilities and Python modules for handling audio";
794 homepage = "http://audiotools.sourceforge.net/";
795 license = licenses.gpl2Plus;
796 };
797 };
798
799 autopep8 = buildPythonPackage (rec {
800 name = "autopep8-1.0.4";
801
802 src = pkgs.fetchurl {
803 url = "https://pypi.python.org/packages/source/a/autopep8/${name}.tar.gz";
804 sha256 = "17lydqm8y9a5qadp6iifxrb5mb0g9fr1vxn5qy1fjpyhazxaw8n1";
805 };
806
807 propagatedBuildInputs = with self; [ pep8 ];
808
809 # One test fails:
810 # FAIL: test_recursive_should_not_crash_on_unicode_filename (test.test_autopep8.CommandLineTests)
811 doCheck = false;
812
813 meta = {
814 description = "A tool that automatically formats Python code to conform to the PEP 8 style guide";
815 homepage = https://pypi.python.org/pypi/autopep8/;
816 license = licenses.mit;
817 platforms = platforms.all;
818 maintainers = with maintainers; [ bjornfor ];
819 };
820 });
821
822 avro = buildPythonPackage (rec {
823 name = "avro-1.7.6";
824
825 disabled = isPy3k;
826
827 src = pkgs.fetchurl {
828 url = "https://pypi.python.org/packages/source/a/avro/${name}.tar.gz";
829 md5 = "7f4893205e5ad69ac86f6b44efb7df72";
830 };
831
832 meta = {
833 description = "A serialization and RPC framework";
834 homepage = "https://pypi.python.org/pypi/avro/";
835 };
836 });
837
838 avro3k = pkgs.lowPrio (buildPythonPackage (rec {
839 name = "avro3k-1.7.7-SNAPSHOT";
840
841 disabled = (!isPy3k);
842
843 src = pkgs.fetchurl {
844 url = "https://pypi.python.org/packages/source/a/avro3k/${name}.tar.gz";
845 sha256 = "15ahl0irwwj558s964abdxg4vp6iwlabri7klsm2am6q5r0ngsky";
846 };
847
848 doCheck = false; # No such file or directory: './run_tests.py
849
850 meta = {
851 description = "A serialization and RPC framework";
852 homepage = "https://pypi.python.org/pypi/avro3k/";
853 };
854 }));
855
856 azure = buildPythonPackage rec {
857 version = "0.11.0";
858 name = "azure-${version}";
859 disabled = pythonOlder "2.7";
860
861 src = pkgs.fetchurl {
862 url = "https://pypi.python.org/packages/source/a/azure/${name}.zip";
863 md5 = "5499efd85c54c757c0e757b5407ee47f";
864 };
865
866 propagatedBuildInputs = with self; [ dateutil futures pyopenssl requests ];
867
868 meta = {
869 description = "Microsoft Azure SDK for Python";
870 homepage = "http://azure.microsoft.com/en-us/develop/python/";
871 license = licenses.asl20;
872 maintainers = with maintainers; [ olcai ];
873 };
874 };
875
876 backports_ssl_match_hostname_3_4_0_2 = self.buildPythonPackage rec {
877 name = "backports.ssl_match_hostname-3.4.0.2";
878
879 src = pkgs.fetchurl {
880 url = "https://pypi.python.org/packages/source/b/backports.ssl_match_hostname/backports.ssl_match_hostname-3.4.0.2.tar.gz";
881 md5 = "788214f20214c64631f0859dc79f23c6";
882 };
883
884 meta = {
885 description = "The Secure Sockets layer is only actually *secure*";
886 homepage = http://bitbucket.org/brandon/backports.ssl_match_hostname;
887 };
888 };
889
890 backports_lzma = self.buildPythonPackage rec {
891 name = "backports.lzma-0.0.3";
892 disabled = isPy3k;
893
894 src = pkgs.fetchurl {
895 url = "https://pypi.python.org/packages/source/b/backports.lzma/${name}.tar.gz";
896 md5 = "c3d109746aefa86268e500c07d7e8e0f";
897 };
898
899 buildInputs = [ pkgs.lzma ];
900
901 meta = {
902 describe = "Backport of Python 3.3's 'lzma' module for XZ/LZMA compressed files";
903 homepage = https://github.com/peterjc/backports.lzma;
904 license = licenses.bsd3;
905 };
906 };
907
908 babelfish = buildPythonPackage rec {
909 version = "0.5.3";
910 name = "babelfish-${version}";
911 disabled = isPy3k;
912
913 src = pkgs.fetchurl {
914 url = "https://pypi.python.org/packages/source/b/babelfish/${name}.tar.gz";
915 sha256 = "0wrw21dyq7v6lbffwvi1ik43d7dhmcv8xvgrrihhiv7ys1rd3gag";
916 };
917
918 meta = {
919 homepage = http://pypi.python.org/pypi/babelfish;
920 description = "A module to work with countries and languages";
921 license = licenses.bsd3;
922 };
923 };
924
925 batinfo = buildPythonPackage rec {
926 version = "0.2";
927 name = "batinfo-${version}";
928
929 src = pkgs.fetchurl {
930 url = "https://pypi.python.org/packages/source/b/batinfo/${name}.tar.gz";
931 sha256 = "1kmrdr1c2ivpqgp2csln7vbanga3sh3nvaqmgbsg96z6fbg7f7w8";
932 };
933
934 meta = {
935 homepage = https://github.com/nicolargo/batinfo;
936 description = "A simple Python lib to retrieve battery information";
937 license = licenses.lgpl3;
938 platforms = platforms.all;
939 maintainers = with maintainers; [ koral ];
940 };
941 };
942
943 bcdoc = buildPythonPackage rec {
944 name = "bcdoc-0.14.0";
945
946 src = pkgs.fetchurl {
947 url = "https://pypi.python.org/packages/source/b/bcdoc/${name}.tar.gz";
948 sha256 = "1s2kdqs1n2mj7wq3w0pq30zs7vxq0l3abik2clqnc4hm2j7crbk8";
949 };
950
951 buildInputs = with self; [ docutils six ];
952
953 meta = {
954 homepage = https://github.com/botocore/bcdoc;
955 license = licenses.asl20;
956 description = "ReST document generation tools for botocore";
957 };
958 };
959
960 beautifulsoup = buildPythonPackage (rec {
961 name = "beautifulsoup-3.2.1";
962 disabled = isPy3k;
963
964 src = pkgs.fetchurl {
965 url = "http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.2.1.tar.gz";
966 sha256 = "1nshbcpdn0jpcj51x0spzjp519pkmqz0n0748j7dgpz70zlqbfpm";
967 };
968
969 # error: invalid command 'test'
970 doCheck = false;
971
972 meta = {
973 homepage = http://www.crummy.com/software/BeautifulSoup/;
974 license = "bsd";
975 description = "Undemanding HTML/XML parser";
976 };
977 });
978
979 beautifulsoup4 = buildPythonPackage (rec {
980 name = "beautifulsoup4-4.1.3";
981
982 src = pkgs.fetchurl {
983 url = "http://pypi.python.org/packages/source/b/beautifulsoup4/${name}.tar.gz";
984 md5 = "f1481ed77336de77a2d8e5b061b6ad62";
985 };
986
987 # invalid command 'test'
988 doCheck = false;
989
990 meta = {
991 homepage = http://crummy.com/software/BeautifulSoup/bs4/;
992 description = "HTML and XML parser";
993 license = licenses.mit;
994 maintainers = with maintainers; [ iElectric ];
995 };
996 });
997
998
999 beaker = buildPythonPackage rec {
1000 name = "Beaker-1.6.4";
1001
1002 disabled = isPy3k;
1003
1004 src = pkgs.fetchurl {
1005 url = "http://pypi.python.org/packages/source/B/Beaker/${name}.tar.gz";
1006 md5 = "c2e102870ed4c53104dec48ceadf8e9d";
1007 };
1008
1009 buildInputs =
1010 [ self.sqlalchemy
1011 self.pycryptopp
1012 self.nose
1013 self.mock
1014 self.webtest
1015 ];
1016
1017 # http://hydra.nixos.org/build/4511591/log/raw
1018 doCheck = false;
1019
1020 meta = {
1021 maintainers = with maintainers; [ garbas iElectric ];
1022 platforms = platforms.all;
1023 };
1024 };
1025
1026 caldavclientlibrary-asynk = buildPythonPackage rec {
1027 version = "asynkdev";
1028 name = "caldavclientlibrary-asynk-${version}";
1029
1030 src = pkgs.fetchgit {
1031 url = "https://github.com/skarra/CalDAVClientLibrary.git";
1032 rev = "06699b08190d50cc2636b921a654d67db0a967d1";
1033 sha256 = "1i6is7lv4v9by4panrd9w63m4xsmhwlp3rq4jjj3azwg5jm10940";
1034 };
1035
1036 meta = {
1037 description = "A Python library and tool for CalDAV";
1038
1039 longDescription = ''
1040 CalDAVCLientLibrary is a Python library and tool for CalDAV.
1041
1042 This package is the unofficial CalDAVCLientLibrary Python
1043 library maintained by the author of Asynk and is needed for
1044 that package.
1045 '';
1046
1047 homepage = https://github.com/skarra/CalDAVClientLibrary/tree/asynkdev/;
1048 maintainers = with maintainers; [ pjones ];
1049 };
1050 };
1051
1052 bedup = buildPythonPackage rec {
1053 name = "bedup-20140413";
1054
1055 src = pkgs.fetchgit {
1056 url = "https://github.com/g2p/bedup.git";
1057 rev = "5189e166145b8954ac41883f81ef3c3b50dc96ab";
1058 sha256 = "e61768fa19934bd176799f90bda3ea9f49a5def21fa2523a8e47df8a48e730e9";
1059 };
1060
1061 buildInputs = with self; [ pkgs.btrfsProgs ];
1062 propagatedBuildInputs = with self; [ contextlib2 sqlalchemy9 pyxdg pycparser alembic ]
1063 ++ optionals (!isPyPy) [ cffi ];
1064
1065 meta = {
1066 description = "Deduplication for Btrfs";
1067 longDescription = ''
1068 Deduplication for Btrfs. bedup looks for new and changed files, making sure that multiple
1069 copies of identical files share space on disk. It integrates deeply with btrfs so that scans
1070 are incremental and low-impact.
1071 '';
1072 homepage = https://github.com/g2p/bedup;
1073 license = licenses.gpl2;
1074
1075 platforms = platforms.linux;
1076
1077 maintainers = with maintainers; [ bluescreen303 ];
1078 };
1079 };
1080
1081 buttersink = buildPythonPackage rec {
1082 name = "buttersink-0.6.6";
1083
1084 src = pkgs.fetchurl {
1085 sha256 = "1vi0pz8r3d17bsn5g7clkyph7sc0rjzbzqk6rwglaxcah7sfj2mj";
1086 url = "https://pypi.python.org/packages/source/b/buttersink/${name}.tar.gz";
1087 };
1088
1089 meta = {
1090 description = "Synchronise btrfs snapshots";
1091 longDescription = ''
1092 ButterSink is like rsync, but for btrfs subvolumes instead of files,
1093 which makes it much more efficient for things like archiving backup
1094 snapshots. It is built on top of btrfs send and receive capabilities.
1095 Sources and destinations can be local btrfs file systems, remote btrfs
1096 file systems over SSH, or S3 buckets.
1097 '';
1098 homepage = https://github.com/AmesCornish/buttersink/wiki;
1099 license = licenses.gpl3;
1100 platforms = platforms.linux;
1101 maintainers = with maintainers; [ nckx ];
1102 };
1103
1104 propagatedBuildInputs = with self; [ boto crcmod psutil ];
1105 };
1106
1107 circus = buildPythonPackage rec {
1108 name = "circus-0.11.1";
1109
1110 src = pkgs.fetchurl {
1111 url = "https://pypi.python.org/packages/source/c/circus/${name}.tar.gz";
1112 md5 = "5c07cdbe9bb4a9b82e52737ad590617b";
1113 };
1114
1115 doCheck = false; # weird error
1116
1117 propagatedBuildInputs = with self; [ iowait psutil pyzmq tornado mock ];
1118 };
1119
1120 cornice = buildPythonPackage rec {
1121 name = "cornice-${version}";
1122 version = "0.17.0";
1123 src = pkgs.fetchgit {
1124 url = https://github.com/mozilla-services/cornice.git;
1125 rev = "refs/tags/${version}";
1126 sha256 = "12yrcsv1sdl5w308y1cc939ppq7pi2490s54zfcbs481cvsyr1lg";
1127 };
1128
1129 propagatedBuildInputs = with self; [ pyramid simplejson ];
1130
1131 doCheck = false; # lazy packager
1132 };
1133
1134 cvxopt = buildPythonPackage rec {
1135 name = "${pname}-${version}";
1136 pname = "cvxopt";
1137 version = "1.1.7";
1138 disabled = isPyPy;
1139 src = pkgs.fetchurl {
1140 url = "https://pypi.python.org/packages/source/c/${pname}/${name}.tar.gz";
1141 sha256 = "f856ea2e9e2947abc1a6557625cc6b0e45228984f397a90c420b2f468dc4cb97";
1142 };
1143 doCheck = false;
1144 buildInputs = with pkgs; [ openblasCompat ];
1145 preConfigure = ''
1146 export CVXOPT_BLAS_LIB_DIR=${pkgs.openblasCompat}/lib
1147 export CVXOPT_BLAS_LIB=openblas
1148 export CVXOPT_LAPACK_LIB=openblas
1149 '';
1150 meta = {
1151 homepage = "http://cvxopt.org/";
1152 description = "Python Software for Convex Optimization";
1153 maintainers = with maintainers; [ edwtjo ];
1154 license = licenses.gpl3Plus;
1155 };
1156 };
1157
1158 debian = buildPythonPackage rec {
1159 name = "${pname}-${version}";
1160 pname = "python-debian";
1161 version = "0.1.23";
1162 src = pkgs.fetchurl {
1163 url = "https://pypi.python.org/packages/source/p/${pname}/${name}.tar.gz";
1164 sha256 = "193faznwnjc3n5991wyzim6h9gyq1zxifmfrnpm3avgkh7ahyynh";
1165 };
1166 propagatedBuildInputs = with self; [ chardet six ];
1167 };
1168
1169 defusedxml = buildPythonPackage rec {
1170 name = "${pname}-${version}";
1171 pname = "defusedxml";
1172 version = "0.4.1";
1173 src = pkgs.fetchurl {
1174 url = "https://pypi.python.org/packages/source/d/${pname}/${name}.tar.gz";
1175 sha256 = "0y147zy3jqmk6ly7fbhqmzn1hf41xcb53f2vcc3m8x4ba5d1smfd";
1176 };
1177 };
1178
1179 dugong = buildPythonPackage rec {
1180 name = "${pname}-${version}";
1181 pname = "dugong";
1182 version = "3.5";
1183 src = pkgs.fetchurl {
1184 url = "https://pypi.python.org/packages/source/d/${pname}/${name}.tar.bz2";
1185 sha256 = "0y0rdxbiwm03zv6vpvapqilrird3h8ijz7xmb0j7ds5j4p6q3g24";
1186 };
1187
1188 disabled = pythonOlder "3.3"; # Library does not support versions older than 3.3
1189 };
1190
1191 iowait = buildPythonPackage rec {
1192 name = "iowait-0.2";
1193
1194 src = pkgs.fetchurl {
1195 url = "https://pypi.python.org/packages/source/i/iowait/${name}.tar.gz";
1196 md5 = "f49ca7766fe4a67e03a731e575614f87";
1197 };
1198
1199 meta = {
1200 description = "Platform-independent module for I/O completion events";
1201 homepage = https://launchpad.net/python-iowait;
1202 };
1203 };
1204
1205 responses = self.buildPythonPackage rec {
1206 name = "responses-0.4.0";
1207
1208 src = pkgs.fetchurl {
1209 url = "https://pypi.python.org/packages/source/r/responses/${name}.tar.gz";
1210 sha256 = "0fs7a4cf4f12mjhcjd5vfh0f3ixcy2nawzxpgsfr3ahf0rg7ppx5";
1211 };
1212
1213 propagatedBuildInputs = with self; [ cookies mock requests2 six ];
1214
1215 doCheck = false;
1216
1217 };
1218
1219 rarfile = self.buildPythonPackage rec {
1220 name = "rarfile-2.6";
1221
1222 src = pkgs.fetchurl {
1223 url = "https://pypi.python.org/packages/source/r/rarfile/rarfile-2.6.tar.gz";
1224 md5 = "50ce3f3fdb9196a00059a5ea7b3739fd";
1225 };
1226
1227 meta = {
1228 description = "rarfile - RAR archive reader for Python";
1229 homepage = https://github.com/markokr/rarfile;
1230 };
1231 };
1232
1233 proboscis = pythonPackages.buildPythonPackage rec {
1234 name = "proboscis-1.2.6.0";
1235
1236 src = pkgs.fetchurl {
1237 url = "https://pypi.python.org/packages/source/p/proboscis/proboscis-1.2.6.0.tar.gz";
1238 md5 = "e4b36449ef7c18f70b8243f4c8bddbca";
1239 };
1240
1241 propagatedBuildInputs = with pythonPackages; [ nose ];
1242 doCheck = false;
1243
1244 meta = {
1245 description = "A Python test framework that extends Python's built-in unittest module and Nose with features from TestNG";
1246 homepage = https://github.com/rackspace/python-proboscis;
1247 license = licenses.asl20;
1248 };
1249 };
1250
1251 pyechonest = self.buildPythonPackage rec {
1252 name = "pyechonest-8.0.2";
1253
1254 src = pkgs.fetchurl {
1255 url = "https://pypi.python.org/packages/source/p/pyechonest/pyechonest-8.0.2.tar.gz";
1256 md5 = "5586fe8ece7af4e24f71ea740185127e";
1257 };
1258
1259 meta = {
1260 description = "Tap into The Echo Nest's Musical Brain for the best music search, information, recommendations and remix tools on the web";
1261 homepage = https://github.com/echonest/pyechonest;
1262 };
1263 };
1264
1265
1266 billiard = buildPythonPackage rec {
1267 name = "billiard-${version}";
1268 version = "3.3.0.19";
1269
1270 disabled = isPyPy;
1271
1272 src = pkgs.fetchurl {
1273 url = "https://pypi.python.org/packages/source/b/billiard/${name}.tar.gz";
1274 sha256 = "06bs1kl7dji6lwpj3dkfi61mmrfq2mi7wz3ka683i2avwk38wsvf";
1275 md5 = "7e473b9da01956ce91a650f99fe8d4ad";
1276 };
1277
1278 buildInputs = with self; [ nose unittest2 mock ];
1279
1280 # i can't imagine these were intentionally installed
1281 postInstall = "rm -r $out/${python.sitePackages}/funtests";
1282
1283 meta = {
1284 homepage = https://github.com/celery/billiard;
1285 description = "Python multiprocessing fork with improvements and bugfixes";
1286 license = licenses.bsd3;
1287 };
1288 };
1289
1290
1291 bitbucket_api = buildPythonPackage rec {
1292 name = "bitbucket-api-0.4.4";
1293
1294 src = pkgs.fetchurl {
1295 url = "http://pypi.python.org/packages/source/b/bitbucket-api/${name}.tar.gz";
1296 md5 = "6f3cee3586c4aad9c0b2e04fce9704fb";
1297 };
1298
1299 propagatedBuildInputs = with self; [ requests_oauth2 nose sh ];
1300
1301 doCheck = false;
1302
1303 meta = {
1304 homepage = https://github.com/Sheeprider/BitBucket-api;
1305 description = "Python library to interact with BitBucket REST API";
1306 license = licenses.mit;
1307 };
1308 };
1309
1310 bitbucket-cli = buildPythonPackage rec {
1311 name = "bitbucket-cli-0.4.1";
1312 src = pkgs.fetchurl {
1313 url = "https://pypi.python.org/packages/source/b/bitbucket-cli/${name}.tar.gz";
1314 md5 = "79cdbdc6c95dfa313d12cbdef406c9f2";
1315 };
1316
1317 pythonPath = [ self.requests ];
1318
1319 meta = {
1320 description = "Bitbucket command line interface";
1321 homepage = "https://bitbucket.org/zhemao/bitbucket-cli";
1322 maintainers = with maintainers; [ refnil ];
1323 };
1324 };
1325
1326
1327 bitstring = buildPythonPackage rec {
1328 name = "bitstring-3.1.2";
1329
1330 src = pkgs.fetchurl {
1331 url = "https://python-bitstring.googlecode.com/files/${name}.zip";
1332 sha256 = "1i1p3rkj4ad108f23xyib34r4rcy571gy65paml6fk77knh0k66p";
1333 };
1334
1335 # error: invalid command 'test'
1336 doCheck = false;
1337
1338 meta = {
1339 description = "Module for binary data manipulation";
1340 homepage = https://code.google.com/p/python-bitstring/;
1341 license = licenses.mit;
1342 platforms = platforms.linux;
1343 maintainers = with maintainers; [ bjornfor ];
1344 };
1345 };
1346
1347 blaze = buildPythonPackage rec {
1348 name = "blaze-${version}";
1349 version = "0.8.2";
1350
1351 src = pkgs.fetchurl {
1352 url = "https://pypi.python.org/packages/source/b/blaze/${name}.tar.gz";
1353 sha256 = "1abedabf2a1e62dd059e0942d60f27337763de26f5e3f61ed55baaf97723b624";
1354 };
1355
1356 propagatedBuildInputs = with self; [
1357 numpy
1358 pandas
1359 datashape
1360 odo
1361 toolz
1362 multipledispatch
1363 sqlalchemy9 # sqlalchemy8 should also work
1364 psutil
1365 ];
1366
1367 meta = {
1368 homepage = https://github.com/ContinuumIO/blaze;
1369 description = "Allows Python users a familiar interface to query data living in other data storage systems";
1370 license = licenses.bsdOriginal;
1371 };
1372 };
1373
1374 bleach = buildPythonPackage rec {
1375 version = "v1.4";
1376 name = "bleach-${version}";
1377
1378 src = pkgs.fetchurl {
1379 url = "http://github.com/jsocol/bleach/archive/${version}.tar.gz";
1380 sha256 = "19v0zhvchz89w179rwkc4ah3cj2gbcng9alwa2yla89691g8b0b0";
1381 };
1382
1383 propagatedBuildInputs = with self; [ six html5lib ];
1384
1385 meta = {
1386 description = "An easy, HTML5, whitelisting HTML sanitizer";
1387 longDescription = ''
1388 Bleach is an HTML sanitizing library that escapes or strips markup and
1389 attributes based on a white list. Bleach can also linkify text safely,
1390 applying filters that Django's urlize filter cannot, and optionally
1391 setting rel attributes, even on links already in the text.
1392
1393 Bleach is intended for sanitizing text from untrusted sources. If you
1394 find yourself jumping through hoops to allow your site administrators
1395 to do lots of things, you're probably outside the use cases. Either
1396 trust those users, or don't.
1397 '';
1398 homepage = https://github.com/jsocol/bleach;
1399 downloadPage = https://github.com/jsocol/bleach/releases;
1400 license = licenses.asl20;
1401 maintainers = with maintainers; [ prikhi ];
1402 platforms = platforms.linux;
1403 };
1404 };
1405
1406 blinker = buildPythonPackage rec {
1407 name = "blinker-${version}";
1408 version = "1.3";
1409
1410 src = pkgs.fetchurl {
1411 url = "https://pypi.python.org/packages/source/b/blinker/${name}.tar.gz";
1412 md5 = "66e9688f2d287593a0e698cd8a5fbc57";
1413 };
1414
1415 meta = {
1416 homepage = http://pythonhosted.org/blinker/;
1417 description = "Fast, simple object-to-object and broadcast signaling";
1418 license = licenses.mit;
1419 maintainers = with maintainers; [ garbas ];
1420 };
1421 };
1422
1423
1424 blockdiag = buildPythonPackage rec {
1425 name = "blockdiag-1.4.7";
1426
1427 src = pkgs.fetchurl {
1428 url = "https://pypi.python.org/packages/source/b/blockdiag/${name}.tar.gz";
1429 sha256 = "0bc29sh8hj3hmhclifh1by0n6vg2pl9wkxb7fmljyw0arjas54bf";
1430 };
1431
1432 buildInputs = with self; [ pep8 nose unittest2 docutils ];
1433
1434 propagatedBuildInputs = with self; [ pillow webcolors funcparserlib ];
1435
1436 # One test fails:
1437 # ...
1438 # FAIL: test_auto_font_detection (blockdiag.tests.test_boot_params.TestBootParams)
1439 doCheck = false;
1440
1441 meta = {
1442 description = "Generate block-diagram image from spec-text file (similar to Graphviz)";
1443 homepage = http://blockdiag.com/;
1444 license = licenses.asl20;
1445 platforms = platforms.linux;
1446 maintainers = with maintainers; [ bjornfor ];
1447 };
1448 };
1449
1450
1451 bpython = buildPythonPackage rec {
1452 name = "bpython-0.12";
1453 src = pkgs.fetchurl {
1454 url = "http://www.bpython-interpreter.org/releases/bpython-0.12.tar.gz";
1455 sha256 = "1ilf58qq7sazmcgg4f1wswbhcn2gb8qbbrpgm6gf0j2lbm60gabl";
1456 };
1457
1458 propagatedBuildInputs = with self; [ modules.curses pygments ];
1459 doCheck = false;
1460
1461 meta = {
1462 description = "UNKNOWN";
1463 homepage = "UNKNOWN";
1464 maintainers = with maintainers; [ iElectric ];
1465 };
1466 };
1467
1468
1469 boto = buildPythonPackage rec {
1470 name = "boto-${version}";
1471 version = "2.38.0";
1472
1473 src = pkgs.fetchurl {
1474 url = "https://github.com/boto/boto/archive/${version}.tar.gz";
1475 sha256 = "0l7m3lmxmnknnz9svzc7z26rklwckzwqgz6hgackl62gkndryrgj";
1476 };
1477
1478 checkPhase = ''
1479 ${python.interpreter} tests/test.py default
1480 '';
1481
1482 buildInputs = [ self.nose self.mock ];
1483 propagatedBuildInputs = [ self.requests self.httpretty ];
1484
1485 meta = {
1486 homepage = https://github.com/boto/boto;
1487
1488 license = "bsd";
1489
1490 description = "Python interface to Amazon Web Services";
1491
1492 longDescription = ''
1493 The boto module is an integrated interface to current and
1494 future infrastructural services offered by Amazon Web
1495 Services. This includes S3, SQS, EC2, among others.
1496 '';
1497 };
1498 };
1499
1500 botocore = buildPythonPackage rec {
1501 version = "1.1.4";
1502 name = "botocore-${version}";
1503
1504 src = pkgs.fetchurl {
1505 url = "https://pypi.python.org/packages/source/b/botocore/${name}.tar.gz";
1506 sha256 = "1wbbaj0y6bfzsh61hgnnssn5j8m93r6r2m5r1jmlf6iz3l9gqkkp";
1507 };
1508
1509 propagatedBuildInputs =
1510 [ self.dateutil
1511 self.requests
1512 self.jmespath
1513 ];
1514
1515 buildInputs = [ self.docutils ];
1516
1517 meta = {
1518 homepage = https://github.com/boto/botocore;
1519
1520 license = "bsd";
1521
1522 description = "A low-level interface to a growing number of Amazon Web Services";
1523
1524 };
1525 };
1526
1527 bottle = buildPythonPackage rec {
1528 version = "0.12.8";
1529 name = "bottle-${version}";
1530
1531 src = pkgs.fetchurl {
1532 url = "https://pypi.python.org/packages/source/b/bottle/${name}.tar.gz";
1533 sha256 = "1b2hq0l4nwh75s2w6wgiqlkj4q1qvyx6a94axl2k4lsym1aifpfd";
1534 };
1535
1536 propagatedBuildInputs = with self; [ setuptools ];
1537
1538 meta = {
1539 homepage = http://bottlepy.org;
1540 description = "A fast and simple micro-framework for small web-applications";
1541 license = licenses.mit;
1542 platforms = platforms.all;
1543 maintainers = with maintainers; [ koral ];
1544 };
1545 };
1546
1547 box2d = buildPythonPackage rec {
1548 name = "box2d-${version}";
1549 version = "2.3b0";
1550 disabled = (!isPy27);
1551
1552 src = pkgs.fetchurl {
1553 url = "https://pypi.python.org/packages/source/B/Box2D/Box2D-2.3b0.zip";
1554 md5="25fc4f69cd580bdca0022ac3ace53865";
1555 };
1556
1557 patches = [ ../development/python-modules/box2d/disable-test.patch ];
1558
1559 propagatedBuildInputs = [ pkgs.swig2 pkgs.box2d ];
1560
1561 meta = {
1562 homepage = https://code.google.com/p/pybox2d/;
1563 description = ''
1564 A 2D game physics library for Python under
1565 the very liberal zlib license
1566 '';
1567 license = licenses.zlib;
1568 platforms = platforms.all;
1569 maintainers = with maintainers; [ sepi ];
1570 };
1571 };
1572
1573 bugwarrior = buildPythonPackage rec {
1574 name = "bugwarrior-${version}";
1575 version = "1.0.2";
1576
1577 src = pkgs.fetchurl {
1578 url = "https://pypi.python.org/packages/source/b/bugwarrior/${name}.tar.gz";
1579 # md5 = "09c93f86a27ffc092e69b46889a3bf50"; # provided by pypi website.
1580 sha256 = "efe41756c152789f39006f157add9bedfa2b85d2cac15c067e635e37c70cb8f8";
1581 };
1582
1583 buildInputs = with self; [ mock unittest2 nose /* jira megaplan */ ];
1584 propagatedBuildInputs = with self; [
1585 twiggy requests2 offtrac bugzilla taskw dateutil pytz keyring six
1586 jinja2 pycurl dogpile_cache lockfile click
1587 ];
1588
1589 # for the moment jira>=0.22 and megaplan>=1.4 are missing for running the test suite.
1590 doCheck = false;
1591
1592 meta = {
1593 homepage = http://github.com/ralphbean/bugwarrior;
1594 description = "Sync github, bitbucket, bugzilla, and trac issues with taskwarrior";
1595 license = licenses.gpl3Plus;
1596 platforms = platforms.all;
1597 maintainers = with maintainers; [ pierron ];
1598 };
1599 };
1600
1601 # bugz = buildPythonPackage (rec {
1602 # name = "bugz-0.9.3";
1603 #
1604 # src = pkgs.fetchgit {
1605 # url = "https://github.com/williamh/pybugz.git";
1606 # rev = "refs/tags/0.9.3";
1607 # };
1608 #
1609 # propagatedBuildInputs = with self; [ self.argparse ];
1610 #
1611 # doCheck = false;
1612 #
1613 # meta = {
1614 # homepage = http://www.liquidx.net/pybugz/;
1615 # description = "Command line interface for Bugzilla";
1616 # };
1617 # });
1618
1619 bugzilla = buildPythonPackage rec {
1620 name = "bugzilla-${version}";
1621 version = "1.1.0";
1622
1623 src = pkgs.fetchurl {
1624 url = "https://pypi.python.org/packages/source/p/python-bugzilla/python-${name}.tar.gz";
1625 # md5 = "c95befd1fecad21f742beaa8180538c0"; # provided by pypi website.
1626 sha256 = "11361635a4f1613803a0b9b93ba9126f7fd36180653f953e2590b1536d107d46";
1627 };
1628
1629 patches = [ ../development/python-modules/bugzilla/checkPhase-fix-cookie-compare.patch ];
1630
1631 buildInputs = with self; [ pep8 coverage logilab_common ];
1632 propagatedBuildInputs = [ self.requests2 ];
1633
1634 preCheck = ''
1635 mkdir -p check-phase
1636 export HOME=$(pwd)/check-phase
1637 '';
1638
1639 meta = {
1640 homepage = https://fedorahosted.org/python-bugzilla/;
1641 description = "Bugzilla XMLRPC access module";
1642 license = licenses.gpl2;
1643 platforms = platforms.all;
1644 maintainers = with maintainers; [ pierron ];
1645 };
1646 };
1647
1648 buildout = self.zc_buildout;
1649 buildout152 = self.zc_buildout152;
1650
1651 # A patched version of buildout, useful for buildout based development on Nix
1652 zc_buildout_nix = callPackage ../development/python-modules/buildout-nix { };
1653
1654 zc_recipe_egg = self.zc_recipe_egg_buildout171;
1655 zc_buildout = self.zc_buildout171;
1656 zc_buildout2 = self.zc_buildout221;
1657 zc_buildout221 = buildPythonPackage rec {
1658 name = "zc.buildout-2.2.1";
1659
1660 src = pkgs.fetchurl {
1661 url = "http://pypi.python.org/packages/source/z/zc.buildout/${name}.tar.gz";
1662 md5 = "476a06eed08506925c700109119b6e41";
1663 };
1664
1665 meta = {
1666 homepage = "http://www.buildout.org";
1667 description = "A software build and configuration system";
1668 license = licenses.zpt21;
1669 maintainers = with maintainers; [ garbas ];
1670 };
1671 };
1672
1673 zc_buildout171 = buildPythonPackage rec {
1674 name = "zc.buildout-1.7.1";
1675
1676 disabled = isPy3k;
1677
1678 src = pkgs.fetchurl {
1679 url = "http://pypi.python.org/packages/source/z/zc.buildout/${name}.tar.gz";
1680 md5 = "8834a21586bf2be53dc412002241a996";
1681 };
1682
1683 meta = {
1684 homepage = "http://www.buildout.org";
1685 description = "A software build and configuration system";
1686 license = licenses.zpt21;
1687 maintainers = with maintainers; [ garbas ];
1688 };
1689 };
1690
1691 zc_buildout152 = buildPythonPackage rec {
1692 name = "zc.buildout-1.5.2";
1693
1694 disabled = isPy3k;
1695
1696 src = pkgs.fetchurl {
1697 url = "http://pypi.python.org/packages/source/z/zc.buildout/${name}.tar.gz";
1698 md5 = "87f7b3f8d13926c806242fd5f6fe36f7";
1699 };
1700
1701 # TODO: consider if this patch should be an option
1702 # It makes buildout useful in a nix profile, but this alters the default functionality
1703 patchPhase = ''
1704 sed -i "s/return (stdlib, site_paths)/return (stdlib, sys.path)/g" src/zc/buildout/easy_install.py
1705 '';
1706
1707 meta = {
1708 homepage = "http://www.buildout.org";
1709 description = "A software build and configuration system";
1710 license = licenses.zpt21;
1711 maintainers = with maintainers; [ garbas ];
1712 };
1713 };
1714
1715 zc_recipe_egg_fun = { buildout, version, md5 }: buildPythonPackage rec {
1716 inherit version;
1717 name = "zc.recipe.egg-${version}";
1718
1719 buildInputs = with self; [ buildout ];
1720 doCheck = false;
1721
1722 src = pkgs.fetchurl {
1723 inherit md5;
1724 url = "https://pypi.python.org/packages/source/z/zc.recipe.egg/zc.recipe.egg-${version}.tar.gz";
1725 };
1726 };
1727 zc_recipe_egg_buildout171 = self.zc_recipe_egg_fun {
1728 buildout = self.zc_buildout171;
1729 version = "1.3.2";
1730 md5 = "1cb6af73f527490dde461d3614a36475";
1731 };
1732 zc_recipe_egg_buildout2 = self.zc_recipe_egg_fun {
1733 buildout = self.zc_buildout2;
1734 version = "2.0.1";
1735 md5 = "5e81e9d4cc6200f5b1abcf7c653dd9e3";
1736 };
1737
1738 bunch = buildPythonPackage (rec {
1739 name = "bunch-1.0.1";
1740 meta.maintainers = with maintainers; [ mornfall ];
1741
1742 src = pkgs.fetchurl {
1743 url = "https://pypi.python.org/packages/source/b/bunch/${name}.tar.gz";
1744 sha256 = "1akalx2pd1fjlvrq69plvcx783ppslvikqdm93z2sdybq07pmish";
1745 };
1746 doCheck = false;
1747 });
1748
1749
1750 cairocffi = buildPythonPackage rec {
1751 name = "cairocffi-0.7.1";
1752
1753 src = pkgs.fetchurl {
1754 url = "https://pypi.python.org/packages/source/c/cairocffi/${name}.tar.gz";
1755 md5 = "e26d06a8d8b16c7210414ce15d453636";
1756 };
1757
1758 propagatedBuildInputs = with self; [ cffi ];
1759
1760 meta = {
1761 homepage = https://github.com/SimonSapin/cairocffi;
1762 license = "bsd";
1763 description = "cffi-based cairo bindings for Python";
1764 };
1765 };
1766
1767
1768 carrot = buildPythonPackage rec {
1769 name = "carrot-0.10.7";
1770
1771 src = pkgs.fetchurl {
1772 url = "http://pypi.python.org/packages/source/c/carrot/${name}.tar.gz";
1773 md5 = "530a0614de3a669314c3acd4995c54d5";
1774 };
1775
1776 buildInputs = with self; [ self.nose ];
1777
1778 propagatedBuildInputs =
1779 [ self.amqplib
1780 self.anyjson
1781 ];
1782
1783 doCheck = false; # depends on the network
1784
1785 meta = {
1786 homepage = http://pypi.python.org/pypi/carrot;
1787 description = "AMQP Messaging Framework for Python";
1788 };
1789 };
1790
1791 cassandra-driver = buildPythonPackage rec {
1792 name = "cassandra-driver-2.6.0c2";
1793
1794 src = pkgs.fetchurl {
1795 url = "http://pypi.python.org/packages/source/c/cassandra-driver/${name}.tar.gz";
1796 sha256 = "00cc2rkvkxaxn7sf2qzy29s6h394fla73rbdh9krxbswp5nvp27r";
1797 };
1798
1799 propagatedBuildInputs = with self; [
1800 futures
1801 nose
1802 six
1803 sure
1804 pytz
1805 pyyaml
1806 ];
1807
1808 meta = {
1809 homepage = http://datastax.github.io/python-driver/;
1810 description = "A Python client driver for Apache Cassandra";
1811 };
1812 };
1813
1814
1815 celery = buildPythonPackage rec {
1816 name = "celery-${version}";
1817 version = "3.1.17";
1818
1819 disabled = pythonOlder "2.6";
1820
1821 src = pkgs.fetchurl {
1822 url = "https://pypi.python.org/packages/source/c/celery/${name}.tar.gz";
1823 sha256 = "0qh38xnbgbj7awpjxxvjlddyafxyyy3fhxcas3i8dmcb4r9vdqng";
1824 md5 = "e37f5d93b960bf68fc26c1325f30fd16";
1825 };
1826
1827 buildInputs = with self; [ mock nose unittest2 ];
1828 propagatedBuildInputs = with self; [ kombu billiard pytz anyjson ];
1829
1830 # tests broken on python 2.6? https://github.com/nose-devs/nose/issues/806
1831 doCheck = pythonAtLeast "2.7";
1832
1833 meta = {
1834 homepage = https://github.com/celery/celery/;
1835 description = "Distributed task queue";
1836 license = licenses.bsd3;
1837 };
1838 };
1839
1840
1841 certifi = buildPythonPackage rec {
1842 name = "certifi-${version}";
1843 version = "14.05.14";
1844
1845 src = pkgs.fetchurl {
1846 url = "https://pypi.python.org/packages/source/c/certifi/${name}.tar.gz";
1847 sha256 = "0s8vxzfz6s4m6fvxc7z25k9j35w0rh6jkw3wwcd1az1mssncn6qy";
1848 };
1849
1850 meta = {
1851 homepage = http://certifi.io/;
1852 description = "Python package for providing Mozilla's CA Bundle";
1853 license = licenses.isc;
1854 maintainers = with maintainers; [ koral ];
1855 };
1856 };
1857
1858 characteristic = buildPythonPackage rec {
1859 name = "characteristic-14.1.0";
1860 src = pkgs.fetchurl {
1861 url = "https://pypi.python.org/packages/source/c/characteristic/${name}.tar.gz";
1862 md5 = "68ea7e28997fc57d3631791ec0567a05";
1863 };
1864
1865 buildInputs = with self; [ self.pytest ];
1866
1867 meta = {
1868 description = "Python attributes without boilerplate";
1869 homepage = https://characteristic.readthedocs.org;
1870 };
1871 };
1872
1873
1874 cheetah = buildPythonPackage rec {
1875 version = "2.4.4";
1876 name = "cheetah-${version}";
1877 disabled = isPy3k;
1878
1879 src = pkgs.fetchurl {
1880 url = "http://pypi.python.org/packages/source/C/Cheetah/Cheetah-${version}.tar.gz";
1881 md5 = "853917116e731afbc8c8a43c37e6ddba";
1882 };
1883
1884 propagatedBuildInputs = with self; [ self.markdown ];
1885
1886 meta = {
1887 homepage = http://www.cheetahtemplate.org/;
1888 description = "A template engine and code generation tool";
1889 };
1890 };
1891
1892
1893 cherrypy = buildPythonPackage (rec {
1894 name = "cherrypy-${version}";
1895 version = "3.2.2";
1896
1897 src = pkgs.fetchurl {
1898 url = "http://download.cherrypy.org/cherrypy/${version}/CherryPy-${version}.tar.gz";
1899 sha256 = "14dn129h69wj0h8yr0bjwbrk8kygl6mkfnxc5m3fxhlm4xb8hnnw";
1900 };
1901
1902 # error: invalid command 'test'
1903 doCheck = false;
1904
1905 meta = {
1906 homepage = "http://www.cherrypy.org";
1907 description = "A pythonic, object-oriented HTTP framework";
1908 };
1909 });
1910
1911
1912 cjson = buildPythonPackage rec {
1913 name = "python-cjson-${version}";
1914 version = "1.1.0";
1915 disabled = isPy3k || isPyPy;
1916
1917 src = pkgs.fetchurl {
1918 url = "https://pypi.python.org/packages/source/p/python-cjson/${name}.tar.gz";
1919 sha256 = "a01fabb7593728c3d851e1cd9a3efbd18f72650a31a5aa8a74018640da3de8b3";
1920 };
1921
1922 meta = {
1923 description = "A very fast JSON encoder/decoder for Python";
1924 homepage = "http://ag-projects.com/";
1925 license = licenses.lgpl2;
1926 platforms = platforms.all;
1927 };
1928 };
1929
1930 clf = buildPythonPackage rec {
1931 name = "clf-${version}";
1932 version = "0.5.2";
1933
1934 src = pkgs.fetchurl {
1935 url = "https://pypi.python.org/packages/source/c/clf/${name}.tar.gz";
1936 sha256 = "04lqd2i4fjs606b0q075yi9xksk567m0sfph6v6j80za0hvzqyy5";
1937 };
1938
1939 # Error when running tests:
1940 # No local packages or download links found for requests
1941 doCheck = false;
1942
1943 meta = {
1944 homepage = https://github.com/ncrocfer/clf;
1945 description = "Command line tool to search snippets on Commandlinefu.com";
1946 license = licenses.mit;
1947 maintainers = with maintainers; [ koral ];
1948 };
1949 };
1950
1951 click = buildPythonPackage rec {
1952 name = "click-5.1";
1953
1954 src = pkgs.fetchurl {
1955 url = "https://pypi.python.org/packages/source/c/click/${name}.tar.gz";
1956 sha256 = "0njsm0wn31l21bi118g5825ma5sa3rwn7v2x4wjd7yiiahkri337";
1957 };
1958
1959 meta = {
1960 homepage = http://click.pocoo.org/;
1961 description = "Create beautiful command line interfaces in Python";
1962 longDescription = ''
1963 A Python package for creating beautiful command line interfaces in a
1964 composable way, with as little code as necessary.
1965 '';
1966 license = licenses.bsd3;
1967 maintainers = with maintainers; [ nckx ];
1968 };
1969 };
1970
1971 clepy = buildPythonPackage rec {
1972 name = "clepy-0.3.20";
1973
1974 src = pkgs.fetchurl {
1975 url = "https://pypi.python.org/packages/source/c/clepy/${name}.tar.gz";
1976 sha256 = "16vibfxms5z4ld8gbkra6dkhqm2cc3jnn0fwp7mw70nlwxnmm51c";
1977 };
1978
1979 buildInputs = with self; [ self.mock self.nose self.decorator ];
1980
1981 meta = {
1982 homepage = http://code.google.com/p/clepy/;
1983 description = "Utilities created by the Cleveland Python users group";
1984 };
1985 };
1986
1987
1988 clientform = buildPythonPackage (rec {
1989 name = "clientform-0.2.10";
1990 disabled = isPy3k;
1991
1992 src = pkgs.fetchurl {
1993 url = "http://pypi.python.org/packages/source/C/ClientForm/ClientForm-0.2.10.tar.gz";
1994 sha256 = "0dydh3i1sx7rrj6d0gj375wkjpiivm7jjlsimw6hmwv4ck7yf1wm";
1995 };
1996
1997 meta = {
1998 homepage = http://wwwsearch.sourceforge.net/ClientForm/;
1999
2000 license = "bsd";
2001
2002 description = "Python module for handling HTML forms on the client side";
2003 };
2004 });
2005
2006
2007 cogapp = buildPythonPackage rec {
2008 version = "2.3";
2009 name = "cogapp-${version}";
2010
2011 src = pkgs.fetchurl {
2012 url = "https://pypi.python.org/packages/source/c/cogapp/${name}.tar.gz";
2013 sha256 = "0gzmzbsk54r1qa6wd0yg4zzdxvn2f19ciprr2acldxaknzrpllnn";
2014 };
2015
2016 # there are no tests
2017 doCheck = false;
2018
2019 meta = {
2020 description = "A code generator for executing Python snippets in source files";
2021 homepage = http://nedbatchelder.com/code/cog;
2022 license = licenses.mit;
2023 maintainers = with maintainers; [ lovek323 ];
2024 platforms = platforms.unix;
2025 };
2026 };
2027
2028
2029 colorama = buildPythonPackage rec {
2030 name = "colorama-${version}";
2031 version = "0.3.3";
2032
2033 src = pkgs.fetchurl {
2034 url = "https://pypi.python.org/packages/source/c/colorama/${name}.tar.gz";
2035 sha256 = "eb21f2ba718fbf357afdfdf6f641ab393901c7ca8d9f37edd0bee4806ffa269c";
2036 };
2037
2038 meta = {
2039 homepage = https://github.com/tartley/colorama;
2040 license = "bsd";
2041 description = "Cross-platform colored terminal text";
2042 };
2043 };
2044
2045
2046 coilmq = buildPythonPackage (rec {
2047 name = "coilmq-0.6.1";
2048
2049 src = pkgs.fetchurl {
2050 url = "http://pypi.python.org/packages/source/C/CoilMQ/CoilMQ-0.6.1.tar.gz";
2051 md5 = "5f39727415b837abd02651eeb2721749";
2052 };
2053
2054 propagatedBuildInputs = with self; [ self.stompclient ];
2055
2056 preConfigure = ''
2057 sed -i '/distribute/d' setup.py
2058 '';
2059
2060 buildInputs = with self; [ self.coverage self.sqlalchemy ];
2061
2062 # ValueError: Could not parse auth file:
2063 # /tmp/nix-build-.../CoilMQ-0.6.1/coilmq/tests/resources/auth.ini
2064 doCheck = false;
2065
2066 meta = {
2067 description = "Simple, lightweight, and easily extensible STOMP message broker";
2068 homepage = http://code.google.com/p/coilmq/;
2069 license = licenses.asl20;
2070 };
2071 });
2072
2073
2074 colander = buildPythonPackage rec {
2075 name = "colander-1.0";
2076
2077 src = pkgs.fetchurl {
2078 url = "http://pypi.python.org/packages/source/c/colander/${name}.tar.gz";
2079 md5 = "058576123da7216288c079c9f47693f8";
2080 };
2081
2082 propagatedBuildInputs = with self; [ self.translationstring self.iso8601 ];
2083
2084 meta = {
2085 maintainers = with maintainers; [ garbas iElectric ];
2086 platforms = platforms.all;
2087 };
2088 };
2089
2090 # Backported version of the ConfigParser library of Python 3.3
2091 configparser = if isPy3k then null else buildPythonPackage rec {
2092 name = "configparser-${version}";
2093 version = "3.3.0r2";
2094
2095 # running install_egg_info
2096 # error: [Errno 9] Bad file descriptor: '<stdout>'
2097 disabled = isPyPy;
2098
2099 src = pkgs.fetchurl {
2100 url = "https://pypi.python.org/packages/source/c/configparser/${name}.tar.gz";
2101 sha256 = "6a2318590dfc4013fc5bf53c2bec14a8cb455a232295eb282a13f94786c4b0b2";
2102 };
2103
2104 meta = {
2105 maintainers = [ ];
2106 platforms = platforms.all;
2107 };
2108 };
2109
2110
2111 ColanderAlchemy = buildPythonPackage rec {
2112 name = "ColanderAlchemy-0.2.0";
2113
2114 src = pkgs.fetchurl {
2115 url = "https://pypi.python.org/packages/source/C/ColanderAlchemy/${name}.tar.gz";
2116 md5 = "b054837bd2753cbf15f7d5028cba421b";
2117 };
2118
2119 buildInputs = with self; [ unittest2 ];
2120 propagatedBuildInputs = with self; [ colander sqlalchemy9 ];
2121
2122 # string: argument name cannot be overridden via info kwarg.
2123 doCheck = false;
2124
2125 meta = {
2126 description = "Autogenerate Colander schemas based on SQLAlchemy models";
2127 homepage = https://github.com/stefanofontanelli/ColanderAlchemy;
2128 license = licenses.mit;
2129 };
2130 };
2131
2132
2133 configobj = buildPythonPackage (rec {
2134 name = "configobj-5.0.6";
2135
2136 src = pkgs.fetchurl {
2137 url = "http://pypi.python.org/packages/source/c/configobj/${name}.tar.gz";
2138 md5 = "e472a3a1c2a67bb0ec9b5d54c13a47d6";
2139 };
2140
2141 # error: invalid command 'test'
2142 doCheck = false;
2143
2144 propagatedBuildInputs = with self; [ six ];
2145
2146 meta = {
2147 description = "Config file reading, writing and validation";
2148 homepage = http://pypi.python.org/pypi/configobj;
2149 license = licenses.bsd3;
2150 maintainers = with maintainers; [ garbas ];
2151 };
2152 });
2153
2154
2155 configshell_fb = buildPythonPackage rec {
2156 version = "1.1.fb10";
2157 name = "configshell-fb-${version}";
2158
2159 src = pkgs.fetchurl {
2160 url = "https://github.com/agrover/configshell-fb/archive/v${version}.tar.gz";
2161 sha256 = "1dd87xvm98nk3jzybb041gjdahi2z9b53pwqhyxcfj4a91y82ndy";
2162 };
2163
2164 propagatedBuildInputs = with self; [
2165 pyparsing
2166 modules.readline
2167 urwid
2168 ];
2169
2170 meta = {
2171 description = "A Python library for building configuration shells";
2172 homepage = "https://github.com/agrover/configshell-fb";
2173 platforms = platforms.linux;
2174 };
2175 };
2176
2177
2178 construct = buildPythonPackage rec {
2179 name = "construct-2.5.2";
2180
2181 src = pkgs.fetchurl {
2182 url = "https://pypi.python.org/packages/source/c/construct/${name}.tar.gz";
2183 sha256 = "084h02p0m8lhmlywlwjdg0kd0hd6sz481c96qwcm5wddxrqn4nv6";
2184 };
2185
2186 propagatedBuildInputs = with self; [ six ];
2187
2188 meta = {
2189 description = "Powerful declarative parser (and builder) for binary data";
2190 homepage = http://construct.readthedocs.org/;
2191 license = licenses.mit;
2192 platforms = platforms.linux;
2193 maintainers = with maintainers; [ bjornfor ];
2194 };
2195 };
2196
2197
2198 contextlib2 = buildPythonPackage rec {
2199 name = "contextlib2-0.4.0";
2200
2201 src = pkgs.fetchurl rec {
2202 url = "https://pypi.python.org/packages/source/c/contextlib2/${name}.tar.gz";
2203 md5 = "ea687207db25f65552061db4a2c6727d";
2204 };
2205 };
2206
2207 cookies = buildPythonPackage rec {
2208 name = "cookies-2.2.1";
2209
2210 src = pkgs.fetchurl {
2211 url = "https://pypi.python.org/packages/source/c/cookies/${name}.tar.gz";
2212 sha256 = "13pfndz8vbk4p2a44cfbjsypjarkrall71pgc97glk5fiiw9idnn";
2213 };
2214
2215 doCheck = false;
2216
2217 meta = {
2218 description = "Friendlier RFC 6265-compliant cookie parser/renderer";
2219 homepage = https://github.com/sashahart/cookies;
2220 license = licenses.mit;
2221 };
2222 };
2223
2224 coverage = buildPythonPackage rec {
2225 name = "coverage-3.7.1";
2226
2227 src = pkgs.fetchurl {
2228 url = "http://pypi.python.org/packages/source/c/coverage/${name}.tar.gz";
2229 sha256 = "0knlbq79g2ww6xzsyknj9rirrgrgc983dpa2d9nkdf31mb2a3bni";
2230 };
2231
2232 meta = {
2233 description = "Code coverage measurement for python";
2234 homepage = http://nedbatchelder.com/code/coverage/;
2235 license = licenses.bsd3;
2236 };
2237 };
2238
2239 covCore = buildPythonPackage rec {
2240 name = "cov-core-1.15.0";
2241 src = pkgs.fetchurl {
2242 url = "http://pypi.python.org/packages/source/c/cov-core/${name}.tar.gz";
2243 md5 = "f519d4cb4c4e52856afb14af52919fe6";
2244 };
2245 meta = {
2246 description = "plugin core for use by pytest-cov, nose-cov and nose2-cov";
2247 };
2248 propagatedBuildInputs = with self; [ self.coverage ];
2249 };
2250
2251 crcmod = buildPythonPackage rec {
2252 name = "crcmod-1.7";
2253 src = pkgs.fetchurl {
2254 url = https://pypi.python.org/packages/source/c/crcmod/crcmod-1.7.tar.gz;
2255 sha256 = "07k0hgr42vw2j92cln3klxka81f33knd7459cn3d8aszvfh52w6w";
2256 };
2257 meta = {
2258 description = "Python module for generating objects that compute the Cyclic Redundancy Check (CRC)";
2259 homepage = http://crcmod.sourceforge.net/;
2260 license = licenses.mit;
2261 };
2262 };
2263
2264 cython = buildPythonPackage rec {
2265 name = "Cython-${version}";
2266 version = "0.22.1";
2267
2268 src = pkgs.fetchurl {
2269 url = "http://www.cython.org/release/${name}.tar.gz";
2270 sha256 = "7fff120e65e7b66edb4a42823f5642bad3bc1e5601bf882d66aee50248cf0682";
2271 };
2272
2273 setupPyBuildFlags = ["--build-base=$out"];
2274
2275 buildInputs = with self; [ pkgs.pkgconfig ];
2276
2277 meta = {
2278 description = "An optimising static compiler for both the Python programming language and the extended Cython programming language";
2279 platforms = platforms.all;
2280 homepage = http://cython.org;
2281 license = licenses.asl20;
2282 };
2283 };
2284
2285 cytoolz = buildPythonPackage rec {
2286 name = "cytoolz-${version}";
2287 version = "0.7.3";
2288
2289 src = pkgs.fetchurl{
2290 url = "https://pypi.python.org/packages/source/c/cytoolz/cytoolz-${version}.tar.gz";
2291 md5 = "e9f0441d9f340a23c60357f68f25d163";
2292 };
2293
2294 meta = {
2295 homepage = "http://github.com/pytoolz/cytoolz/";
2296 description = "Cython implementation of Toolz: High performance functional utilities";
2297 license = "licenses.bsd3";
2298 };
2299 };
2300
2301 cryptacular = buildPythonPackage rec {
2302 name = "cryptacular-1.4.1";
2303
2304 buildInputs = with self; [ coverage nose ];
2305 propagatedBuildInputs = with self; [ pbkdf2 modules.crypt ];
2306
2307 src = pkgs.fetchurl {
2308 url = "http://pypi.python.org/packages/source/c/cryptacular/${name}.tar.gz";
2309 md5 = "fe12232ac660185186dd8057d8ca7b0e";
2310 };
2311
2312 # TODO: tests fail: TypeError: object of type 'NoneType' has no len()
2313 doCheck = false;
2314
2315 meta = {
2316 maintainers = with maintainers; [ iElectric ];
2317 };
2318 };
2319
2320 cryptography = buildPythonPackage rec {
2321 name = "cryptography-1.0";
2322
2323 src = pkgs.fetchurl {
2324 url = "https://pypi.python.org/packages/source/c/cryptography/${name}.tar.gz";
2325 sha256 = "008hq9s4z7y17yjxh1aycvddas320hfbl9vj8gydg4fpfzz04711";
2326 };
2327
2328 buildInputs = [ pkgs.openssl self.pretend self.cryptography_vectors
2329 self.iso8601 self.pyasn1 self.pytest self.py ];
2330 propagatedBuildInputs = [ self.six self.idna self.ipaddress ]
2331 ++ optional (!isPyPy) self.cffi
2332 ++ optional (pythonOlder "3.4") self.enum34;
2333 };
2334
2335 idna = buildPythonPackage rec {
2336 name = "idna-2.0";
2337
2338 src = pkgs.fetchurl {
2339 url = "https://pypi.python.org/packages/source/i/idna/${name}.tar.gz";
2340 sha256 = "0frxgmgi234lr9hylg62j69j4ik5zhg0wz05w5dhyacbjfnrl68n";
2341 };
2342
2343 meta = {
2344 homepage = "http://github.com/kjd/idna/";
2345 description = "Internationalized Domain Names in Applications (IDNA)";
2346 license = "licenses.bsd3";
2347 };
2348 };
2349
2350 cryptography_vectors = buildPythonPackage rec {
2351 name = "cryptography_vectors-1.0";
2352
2353 src = pkgs.fetchurl {
2354 url = "https://pypi.python.org/packages/source/c/cryptography-vectors/${name}.tar.gz";
2355 sha256 = "0d02x93vk0b1fla914bij71pfma0p7sprlvrxq1bb6dxnwc7h9z7";
2356 };
2357 };
2358
2359 pkginfo = buildPythonPackage rec {
2360 version = "1.2.1";
2361 name = "pkginfo-${version}";
2362
2363 src = pkgs.fetchurl {
2364 url = "https://pypi.python.org/packages/source/p/pkginfo/${name}.tar.gz";
2365 sha256 = "0g0g6avplfqw1adzqybbrh1a2z0kfjl8qn3annkrc7w3ibz6sgxd";
2366 };
2367
2368 doCheck = false; # I don't know why, but with doCheck = true it fails.
2369
2370 meta = {
2371 homepage = https://pypi.python.org/pypi/pkginfo;
2372 license = licenses.mit;
2373 description = "Query metadatdata from sdists / bdists / installed packages.";
2374
2375 longDescription = ''
2376 This package provides an API for querying the distutils metadata
2377 written in the PKG-INFO file inside a source distriubtion (an sdist)
2378 or a binary distribution (e.g., created by running bdist_egg). It can
2379 also query the EGG-INFO directory of an installed distribution, and the
2380 *.egg-info stored in a “development checkout” (e.g, created by running
2381 setup.py develop).
2382 '';
2383 };
2384 };
2385
2386 pretend = buildPythonPackage rec {
2387 name = "pretend-1.0.8";
2388
2389 src = pkgs.fetchurl {
2390 url = "https://pypi.python.org/packages/source/p/pretend/pretend-1.0.8.tar.gz";
2391 sha256 = "0r5r7ygz9m6d2bklflbl84cqhjkc2q12xgis8268ygjh30g2q3wk";
2392 };
2393
2394 meta = {
2395 homepage = https://github.com/alex/pretend;
2396 license = licenses.bsd3;
2397 };
2398 };
2399
2400
2401 detox = self.buildPythonPackage rec {
2402 name = "detox-0.9.3";
2403
2404 propagatedBuildInputs = with self; [ tox py eventlet ];
2405
2406 src = pkgs.fetchurl {
2407 url = "https://pypi.python.org/packages/source/d/detox/detox-0.9.3.tar.gz";
2408 md5 = "b52588ec61cd4c2d33e419677a5eac8c";
2409 };
2410
2411 meta = {
2412 description = "What is detox?";
2413 homepage = http://bitbucket.org/hpk42/detox;
2414 };
2415 };
2416
2417
2418 pbkdf2 = buildPythonPackage rec {
2419 name = "pbkdf2-1.3";
2420
2421 src = pkgs.fetchurl {
2422 url = "http://pypi.python.org/packages/source/p/pbkdf2/${name}.tar.gz";
2423 md5 = "40cda566f61420490206597243dd869f";
2424 };
2425
2426 # ImportError: No module named test
2427 doCheck = false;
2428
2429 meta = {
2430 maintainers = with maintainers; [ iElectric ];
2431 };
2432 };
2433
2434 bcrypt = buildPythonPackage rec {
2435 name = "bcrypt-1.0.2";
2436
2437 src = pkgs.fetchurl {
2438 url = "http://pypi.python.org/packages/source/b/bcrypt/${name}.tar.gz";
2439 md5 = "c5df008669d17dd6eeb5e2042d5e136f";
2440 };
2441
2442 buildInputs = with self; [ pycparser mock pytest py ] ++ optionals (!isPyPy) [ cffi ];
2443
2444 meta = {
2445 maintainers = with maintainers; [ iElectric ];
2446 };
2447 };
2448
2449 cffi_0_8 = buildPythonPackage rec {
2450 name = "cffi-0.8.6";
2451
2452 src = pkgs.fetchurl {
2453 url = "http://pypi.python.org/packages/source/c/cffi/${name}.tar.gz";
2454 sha256 = "0406j3sgndmx88idv5zxkkrwfqxmjl18pj8gf47nsg4ymzixjci5";
2455 };
2456
2457 propagatedBuildInputs = with self; [ pkgs.libffi pycparser ];
2458
2459 meta = {
2460 maintainers = with maintainers; [ iElectric ];
2461 };
2462 };
2463
2464 cffi = buildPythonPackage rec {
2465 name = "cffi-1.1.2";
2466
2467 src = pkgs.fetchurl {
2468 url = "https://pypi.python.org/packages/source/c/cffi/${name}.tar.gz";
2469 md5 = "ca6e6c45b45caa87aee9adc7c796eaea";
2470 };
2471
2472 propagatedBuildInputs = with self; [ pkgs.libffi pycparser ];
2473
2474 meta = {
2475 maintainers = with maintainers; [ iElectric ];
2476 };
2477 };
2478
2479 pycollada = buildPythonPackage rec {
2480 name = "pycollada-0.4.1";
2481
2482 src = pkgs.fetchurl {
2483 url = "http://pypi.python.org/packages/source/p/pycollada/${name}.tar.gz";
2484 sha256 = "0i50lh98550pwr95zgzrgiqzsspm09wl52xlv83y5nrsz4mblylv";
2485 };
2486
2487 # pycollada-0.4 needs python-dateutil==1.5
2488 buildInputs = with self; [ dateutil_1_5 numpy ];
2489
2490 # Some tests fail because they refer to test data files that don't exist
2491 # (upstream packaging issue)
2492 doCheck = false;
2493
2494 meta = {
2495 description = "Python library for reading and writing collada documents";
2496 homepage = http://pycollada.github.io/;
2497 license = "BSD"; # they don't specify which BSD variant
2498 platforms = with platforms; linux ++ darwin;
2499 maintainers = with maintainers; [ bjornfor ];
2500 };
2501 };
2502
2503 pycparser = buildPythonPackage rec {
2504 name = "pycparser-2.10";
2505
2506 src = pkgs.fetchurl {
2507 url = "http://pypi.python.org/packages/source/p/pycparser/${name}.tar.gz";
2508 md5 = "d87aed98c8a9f386aa56d365fe4d515f";
2509 };
2510
2511 # ImportError: No module named test
2512 doCheck = false;
2513
2514 meta = {
2515 maintainers = with maintainers; [ iElectric ];
2516 };
2517 };
2518
2519 pytest = buildPythonPackage rec {
2520 name = "pytest-2.7.2";
2521
2522 src = pkgs.fetchurl {
2523 url = "http://pypi.python.org/packages/source/p/pytest/${name}.tar.gz";
2524 sha256 = "b30457f735420d0000d10a44bbd478cf03f8bf20e25bd77248f9bab40f4fd6a4";
2525 };
2526
2527 preCheck = ''
2528 # don't test bash builtins
2529 rm testing/test_argcomplete.py
2530 '';
2531
2532 propagatedBuildInputs = with self; [ py ]
2533 ++ (optional isPy26 argparse)
2534 ++ stdenv.lib.optional
2535 pkgs.config.pythonPackages.pytest.selenium or false
2536 self.selenium;
2537
2538 meta = {
2539 maintainers = with maintainers; [ iElectric lovek323 madjar ];
2540 platforms = platforms.unix;
2541 };
2542 };
2543
2544 pytestcache = buildPythonPackage rec {
2545 name = "pytest-cache-1.0";
2546 src = pkgs.fetchurl {
2547 url = "https://pypi.python.org/packages/source/p/pytest-cache/pytest-cache-1.0.tar.gz";
2548 sha256 = "1a873fihw4rhshc722j4h6j7g3nj7xpgsna9hhg3zn6ksknnhx5y";
2549 };
2550
2551 propagatedBuildInputs = with self ; [ pytest execnet ];
2552
2553 meta = {
2554 license = licenses.mit;
2555 website = "https://pypi.python.org/pypi/pytest-cache/";
2556 description = "pytest plugin with mechanisms for caching across test runs";
2557 };
2558 };
2559
2560 pytestflakes = buildPythonPackage rec {
2561 name = "pytset-flakes-0.2";
2562 src = pkgs.fetchurl {
2563 url = "https://pypi.python.org/packages/source/p/pytest-flakes/pytest-flakes-0.2.zip";
2564 sha256 = "0n4mc2kaqasxmj8jid7jlss7nwgz4qgglcwdyrqvh08dilnp354i";
2565 };
2566
2567 propagatedBuildInputs = with self ; [ pytest pyflakes pytestcache ];
2568
2569 meta = {
2570 license = licenses.mit;
2571 website = "https://pypi.python.org/pypi/pytest-flakes";
2572 description = "pytest plugin to check source code with pyflakes";
2573 };
2574 };
2575
2576 pytestpep8 = buildPythonPackage rec {
2577 name = "pytest-pep8";
2578 src = pkgs.fetchurl {
2579 url = "http://pypi.python.org/packages/source/p/pytest-pep8/pytest-pep8-1.0.6.tar.gz";
2580 sha256 = "06032agzhw1i9d9qlhfblnl3dw5hcyxhagn7b120zhrszbjzfbh3";
2581 };
2582
2583 propagatedBuildInputs = with self ; [ pytest pytestcache pep8 ];
2584
2585 meta = {
2586 license = licenses.mit;
2587 website = "https://pypi.python.org/pypi/pytest-pep8";
2588 description = "pytest plugin to check PEP8 requirements";
2589 };
2590 };
2591
2592 pytestpep257 = buildPythonPackage rec {
2593 name = "pytest-pep257-${version}";
2594 version = "0.0.1";
2595
2596 src = pkgs.fetchurl {
2597 url = "https://pypi.python.org/packages/source/p/pytest-pep257/${name}.tar.gz";
2598 sha256 = "003vdkxpx37n0kjqpwgj3314hwk2jfz3nz58db7xh68bf8xy75lk";
2599 };
2600
2601 propagatedBuildInputs = with self ; [ pytest pep257 ];
2602
2603 meta = {
2604 homepage = https://github.com/anderslime/pytest-pep257;
2605 description = "py.test plugin for PEP257";
2606 license = licenses.mit;
2607 };
2608 };
2609
2610 pytestquickcheck = buildPythonPackage rec {
2611 name = "pytest-quickcheck-0.8.2";
2612
2613 src = pkgs.fetchurl {
2614 url = "https://pypi.python.org/packages/source/p/pytest-quickcheck/pytest-quickcheck-0.8.2.tar.gz";
2615 sha256 = "047w4zwdsnlzmsc5f3rapzbzd2frlvz9nnp8v4b48fjmqmxassh3";
2616 };
2617
2618 propagatedBuildInputs = with self ; [ pytest pytestflakes pytestpep8 tox ];
2619
2620 meta = {
2621 license = licenses.asl20;
2622 website = "https://pypi.python.org/pypi/pytest-quickcheck";
2623 description = "pytest plugin to generate random data inspired by QuickCheck";
2624 };
2625 };
2626
2627 pytestcov = buildPythonPackage (rec {
2628 name = "pytest-cov-1.8.1";
2629
2630 src = pkgs.fetchurl {
2631 url = "https://pypi.python.org/packages/source/p/pytest-cov/${name}.tar.gz";
2632 md5 = "76c778afa2494088270348be42d759fc";
2633 };
2634
2635 buildInputs = with self; [ covCore pytest ];
2636
2637 meta = {
2638 description = "py.test plugin for coverage reporting with support for both centralised and distributed testing, including subprocesses and multiprocessing";
2639
2640 homepage = https://github.com/schlamar/pytest-cov;
2641
2642 license = licenses.mit;
2643 };
2644 });
2645
2646 pytest_xdist = buildPythonPackage rec {
2647 name = "pytest-xdist-1.8";
2648
2649 src = pkgs.fetchurl {
2650 url = "https://pypi.python.org/packages/source/p/pytest-xdist/pytest-xdist-1.8.zip";
2651 md5 = "9c0b8efe9d43b460f8cf049fa46ce14d";
2652 };
2653
2654 buildInputs = with self; [ pytest ];
2655 propagatedBuildInputs = with self; [ execnet ];
2656
2657 meta = {
2658 description = "py.test xdist plugin for distributed testing and loop-on-failing modes";
2659 homepage = http://bitbucket.org/hpk42/pytest-xdist;
2660 };
2661 };
2662
2663 cssselect = buildPythonPackage rec {
2664 name = "cssselect-0.7.1";
2665 src = pkgs.fetchurl {
2666 url = "http://pypi.python.org/packages/source/c/cssselect/cssselect-0.7.1.tar.gz";
2667 md5 = "c6c5e9a2e7ca226ce03f6f67a771379c";
2668 };
2669 # AttributeError: 'module' object has no attribute 'tests'
2670 doCheck = false;
2671 };
2672
2673 cssutils = buildPythonPackage (rec {
2674 name = "cssutils-0.9.9";
2675
2676 src = pkgs.fetchurl {
2677 url = http://pypi.python.org/packages/source/c/cssutils/cssutils-0.9.9.zip;
2678 sha256 = "139yfm9yz9k33kgqw4khsljs10rkhhxyywbq9i82bh2r31cil1pp";
2679 };
2680
2681 buildInputs = with self; [ self.mock ];
2682
2683 # couple of failing tests
2684 doCheck = false;
2685
2686 meta = {
2687 description = "A Python package to parse and build CSS";
2688
2689 homepage = http://code.google.com/p/cssutils/;
2690
2691 license = licenses.lgpl3Plus;
2692 };
2693 });
2694
2695 darcsver = buildPythonPackage (rec {
2696 name = "darcsver-1.7.4";
2697 disabled = isPy3k;
2698
2699 src = pkgs.fetchurl {
2700 url = "http://pypi.python.org/packages/source/d/darcsver/${name}.tar.gz";
2701 sha256 = "1yb1c3jxqvy4r3qiwvnb86qi5plw6018h15r3yk5ji3nk54qdcb6";
2702 };
2703
2704 buildInputs = with self; [ self.mock ];
2705
2706 # Note: We don't actually need to provide Darcs as a build input.
2707 # Darcsver will DTRT when Darcs isn't available. See news.gmane.org
2708 # http://thread.gmane.org/gmane.comp.file-systems.tahoe.devel/3200 for a
2709 # discussion.
2710
2711 # AttributeError: 'module' object has no attribute 'test_darcsver'
2712 doCheck = false;
2713
2714 meta = {
2715 description = "Darcsver, generate a version number from Darcs history";
2716
2717 homepage = http://pypi.python.org/pypi/darcsver;
2718
2719 license = "BSD-style";
2720 };
2721 });
2722
2723 datashape = buildPythonPackage rec {
2724 name = "datashape-${version}";
2725 version = "0.4.6";
2726
2727 src = pkgs.fetchurl {
2728 url = "https://pypi.python.org/packages/source/D/DataShape/${name}.tar.gz";
2729 sha256 = "0caa86a4347f1b0c45f3890d78d0b89662189c7dd6df3a8e5ff3532ae8bc434f";
2730 };
2731
2732 propagatedBuildInputs = with self; [ numpy multipledispatch dateutil ];
2733
2734 meta = {
2735 homepage = https://github.com/ContinuumIO/datashape;
2736 description = "A data description language";
2737 license = licenses.bsd2;
2738 };
2739 };
2740
2741 dateutil = buildPythonPackage (rec {
2742 name = "dateutil-2.2";
2743
2744 src = pkgs.fetchurl {
2745 url = "http://pypi.python.org/packages/source/p/python-dateutil/python-${name}.tar.gz";
2746 sha256 = "0s74ad6r789810s10dxgvaf48ni6adac2icrdad34zxygqq6bj7f";
2747 };
2748
2749 propagatedBuildInputs = with self; [ self.six ];
2750
2751 meta = {
2752 description = "Powerful extensions to the standard datetime module";
2753 homepage = http://pypi.python.org/pypi/python-dateutil;
2754 license = "BSD-style";
2755 };
2756 });
2757
2758 # Buildbot 0.8.7p1 needs dateutil==1.5
2759 dateutil_1_5 = buildPythonPackage (rec {
2760 name = "dateutil-1.5";
2761
2762 src = pkgs.fetchurl {
2763 url = "http://pypi.python.org/packages/source/p/python-dateutil/python-${name}.tar.gz";
2764 sha256 = "02dhw57jf5kjcp7ng1if7vdrbnlpb9yjmz7wygwwvf3gni4766bg";
2765 };
2766
2767 propagatedBuildInputs = with self; [ self.six ];
2768
2769 meta = {
2770 description = "Powerful extensions to the standard datetime module";
2771 homepage = http://pypi.python.org/pypi/python-dateutil;
2772 license = "BSD-style";
2773 };
2774 });
2775
2776 # flexget requires 2.1
2777 dateutil_2_1 = buildPythonPackage (rec {
2778 name = "dateutil-2.1";
2779
2780 src = pkgs.fetchurl {
2781 url = "http://pypi.python.org/packages/source/p/python-dateutil/python-${name}.tar.gz";
2782 sha256 = "1vlx0lpsxjxz64pz87csx800cwfqznjyr2y7nk3vhmzhkwzyqi2c";
2783 };
2784
2785 propagatedBuildInputs = with self; [ self.six ];
2786
2787 buildInputs = [ pkgs.glibcLocales ];
2788
2789 preBuild = ''
2790 export LC_ALL="en_US.UTF-8"
2791 '';
2792
2793 meta = {
2794 description = "Powerful extensions to the standard datetime module";
2795 homepage = http://pypi.python.org/pypi/python-dateutil;
2796 license = "BSD-style";
2797 };
2798 });
2799
2800 ddar = buildPythonPackage {
2801 name = "ddar-1.0";
2802
2803 src = pkgs.fetchurl {
2804 url = "https://github.com/basak/ddar/archive/v1.0.tar.gz";
2805 sha256 = "08lv7hrbhcv6hbl01sx8fgx3l8s2nn8rvcicdidafwm87bvi2nmr";
2806 };
2807
2808 preBuild = ''
2809 make -f Makefile.prep synctus/ddar_pb2.py
2810 '';
2811
2812 propagatedBuildInputs = with self; [ protobuf modules.sqlite3 ];
2813
2814 meta = {
2815 description = "Unix de-duplicating archiver";
2816 license = licenses.gpl3;
2817 homepage = https://github.com/basak/ddar;
2818 };
2819 };
2820
2821 decorator = buildPythonPackage rec {
2822 name = "decorator-${version}";
2823 version = "3.4.2";
2824
2825 src = pkgs.fetchurl {
2826 url = "http://pypi.python.org/packages/source/d/decorator/${name}.tar.gz";
2827 sha256 = "7320002ce61dea6aa24adc945d9d7831b3669553158905cdd12f5d0027b54b44";
2828 };
2829
2830 meta = {
2831 homepage = http://pypi.python.org/pypi/decorator;
2832 description = "Better living through Python with decorators";
2833 license = licenses.mit;
2834 };
2835 };
2836
2837 deform = buildPythonPackage rec {
2838 name = "deform-2.0a2";
2839
2840 src = pkgs.fetchurl {
2841 url = "http://pypi.python.org/packages/source/d/deform/${name}.tar.gz";
2842 md5 = "7a90d41f7fbc18002ce74f39bd90a5e4";
2843 };
2844
2845 buildInputs = with self; [] ++ optional isPy26 unittest2;
2846
2847 propagatedBuildInputs =
2848 [ self.beautifulsoup4
2849 self.peppercorn
2850 self.colander
2851 self.translationstring
2852 self.chameleon
2853 self.zope_deprecation
2854 self.coverage
2855 self.nose
2856 ];
2857
2858 meta = {
2859 maintainers = with maintainers; [ garbas iElectric ];
2860 platforms = platforms.all;
2861 };
2862 };
2863
2864 deform2 = buildPythonPackage rec {
2865 name = "deform-2.0a2";
2866
2867 src = pkgs.fetchurl {
2868 url = "http://pypi.python.org/packages/source/d/deform/${name}.tar.gz";
2869 sha256 = "1gfaf1d8zp0mp4h229srlffxdp86w1nni9g4aqsshxysr23x591z";
2870 };
2871
2872 buildInputs = with self; [] ++ optional isPy26 unittest2;
2873
2874 propagatedBuildInputs =
2875 [ self.beautifulsoup4
2876 self.peppercorn
2877 self.colander
2878 self.translationstring
2879 self.chameleon
2880 self.zope_deprecation
2881 self.coverage
2882 self.nose
2883 ];
2884
2885 meta = {
2886 maintainers = with maintainers; [ garbas iElectric ];
2887 platforms = platforms.all;
2888 };
2889 };
2890
2891
2892 deform_bootstrap = buildPythonPackage rec {
2893 name = "deform_bootstrap-0.2.9";
2894
2895 src = pkgs.fetchurl {
2896 url = "http://pypi.python.org/packages/source/d/deform_bootstrap/${name}.tar.gz";
2897 sha256 = "1hgq3vqsfqdmlyahnlc40w13viawhpzqf4jzigsggdb41x545fda";
2898 };
2899
2900 propagatedBuildInputs = with self; [ deform ];
2901
2902 meta = {
2903 maintainers = with maintainers; [ iElectric ];
2904 platforms = platforms.all;
2905 };
2906 };
2907
2908
2909 demjson = buildPythonPackage rec {
2910 name = "demjson-1.6";
2911
2912 src = pkgs.fetchurl {
2913 url = "https://pypi.python.org/packages/source/d/demjson/${name}.tar.gz";
2914 sha256 = "0abf7wqqq7rk1sycy47ayn5p93yy7gjq50cb2z69wmik1qqrr60x";
2915 };
2916
2917 doCheck = false; # there are no tests
2918
2919 preFixup = ''
2920 mkdir -p "$out/bin"
2921 cp jsonlint "$out/bin/"
2922 '';
2923
2924 meta = {
2925 description = "Encoder/decoder and lint/validator for JSON (JavaScript Object Notation)";
2926 homepage = http://deron.meranda.us/python/demjson/;
2927 license = licenses.lgpl3Plus;
2928 maintainers = with maintainers; [ bjornfor ];
2929 platforms = platforms.all;
2930 };
2931 };
2932
2933 derpconf = self.buildPythonPackage rec {
2934 name = "derpconf-0.4.9";
2935
2936 propagatedBuildInputs = with self; [ six ];
2937
2938 src = pkgs.fetchurl {
2939 url = "https://pypi.python.org/packages/source/d/derpconf/${name}.tar.gz";
2940 md5 = "a164807d7bf0c4adf1de781305f29b82";
2941 };
2942
2943 meta = {
2944 description = "derpconf abstracts loading configuration files for your app";
2945 homepage = https://github.com/globocom/derpconf;
2946 license = licenses.mit;
2947 };
2948 };
2949
2950 discogs_client = buildPythonPackage rec {
2951 name = "discogs-client-2.0.2";
2952
2953 src = pkgs.fetchurl {
2954 url = "https://pypi.python.org/packages/source/d/discogs-client/${name}.tar.gz";
2955 md5 = "2cc57e1d134aa93404e779b9311676fa";
2956 };
2957
2958 propagatedBuildInputs = with self; [ oauth2 requests ];
2959
2960 meta = {
2961 description = "Official Python API client for Discogs";
2962 license = licenses.bsd2;
2963 homepage = "https://github.com/discogs/discogs_client";
2964 };
2965 };
2966
2967 dns = buildPythonPackage rec {
2968 name = "dnspython-${version}";
2969 version = "1.12.0";
2970
2971 src = pkgs.fetchurl {
2972 url = "http://www.dnspython.org/kits/1.12.0/dnspython-1.12.0.tar.gz";
2973 sha256 = "0kvjlkp96qzh3j31szpjlzqbp02brixh4j4clnpw80b0hspq5yq3";
2974 };
2975 };
2976
2977 dnspython3 = buildPythonPackage rec {
2978 name = "dnspython3-${version}";
2979 version = "1.12.0";
2980
2981 disabled = (!isPy3k);
2982
2983 src = pkgs.fetchurl {
2984 url = "https://pypi.python.org/packages/source/d/dnspython3/${name}.zip";
2985 sha256 = "138wxj702vx6zni9g2y8dbgbpin95v6hk23rh2kwfr3q4130jqz9";
2986 };
2987
2988 meta = {
2989 description = "A DNS toolkit for Python 3.x";
2990 homepage = http://www.dnspython.org;
2991 # BSD-like, check http://www.dnspython.org/LICENSE for details
2992 license = licenses.free;
2993 };
2994 };
2995
2996 docker = buildPythonPackage rec {
2997 name = "docker-py-1.3.1";
2998
2999 src = pkgs.fetchurl {
3000 url = "https://pypi.python.org/packages/source/d/docker-py/${name}.tar.gz";
3001 md5 = "07a5f41fd3f8cc72d05deed628700e99";
3002 };
3003
3004 propagatedBuildInputs = with self; [ six requests websocket_client ];
3005
3006 # Version conflict
3007 doCheck = false;
3008
3009 meta = {
3010 description = "An API client for docker written in Python";
3011 homepage = https://github.com/docker/docker-py;
3012 license = licenses.asl20;
3013 };
3014 };
3015
3016 dockerpty = buildPythonPackage rec {
3017 name = "dockerpty-0.3.4";
3018
3019 src = pkgs.fetchurl {
3020 url = "https://pypi.python.org/packages/source/d/dockerpty/${name}.tar.gz";
3021 md5 = "92fb66d28aa19bf5268e7e3935670e5d";
3022 };
3023
3024 propagatedBuildInputs = with self; [ six ];
3025
3026 meta = {
3027 description = "Functionality needed to operate the pseudo-tty (PTY) allocated to a docker container";
3028 homepage = https://github.com/d11wtq/dockerpty;
3029 license = licenses.asl20;
3030 };
3031 };
3032
3033 docker_registry_core = buildPythonPackage rec {
3034 name = "docker-registry-core-2.0.3";
3035 disabled = isPy3k;
3036
3037 src = pkgs.fetchurl {
3038 url = "https://pypi.python.org/packages/source/d/docker-registry-core/${name}.tar.gz";
3039 md5 = "610ef9395f2e9a2f91c68d13325fce7b";
3040 };
3041
3042 DEPS = "loose";
3043
3044 doCheck = false;
3045 propagatedBuildInputs = with self; [
3046 boto redis setuptools simplejson
3047 ];
3048
3049 patchPhase = "> requirements/main.txt";
3050
3051 meta = {
3052 description = "Docker registry core package";
3053 homepage = https://github.com/docker/docker-registry;
3054 license = licenses.asl20;
3055 };
3056 };
3057
3058 docker_registry = buildPythonPackage rec {
3059 name = "docker-registry-0.9.1";
3060 disabled = isPy3k;
3061
3062 src = pkgs.fetchurl {
3063 url = "https://pypi.python.org/packages/source/d/docker-registry/${name}.tar.gz";
3064 sha256 = "1svm1h59sg4bwj5cy10m016gj0xpiin15nrz5z66h47sbkndvlw3";
3065 };
3066
3067 DEPS = "loose";
3068
3069 doCheck = false; # requires redis server
3070 propagatedBuildInputs = with self; [
3071 setuptools docker_registry_core blinker flask gevent gunicorn pyyaml
3072 requests2 rsa sqlalchemy9 setuptools backports_lzma pyasn1 m2crypto
3073 ];
3074
3075 patchPhase = "> requirements/main.txt";
3076
3077 # Default config uses needed env variables
3078 postInstall = ''
3079 ln -s $out/lib/python2.7/site-packages/config/config_sample.yml $out/lib/python2.7/site-packages/config/config.yml
3080 '';
3081
3082 meta = {
3083 description = "Docker registry core package";
3084 homepage = https://github.com/docker/docker-registry;
3085 license = licenses.asl20;
3086 };
3087 };
3088
3089 docopt = buildPythonPackage rec {
3090 name = "docopt-0.6.2";
3091
3092 src = pkgs.fetchurl {
3093 url = "https://pypi.python.org/packages/source/d/docopt/${name}.tar.gz";
3094 md5 = "4bc74561b37fad5d3e7d037f82a4c3b1";
3095 };
3096
3097 meta = {
3098 description = "Pythonic argument parser, that will make you smile";
3099 homepage = http://docopt.org/;
3100 license = licenses.mit;
3101 };
3102 };
3103
3104 dogpile_cache = buildPythonPackage rec {
3105 name = "dogpile.cache-0.5.4";
3106
3107 propagatedBuildInputs = with self; [ dogpile_core ];
3108
3109 src = pkgs.fetchurl {
3110 url = "https://pypi.python.org/packages/source/d/dogpile.cache/dogpile.cache-0.5.4.tar.gz";
3111 md5 = "513b77ba1bd0c31bb15dd9dd0d8471af";
3112 };
3113
3114 doCheck = false;
3115
3116 meta = {
3117 description = "A caching front-end based on the Dogpile lock";
3118 homepage = http://bitbucket.org/zzzeek/dogpile.cache;
3119 license = licenses.bsd3;
3120 };
3121 };
3122
3123 dogpile_core = buildPythonPackage rec {
3124 name = "dogpile.core-0.4.1";
3125
3126 src = pkgs.fetchurl {
3127 url = "https://pypi.python.org/packages/source/d/dogpile.core/dogpile.core-0.4.1.tar.gz";
3128 md5 = "01cb19f52bba3e95c9b560f39341f045";
3129 };
3130
3131 doCheck = false;
3132
3133 meta = {
3134 description = "A 'dogpile' lock, typically used as a component of a larger caching solution";
3135 homepage = http://bitbucket.org/zzzeek/dogpile.core;
3136 license = licenses.bsd3;
3137 };
3138 };
3139
3140 dotfiles = buildPythonPackage rec {
3141 name = "dotfiles-0.6.3";
3142
3143 src = pkgs.fetchurl {
3144 url = "https://pypi.python.org/packages/source/d/dotfiles/${name}.tar.gz";
3145 md5 = "95a0792eb92a8fc0db8a7e59389470fe";
3146 };
3147
3148 doCheck = true;
3149
3150 meta = {
3151 description = "Easily manage your dotfiles";
3152 homepage = https://github.com/jbernard/dotfiles;
3153 license = licenses.isc;
3154 };
3155 };
3156
3157 dpkt = buildPythonPackage rec {
3158 name = "dpkt-1.8";
3159 disabled = isPy3k;
3160
3161 src = pkgs.fetchurl {
3162 url = "https://dpkt.googlecode.com/files/${name}.tar.gz";
3163 sha256 = "01q5prynymaqyfsfi2296xncicdpid2hs3yyasim8iigvkwy4vf5";
3164 };
3165
3166 # error: invalid command 'test'
3167 doCheck = false;
3168
3169 meta = {
3170 description = "Fast, simple packet creation / parsing, with definitions for the basic TCP/IP protocols";
3171 homepage = https://code.google.com/p/dpkt/;
3172 license = licenses.bsd3;
3173 maintainers = with maintainers; [ bjornfor ];
3174 platforms = platforms.all;
3175 };
3176 };
3177
3178 urllib3 = buildPythonPackage rec {
3179 name = "urllib3-1.8";
3180
3181 src = pkgs.fetchurl {
3182 url = "https://pypi.python.org/packages/source/u/urllib3/${name}.tar.gz";
3183 sha256 = "0pdigfxkq8mhzxxsn6isx8c4h9azqywr1k18yanwyxyj8cdzm28s";
3184 };
3185
3186 preConfigure = ''
3187 substituteInPlace test-requirements.txt --replace 'nose==1.3' 'nose'
3188 '';
3189
3190 checkPhase = ''
3191 nosetests --cover-min-percentage 70
3192 '';
3193
3194 buildInputs = with self; [ coverage tornado mock nose ];
3195
3196 meta = {
3197 description = "A Python library for Dropbox's HTTP-based Core and Datastore APIs";
3198 homepage = https://www.dropbox.com/developers/core/docs;
3199 license = licenses.mit;
3200 };
3201 };
3202
3203
3204 dropbox = buildPythonPackage rec {
3205 name = "dropbox-2.2.0";
3206 doCheck = false; # python 2.7.9 does verify ssl certificates
3207
3208 src = pkgs.fetchurl {
3209 url = "https://pypi.python.org/packages/source/d/dropbox/${name}.zip";
3210 sha256 = "069jrwb67brqh0sics8fgqdf2mv5y5jl9k5729x8vf80pq2c9p36";
3211 };
3212
3213 propagatedBuildInputs = with self; [ urllib3 mock setuptools ];
3214
3215 meta = {
3216 description = "A Python library for Dropbox's HTTP-based Core and Datastore APIs";
3217 homepage = https://www.dropbox.com/developers/core/docs;
3218 license = licenses.mit;
3219 };
3220 };
3221
3222
3223 elasticsearch = buildPythonPackage (rec {
3224 name = "elasticsearch-1.6.0";
3225
3226 src = pkgs.fetchurl {
3227 url = "https://pypi.python.org/packages/source/e/elasticsearch/${name}.tar.gz";
3228 sha256 = "1b0b5d1qp77r83r130kb2ikhd6am0d1389rdcllr1xsajrp5kj4h";
3229 };
3230
3231 # Check is disabled because running them destroy the content of the local cluster!
3232 # https://github.com/elasticsearch/elasticsearch-py/tree/master/test_elasticsearch
3233 doCheck = false;
3234
3235 meta = {
3236 description = "Official low-level client for Elasticsearch";
3237 homepage = https://github.com/elasticsearch/elasticsearch-py;
3238 license = licenses.asl20;
3239 };
3240 });
3241
3242
3243 elasticsearchdsl = buildPythonPackage (rec {
3244 name = "elasticsearch-dsl-0.0.4";
3245
3246 src = pkgs.fetchurl {
3247 url = "https://pypi.python.org/packages/source/e/elasticsearch-dsl/${name}.tar.gz";
3248 sha256 = "0bz8p10qk7rz10glq9dm2nq9m1x6czzlqk518107x39gx18lm1a2";
3249 };
3250
3251 buildInputs = with self; [ covCore dateutil elasticsearch mock pytest pytestcov unittest2 urllib3 pytz ];
3252
3253 # ImportError: No module named test_elasticsearch_dsl
3254 # Tests require a local instance of elasticsearch
3255 doCheck = false;
3256
3257 meta = {
3258 description = "Python client for Elasticsearch";
3259 homepage = https://github.com/elasticsearch/elasticsearch-dsl-py;
3260 license = licenses.asl20;
3261 };
3262 });
3263
3264
3265 evdev = buildPythonPackage rec {
3266 version = "0.4.7";
3267 name = "evdev-${version}";
3268 disabled = isPy34; # see http://bugs.python.org/issue21121
3269
3270 src = pkgs.fetchurl {
3271 url = "https://pypi.python.org/packages/source/e/evdev/${name}.tar.gz";
3272 sha256 = "1mz8cfncpxc1wbk2nj7apl0ssqc0vfndysxchq3wabd9vzx5p71k";
3273 };
3274
3275 buildInputs = with self; [ pkgs.linuxHeaders ];
3276
3277 patchPhase = "sed -e 's#/usr/include/linux/input.h#${pkgs.linuxHeaders}/include/linux/input.h#' -i setup.py";
3278
3279 doCheck = false;
3280
3281 meta = {
3282 description = "Provides bindings to the generic input event interface in Linux";
3283 homepage = http://pythonhosted.org/evdev;
3284 license = licenses.bsd3;
3285 maintainers = with maintainers; [ goibhniu ];
3286 platforms = platforms.linux;
3287 };
3288 };
3289
3290
3291 eventlib = buildPythonPackage rec {
3292 name = "python-eventlib-${version}";
3293 version = "0.2.1";
3294
3295 src = pkgs.fetchurl {
3296 url = "http://download.ag-projects.com/SipClient/${name}.tar.gz";
3297 sha256 = "25224794420f430946fe46932718b521a6264903fe8c0ed3563dfdb844c623e7";
3298 };
3299
3300 propagatedBuildInputs = with self; [ greenlet ];
3301
3302 meta = {
3303 description = "Eventlib bindings for python";
3304 homepage = "http://ag-projects.com/";
3305 license = licenses.lgpl2;
3306 platforms = platforms.all;
3307 };
3308 };
3309
3310
3311 eyeD3 = buildPythonPackage rec {
3312 version = "0.7.8";
3313 name = "eyeD3-${version}";
3314 disabled = isPyPy;
3315
3316 src = pkgs.fetchurl {
3317 url = "http://eyed3.nicfit.net/releases/${name}.tar.gz";
3318 sha256 = "1nv7nhfn1d0qm7rgkzksbccgqisng8klf97np0nwaqwd5dbmdf86";
3319 };
3320
3321 buildInputs = with self; [ paver ];
3322
3323 postInstall = ''
3324 for prog in "$out/bin/"*; do
3325 wrapProgram "$prog" --prefix PYTHONPATH : "$PYTHONPATH" \
3326 --prefix PATH : ${python}/bin
3327 done
3328 '';
3329
3330 meta = {
3331 description = "A Python module and command line program for processing ID3 tags";
3332 homepage = http://eyed3.nicfit.net/;
3333 license = licenses.gpl2;
3334 maintainers = with maintainers; [ lovek323 ];
3335 platforms = platforms.unix;
3336
3337 longDescription = ''
3338 eyeD3 is a Python module and command line program for processing ID3
3339 tags. Information about mp3 files (i.e bit rate, sample frequency, play
3340 time, etc.) is also provided. The formats supported are ID3 v1.0/v1.1
3341 and v2.3/v2.4.
3342 '';
3343 };
3344 };
3345
3346
3347 execnet = buildPythonPackage rec {
3348 name = "execnet-1.1";
3349
3350 src = pkgs.fetchurl {
3351 url = "https://pypi.python.org/packages/source/e/execnet/${name}.zip";
3352 md5 = "be885ccd9612966bb81839670d2da099";
3353 };
3354
3355 doCheck = !isPy3k; # failures..
3356
3357 meta = {
3358 description = "rapid multi-Python deployment";
3359 license = licenses.gpl2;
3360 };
3361 };
3362
3363 facebook-sdk = buildPythonPackage rec {
3364 name = "facebook-sdk-0.4.0";
3365
3366 disabled = isPy3k;
3367
3368 src = pkgs.fetchurl {
3369 url = "https://pypi.python.org/packages/source/f/facebook-sdk/facebook-sdk-0.4.0.tar.gz";
3370 md5 = "ac9f38e197e54b8ba9f3a61988cc33b7";
3371 };
3372
3373 meta = with pkgs.stdenv.lib; {
3374 description = "Client library that supports the Facebook Graph API and the official Facebook JavaScript SDK";
3375 homepage = https://github.com/pythonforfacebook/facebook-sdk;
3376 license = licenses.asl20 ;
3377 };
3378 };
3379
3380 faker = buildPythonPackage rec {
3381 name = "faker-0.0.4";
3382 disabled = isPy3k;
3383 src = pkgs.fetchurl {
3384 url = https://pypi.python.org/packages/source/F/Faker/Faker-0.0.4.tar.gz;
3385 sha256 = "09q5jna3j8di0gw5yjx0dvlndkrk2x9vvqzwyfsvg3nlp8h38js1";
3386 };
3387 buildInputs = with self; [ nose ];
3388 meta = {
3389 description = "A Python library for generating fake user data";
3390 homepage = http://pypi.python.org/pypi/Faker;
3391 license = licenses.mit;
3392 maintainers = with maintainers; [ lovek323 ];
3393 platforms = platforms.unix;
3394 };
3395 };
3396
3397 fake_factory = buildPythonPackage rec {
3398 name = "fake-factory-0.2";
3399 src = pkgs.fetchurl {
3400 url = https://pypi.python.org/packages/source/f/fake-factory/fake-factory-0.2.tar.gz;
3401 sha256 = "0qdmk8p4anrj9mf95dh9v7bkhv1pz69hvhlw380kj4iz7b44b6zn";
3402 };
3403 meta = {
3404 description = "A Python package that generates fake data for you";
3405 homepage = https://pypi.python.org/pypi/fake-factory;
3406 license = licenses.mit;
3407 maintainers = with maintainers; [ lovek323 ];
3408 platforms = platforms.unix;
3409 };
3410 };
3411
3412 fabric = buildPythonPackage rec {
3413 name = "fabric-${version}";
3414 version = "1.10.0";
3415 src = pkgs.fetchurl {
3416 url = "https://pypi.python.org/packages/source/F/Fabric/Fabric-${version}.tar.gz";
3417 sha256 = "0nikc05iz1fx2c9pvxrhrs819cpmg566azm99450yq2m8qmp1cpd";
3418 };
3419 disabled = isPy3k;
3420 doCheck = (!isPyPy); # https://github.com/fabric/fabric/issues/11891
3421 propagatedBuildInputs = with self; [ paramiko pycrypto ];
3422 buildInputs = with self; [ fudge nose ];
3423 };
3424
3425 fedora_cert = stdenv.mkDerivation (rec {
3426 name = "fedora-cert-0.5.9.2";
3427 meta.maintainers = with maintainers; [ mornfall ];
3428
3429 src = pkgs.fetchurl {
3430 url = "https://fedorahosted.org/releases/f/e/fedora-packager/fedora-packager-0.5.9.2.tar.bz2";
3431 sha256 = "105swvzshgn3g6bjwk67xd8pslnhpxwa63mdsw6cl4c7cjp2blx9";
3432 };
3433
3434 propagatedBuildInputs = with self; [ python python_fedora wrapPython ];
3435 postInstall = "mv $out/bin/fedpkg $out/bin/fedora-cert-fedpkg";
3436 doCheck = false;
3437
3438 postFixup = "wrapPythonPrograms";
3439 });
3440
3441 fedpkg = buildPythonPackage (rec {
3442 name = "fedpkg-1.14";
3443 meta.maintainers = with maintainers; [ mornfall ];
3444
3445 src = pkgs.fetchurl {
3446 url = "https://fedorahosted.org/releases/f/e/fedpkg/fedpkg-1.14.tar.bz2";
3447 sha256 = "0rj60525f2sv34g5llafnkmpvbwrfbmfajxjc14ldwzymp8clc02";
3448 };
3449
3450 patches = [ ../development/python-modules/fedpkg-buildfix.diff ];
3451 propagatedBuildInputs = with self; [ rpkg offtrac urlgrabber fedora_cert ];
3452 });
3453
3454 fudge = buildPythonPackage rec {
3455 name = "fudge-0.9.6";
3456 src = pkgs.fetchurl {
3457 url = "https://pypi.python.org/packages/source/f/fudge/${name}.tar.gz";
3458 sha256 = "185ia3vr3qk4f2s1a9hdxb8ci4qc0x0xidrad96pywg8j930qs9l";
3459 };
3460 buildInputs = with self; [ nose nosejs ];
3461 propagatedBuildInputs = with self; [ sphinx ];
3462 };
3463
3464
3465 funcparserlib = buildPythonPackage rec {
3466 name = "funcparserlib-0.3.6";
3467
3468 src = pkgs.fetchurl {
3469 url = "https://pypi.python.org/packages/source/f/funcparserlib/${name}.tar.gz";
3470 md5 = "3aba546bdad5d0826596910551ce37c0";
3471 };
3472
3473 meta = {
3474 description = "Recursive descent parsing library based on functional combinators";
3475 homepage = https://code.google.com/p/funcparserlib/;
3476 license = licenses.mit;
3477 platforms = platforms.linux;
3478 };
3479 };
3480
3481 singledispatch = buildPythonPackage rec {
3482 name = "singledispatch-3.4.0.3";
3483
3484 propagatedBuildInputs = with self; [ six ];
3485
3486 src = pkgs.fetchurl {
3487 url = "https://pypi.python.org/packages/source/s/singledispatch/${name}.tar.gz";
3488 md5 = "af2fc6a3d6cc5a02d0bf54d909785fcb";
3489 };
3490
3491 meta = {
3492 homepage = http://docs.python.org/3/library/functools.html;
3493 };
3494 };
3495
3496 gateone = buildPythonPackage rec {
3497 name = "gateone-1.2-0d57c3";
3498 disabled = ! isPy27;
3499 src = pkgs.fetchFromGitHub {
3500 rev = "11ed97c663b3e8c1b8eba473b5cf8362b10d57c3";
3501 owner= "liftoff";
3502 repo = "GateOne";
3503 sha256 ="0zp9vfs6sqbx4d0g45kkjinfmsl9zqwa6bhp3xd81wx3ph9yr1hq";
3504 };
3505 propagatedBuildInputs = with pkgs.pythonPackages; [tornado futures html5lib readline pkgs.openssl];
3506 meta = {
3507 homepage = https://liftoffsoftware.com/;
3508 description = "GateOne is a web-based terminal emulator and SSH client";
3509 maintainers = with maintainers; [ tomberek ];
3510
3511 };
3512 };
3513
3514 gcutil = buildPythonPackage rec {
3515 name = "gcutil-1.16.1";
3516 meta.maintainers = with maintainers; [ phreedom ];
3517
3518 src = pkgs.fetchurl {
3519 url = https://dl.google.com/dl/cloudsdk/release/artifacts/gcutil-1.16.1.tar.gz;
3520 sha256 = "00jaf7x1ji9y46fbkww2sg6r6almrqfsprydz3q2swr4jrnrsx9x";
3521 };
3522
3523 prePatch = ''
3524 substituteInPlace setup.py \
3525 --replace "httplib2==0.8" "httplib2" \
3526 --replace "iso8601==0.1.4" "iso8601"
3527 '';
3528
3529 propagatedBuildInputs = with self; [ gflags iso8601 ipaddr httplib2 google_apputils google_api_python_client ];
3530 };
3531
3532 gmpy = buildPythonPackage rec {
3533 name = "gmpy-1.17";
3534
3535 src = pkgs.fetchurl {
3536 url = "https://pypi.python.org/packages/source/g/gmpy/${name}.zip";
3537 md5 = "2bf419076b06e107167e219f60ac6d27";
3538 };
3539
3540 buildInputs = [
3541 pkgs.gcc
3542 pkgs.gmp
3543 ];
3544
3545 meta = {
3546 description = "GMP or MPIR interface to Python 2.4+ and 3.x";
3547 homepage = http://code.google.com/p/gmpy/;
3548 };
3549 };
3550
3551 gmpy2 = buildPythonPackage rec {
3552 name = "gmpy2-2.0.6";
3553
3554 src = pkgs.fetchurl {
3555 url = "https://pypi.python.org/packages/source/g/gmpy2/${name}.zip";
3556 md5 = "7365d880953ba54c2cdcf171c7e19b2b";
3557 };
3558
3559 buildInputs = [
3560 pkgs.gcc
3561 pkgs.gmp
3562 pkgs.mpfr
3563 pkgs.libmpc
3564 ];
3565
3566 meta = {
3567 description = "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x";
3568 homepage = http://code.google.com/p/gmpy/;
3569 license = licenses.gpl3Plus;
3570 };
3571 };
3572
3573 gmusicapi = with pkgs; pythonPackages.buildPythonPackage rec {
3574 name = "gmusicapi-4.0.0";
3575
3576 src = pkgs.fetchurl {
3577 url = "https://pypi.python.org/packages/source/g/gmusicapi/gmusicapi-4.0.0.tar.gz";
3578 md5 = "12ba66607531978b349c7035c9bab311";
3579 };
3580
3581 propagatedBuildInputs = with pythonPackages; [
3582 validictory
3583 decorator
3584 mutagen
3585 protobuf
3586 setuptools
3587 requests
3588 dateutil
3589 proboscis
3590 mock
3591 appdirs
3592 oauth2client
3593 ];
3594 doCheck = false;
3595
3596 meta = {
3597 description = "An unofficial API for Google Play Music";
3598 homepage = http://pypi.python.org/pypi/gmusicapi/;
3599 license = licenses.bsd3;
3600 };
3601 };
3602
3603 gnutls = buildPythonPackage rec {
3604 name = "python-gnutls";
3605 src = pkgs.fetchurl {
3606 url = "https://pypi.python.org/packages/source/p/python-gnutls/python-gnutls-2.0.1.tar.gz";
3607 sha256 = "d8fb368c6a4dd58bc6cd5e61d4a12d119c4506fd344a371b3429b3ac2623b9ac";
3608 };
3609
3610 propagatedBuildInputs = with self; [ pkgs.gnutls ];
3611 };
3612
3613 gitdb = buildPythonPackage rec {
3614 name = "gitdb-0.5.4";
3615 meta.maintainers = with maintainers; [ mornfall ];
3616 doCheck = false;
3617
3618 src = pkgs.fetchurl {
3619 url = "https://pypi.python.org/packages/source/g/gitdb/${name}.tar.gz";
3620 sha256 = "10rpmmlln59aq44cd5vkb77hslak5pa1rbmigg6ski5f1nn2spfy";
3621 };
3622
3623 propagatedBuildInputs = with self; [ smmap async ];
3624 };
3625
3626 GitPython = buildPythonPackage rec {
3627 name = "GitPython-0.3.2";
3628 meta.maintainers = with maintainers; [ mornfall ];
3629
3630 src = pkgs.fetchurl {
3631 url = "https://pypi.python.org/packages/source/G/GitPython/GitPython-0.3.2.RC1.tar.gz";
3632 sha256 = "1q4lc2ps12l517mmrxc8iq6gxyhj6d77bnk1p7mxf38d99l8crzx";
3633 };
3634
3635 buildInputs = with self; [ nose ];
3636 propagatedBuildInputs = with self; [ gitdb ];
3637 };
3638
3639 googlecl = buildPythonPackage rec {
3640 version = "0.9.14";
3641 name = "googlecl-${version}";
3642 disabled = isPy3k;
3643
3644 src = pkgs.fetchurl {
3645 url = "https://googlecl.googlecode.com/files/${name}.tar.gz";
3646 sha256 = "0nnf7xkr780wivr5xnchfcrahlzy9bi2dxcs1w1bh1014jql0iha";
3647 };
3648
3649 meta = {
3650 description = "Brings Google services to the command line";
3651 homepage = https://code.google.com/p/googlecl/;
3652 license = licenses.asl20;
3653 maintainers = with maintainers; [ lovek323 ];
3654 platforms = platforms.unix;
3655 };
3656
3657 propagatedBuildInputs = with self; [ gdata ];
3658 };
3659
3660 gtimelog = buildPythonPackage rec {
3661 name = "gtimelog-${version}";
3662 version = "0.9.1";
3663
3664 disabled = isPy26;
3665
3666 src = pkgs.fetchurl {
3667 url = "https://github.com/gtimelog/gtimelog/archive/${version}.tar.gz";
3668 sha256 = "0qk8fv8cszzqpdi3wl9vvkym1jil502ycn6sic4jrxckw5s9jsfj";
3669 };
3670
3671 buildInputs = [ pkgs.glibcLocales ];
3672
3673 preBuild = ''
3674 export LC_ALL="en_US.UTF-8"
3675 '';
3676
3677 # TODO: AppIndicator
3678 propagatedBuildInputs = with self; [ pkgs.gobjectIntrospection pygobject3 pkgs.makeWrapper pkgs.gtk3 ];
3679
3680 checkPhase = ''
3681 substituteInPlace runtests --replace "/usr/bin/env python" "${python}/bin/${python.executable}"
3682 ./runtests
3683 '';
3684
3685 preFixup = ''
3686 wrapProgram $out/bin/gtimelog \
3687 --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
3688 --prefix LD_LIBRARY_PATH ":" "${pkgs.gtk3}/lib" \
3689
3690 '';
3691
3692 meta = {
3693 description = "A small Gtk+ app for keeping track of your time. It's main goal is to be as unintrusive as possible";
3694 homepage = http://mg.pov.lt/gtimelog/;
3695 license = licenses.gpl2Plus;
3696 maintainers = with maintainers; [ ocharles ];
3697 platforms = platforms.unix;
3698 };
3699 };
3700
3701 humanize = buildPythonPackage rec {
3702 version = "0.5.1";
3703 name = "humanize-${version}";
3704
3705 src = pkgs.fetchurl {
3706 url = "https://pypi.python.org/packages/source/h/humanize/${name}.tar.gz";
3707 md5 = "e8473d9dc1b220911cac2edd53b1d973";
3708 };
3709
3710 buildInputs = with self; [ mock ];
3711
3712 doCheck = false;
3713
3714 meta = {
3715 description = "python humanize utilities";
3716 homepage = https://github.com/jmoiron/humanize;
3717 license = licenses.mit;
3718 maintainers = with maintainers; [ matthiasbeyer ];
3719 platforms = platforms.linux; # can only test on linux
3720 };
3721
3722 };
3723
3724 hovercraft = buildPythonPackage rec {
3725 disabled = ! isPy3k;
3726 name = "hovercraft-${version}";
3727 version = "2.0b1";
3728
3729 src = pkgs.fetchurl {
3730 url = "https://pypi.python.org/packages/source/h/hovercraft/${name}.zip";
3731 sha256 = "1l88xp563miwwkahil1sxn4kz9khjcx6z85j8d6mq8gjc8rxz3j6";
3732 };
3733
3734 propagatedBuildInputs = with self; [ docutils lxml manuel pygments svg-path watchdog ];
3735
3736 # one test assumes we have docutils 0.12
3737 # TODO: enable tests after upgrading docutils to 0.12
3738 doCheck = false;
3739
3740 meta = {
3741 description = "A tool to make impress.js presentations from reStructuredText";
3742 homepage = https://github.com/regebro/hovercraft;
3743 license = licenses.mit;
3744 maintainers = with maintainers; [ goibhniu ];
3745 };
3746 };
3747
3748 httpauth = buildPythonPackage rec {
3749 version = "0.2";
3750 name = "httpauth-${version}";
3751
3752 src = pkgs.fetchurl {
3753 url = "https://pypi.python.org/packages/source/h/httpauth/${name}.tar.gz";
3754 md5 = "78d1835a80955e68e98a3ca5ab7f7dbd";
3755 };
3756
3757 doCheck = false;
3758
3759 meta = {
3760 description = "WSGI HTTP Digest Authentication middleware";
3761 homepage = https://github.com/jonashaag/httpauth;
3762 license = licenses.bsd2;
3763 maintainers = with maintainers; [ matthiasbeyer ];
3764 };
3765 };
3766
3767 itsdangerous = buildPythonPackage rec {
3768 name = "itsdangerous-0.24";
3769
3770 src = pkgs.fetchurl {
3771 url = "https://pypi.python.org/packages/source/i/itsdangerous/${name}.tar.gz";
3772 sha256 = "06856q6x675ly542ig0plbqcyab6ksfzijlyf1hzhgg3sgwgrcyb";
3773 };
3774
3775 meta = {
3776 description = "helpers to pass trusted data to untrusted environments and back";
3777 homepage = "https://pypi.python.org/pypi/itsdangerous/";
3778 };
3779 };
3780
3781 iniparse = buildPythonPackage rec {
3782
3783 name = "iniparse-${version}";
3784 version = "0.4";
3785
3786 src = pkgs.fetchurl {
3787 url = "https://pypi.python.org/packages/source/i/iniparse/iniparse-${version}.tar.gz";
3788 sha256 = "0m60k46vr03x68jckachzsipav0bwhhnqb8715hm1cngs89fxhdb";
3789 };
3790
3791 meta = with stdenv.lib; {
3792 description = "Accessing and Modifying INI files";
3793 license = licenses.mit;
3794 maintainers = [ "abcz2.uprola@gmail.com" ];
3795 };
3796 };
3797
3798 i3-py = buildPythonPackage rec {
3799 version = "0.6.4";
3800 name = "i3-py-${version}";
3801
3802 src = pkgs.fetchurl {
3803 url = "https://pypi.python.org/packages/source/i/i3-py/i3-py-${version}.tar.gz";
3804 sha256 = "1sgl438jrb4cdyl7hbc3ymwsf7y3zy09g1gh7ynilxpllp37jc8y";
3805 };
3806
3807 # no tests in tarball
3808 doCheck = false;
3809
3810 meta = {
3811 description = "tools for i3 users and developers";
3812 homepage = "https://github.com/ziberna/i3-py";
3813 license = licenses.gpl3;
3814 platforms = platforms.linux;
3815 };
3816 };
3817
3818 jdcal = buildPythonPackage rec {
3819 version = "1.0";
3820 name = "jdcal-${version}";
3821
3822 src = pkgs.fetchFromGitHub {
3823 owner = "phn";
3824 repo = "jdcal";
3825 rev = "v${version}";
3826 sha256 = "0jjgrrylraqzk3n97hay4gj00ky6vlvkfaapfgqlbcxyq30j24vq";
3827 };
3828
3829 meta = {
3830 description = "A module containing functions for converting between Julian dates and calendar dates";
3831 homepage = "https://github.com/phn/jdcal";
3832 license = licenses.bsd2;
3833 maintainers = with maintainers; [ lihop ];
3834 platforms = platforms.all;
3835 };
3836 };
3837
3838 internetarchive = let ver = "0.8.3"; in buildPythonPackage rec {
3839 name = "internetarchive-${ver}";
3840
3841 src = pkgs.fetchurl {
3842 url = "https://github.com/jjjake/internetarchive/archive/v${ver}.tar.gz";
3843 sha256 = "0j3l13zvbx50j66l6pnf8y8y8m6gk1sc3yssvfd2scvmv4gnmm8n";
3844 };
3845
3846 # It is hardcoded to specific versions, I don't know why.
3847 preConfigure = ''
3848 sed 's/==/>=/' -i setup.py
3849 '';
3850
3851 propagatedBuildInputs = with self; [ six clint pyyaml docopt pytest
3852 requests2 jsonpatch args ];
3853
3854 meta = with stdenv.lib; {
3855 description = "A python wrapper for the various Internet Archive APIs";
3856 homepage = "https://github.com/jjjake/internetarchive";
3857 };
3858 };
3859
3860 jsonpatch = buildPythonPackage rec {
3861 name = "jsonpatch-1.11";
3862
3863 src = pkgs.fetchurl {
3864 url = "https://pypi.python.org/packages/source/j/jsonpatch/${name}.tar.gz";
3865 md5 = "9f2d0aa31f99cc97089a203c5bed3924";
3866 };
3867
3868 propagatedBuildInputs = with self; [ jsonpointer ];
3869
3870 meta = {
3871 description = "Library to apply JSON Patches according to RFC 6902";
3872 homepage = "https://github.com/stefankoegl/python-json-patch";
3873 license = stdenv.lib.licenses.bsd2; # "Modified BSD licence, says pypi"
3874 };
3875 };
3876
3877 jsonpointer = buildPythonPackage rec {
3878 name = "jsonpointer-1.9";
3879
3880 src = pkgs.fetchurl {
3881 url = "https://pypi.python.org/packages/source/j/jsonpointer/${name}.tar.gz";
3882 md5 = "c4d3f28e72ba77062538d1c0864c40a9";
3883 };
3884
3885 meta = {
3886 description = "Resolve JSON Pointers in Python";
3887 homepage = "https://github.com/stefankoegl/python-json-pointer";
3888 license = stdenv.lib.licenses.bsd2; # "Modified BSD licence, says pypi"
3889 };
3890 };
3891
3892 jsonwatch = buildPythonPackage rec {
3893 name = "jsonwatch-0.2.0";
3894
3895 disabled = isPyPy; # doesn't find setuptools
3896
3897 src = pkgs.fetchurl {
3898 url = "https://github.com/dbohdan/jsonwatch/archive/v0.2.0.tar.gz";
3899 sha256 = "04b616ef97b9d8c3887004995420e52b72a4e0480a92dbf60aa6c50317261e06";
3900 };
3901
3902 propagatedBuildInputs = with self; [ six ];
3903
3904 meta = {
3905 description = "Like watch -d but for JSON";
3906 longDescription = ''
3907 jsonwatch is a command line utility with which you can track changes in
3908 JSON data delivered by a shell command or a web (HTTP/HTTPS) API.
3909 jsonwatch requests data from the designated source repeatedly at a set
3910 interval and displays the differences when the data changes. It is
3911 similar in its behavior to how watch(1) with the -d switch works
3912 for plain-text data.
3913 '';
3914 homepage = "https://github.com/dbohdan/jsonwatch";
3915 license = licenses.mit;
3916 platforms = platforms.all;
3917 };
3918 };
3919
3920 logilab_astng = buildPythonPackage rec {
3921 name = "logilab-astng-0.24.3";
3922
3923 src = pkgs.fetchurl {
3924 url = "http://download.logilab.org/pub/astng/${name}.tar.gz";
3925 sha256 = "0np4wpxyha7013vkkrdy54dvnil67gzi871lg60z8lap0l5h67wn";
3926 };
3927
3928 propagatedBuildInputs = with self; [ logilab_common ];
3929 };
3930
3931 mailchimp = buildPythonPackage rec {
3932
3933 version = "2.0.9";
3934 name = "mailchimp-${version}";
3935
3936 src = pkgs.fetchurl {
3937 url = "https://pypi.python.org/packages/source/m/mailchimp/mailchimp-${version}.tar.gz";
3938 sha256 = "0351ai0jqv3dzx0xxm1138sa7mb42si6xfygl5ak8wnfc95ff770";
3939 };
3940
3941 # Test fails because specific version of docopt is searched
3942 # (Possible fix: Needs upstream patching in the library)
3943 doCheck = false;
3944
3945 buildInputs = with self; [ docopt ];
3946
3947 propagatedBuildInputs = with self; [ requests ];
3948
3949 meta = {
3950 description = "A CLI client and Python API library for the MailChimp email platform";
3951 homepage = "http://apidocs.mailchimp.com/api/2.0/";
3952 license = licenses.mit;
3953 };
3954 };
3955
3956 mwlib = buildPythonPackage rec {
3957 version = "0.15.15";
3958 name = "mwlib-${version}";
3959
3960 src = pkgs.fetchurl {
3961 url = "http://pypi.pediapress.com/packages/mirror/${name}.tar.gz";
3962 sha256 = "1dnmnkc21zdfaypskbpvkwl0wpkpn0nagj1fc338w64mbxrk8ny7";
3963 };
3964
3965 commonDeps = with self;
3966 [
3967 apipkg
3968 bottle
3969 gevent
3970 lxml
3971 odfpy
3972 pillow
3973 py
3974 pyPdf
3975 pyparsing1
3976 qserve
3977 roman
3978 simplejson
3979 sqlite3dbm
3980 timelib
3981 ];
3982
3983 pythonPath = commonDeps ++
3984 [
3985 modules.sqlite3
3986 ];
3987
3988 propagatedBuildInputs = commonDeps;
3989
3990 buildInputs = with self;
3991 [
3992 pil
3993 ] ++ propagatedBuildInputs;
3994
3995 meta = {
3996 description = "Library for parsing MediaWiki articles and converting them to different output formats";
3997 homepage = "http://pediapress.com/code/";
3998 license = licenses.bsd3;
3999 };
4000 };
4001
4002 motuclient = buildPythonPackage rec {
4003 name = "motu-client-${version}";
4004 version = "1.0.8";
4005
4006 namePrefix = "";
4007 disabled = !isPy27;
4008
4009 src = pkgs.fetchurl {
4010 url = "https://github.com/quiet-oceans/motuclient-setuptools/archive/${name}.tar.gz";
4011 sha256 = "1naqmav312agn72iad9kyxwscn2lz4v1cfcqqi1qcgvc82vnwkw2";
4012 };
4013
4014 meta = {
4015 homepage = https://github.com/quiet-oceans/motuclient-setuptools;
4016 description = "CLI to query oceanographic data to Motu servers";
4017 longDescription = ''
4018 Access data from (motu)[http://sourceforge.net/projects/cls-motu/] servers.
4019 This is a refactored fork of the original release in order to simplify integration,
4020 deployment and packaging. Upstream code can be found at
4021 http://sourceforge.net/projects/cls-motu/ .
4022 '';
4023 license = licenses.lgpl3Plus;
4024 maintainers = [ maintainers.lsix ];
4025 };
4026 };
4027
4028 mwlib-ext = buildPythonPackage rec {
4029 version = "0.13.2";
4030 name = "mwlib.ext-${version}";
4031 disabled = isPy3k;
4032
4033 src = pkgs.fetchurl {
4034 url = "http://pypi.pediapress.com/packages/mirror/${name}.zip";
4035 md5 = "36193837359204d3337b297ba0f20bc8";
4036 };
4037
4038 meta = {
4039 description = "dependencies for mwlib markup";
4040 homepage = "http://pediapress.com/code/";
4041 license = licenses.bsd3;
4042 };
4043 };
4044
4045 mwlib-rl = buildPythonPackage rec {
4046 version = "0.14.6";
4047 name = "mwlib.rl-${version}";
4048
4049 src = pkgs.fetchurl {
4050 url = "http://pypi.pediapress.com/packages/mirror/${name}.zip";
4051 md5 = "49d72b0172f69cbe039f62dd4efb65ea";
4052 };
4053
4054 buildInputs = with self;
4055 [
4056 mwlib
4057 mwlib-ext
4058 pygments
4059 ];
4060
4061 meta = {
4062 description = "generate pdfs from mediawiki markup";
4063 homepage = "http://pediapress.com/code/";
4064 license = licenses.bsd3;
4065 };
4066 };
4067
4068 natsort = buildPythonPackage rec {
4069 name = "natsort-4.0.0";
4070
4071 src = pkgs.fetchurl {
4072 url = "https://pypi.python.org/packages/source/n/natsort/${name}.tar.gz";
4073 md5 = "38cc0bb27c95bf549fe737d9f267f453";
4074 };
4075
4076 buildInputs = with self;
4077 [
4078 hypothesis
4079 pytestcov
4080 pytestflakes
4081 pytestpep8
4082 covCore
4083 ];
4084
4085 meta = {
4086 description = "Natural sorting for python";
4087 homepage = https://github.com/SethMMorton/natsort;
4088 license = licenses.mit;
4089 };
4090 };
4091
4092 logster = buildPythonPackage {
4093 name = "logster-7475c53822";
4094 src = pkgs.fetchgit {
4095 url = git://github.com/etsy/logster;
4096 rev = "7475c53822";
4097 sha256 = "1ls007qmziwb50c5iikxhqin0xbn673gbd25m5k09861435cknvr";
4098 };
4099 };
4100
4101 netcdf4 = buildPythonPackage rec {
4102 name = "netCDF4-${version}";
4103 version = "1.1.8";
4104
4105 disabled = isPyPy;
4106
4107 src = pkgs.fetchurl {
4108 url = "https://pypi.python.org/packages/source/n/netCDF4/${name}.tar.gz";
4109 sha256 = "0y6s8g82rbij0brh9hz3aapyyq6apj8fpmhhlyibz1354as7rjq1";
4110 };
4111
4112 propagatedBuildInputs = with self ; [
4113 numpy
4114 pkgs.zlib
4115 pkgs.netcdf
4116 pkgs.hdf5
4117 pkgs.curl
4118 pkgs.libjpeg
4119 ];
4120
4121 patchPhase = ''
4122 export USE_NCCONFIG=0
4123 export HDF5_DIR="${pkgs.hdf5}"
4124 export NETCDF4_DIR="${pkgs.netcdf}"
4125 export CURL_DIR="${pkgs.curl}"
4126 export JPEG_DIR="${pkgs.libjpeg}"
4127 '';
4128
4129 meta = {
4130 description = "interface to netCDF library (versions 3 and 4)";
4131 homepage = https://pypi.python.org/pypi/netCDF4;
4132 license = licenses.free; # Mix of license (all MIT* like)
4133 };
4134 };
4135
4136 odfpy = buildPythonPackage rec {
4137 version = "0.9.6";
4138 name = "odfpy-${version}";
4139
4140 src = pkgs.fetchurl {
4141 url = "https://pypi.python.org/packages/source/o/odfpy/${name}.tar.gz";
4142 md5 = "3f570ead2b5f5eb6eab97eecce22d491";
4143 };
4144
4145 buildInputs = with self; with pkgs; [ ];
4146
4147 propagatedBuildInputs = with self; [ ];
4148
4149 meta = {
4150 description = "Python API and tools to manipulate OpenDocument files";
4151 homepage = "https://joinup.ec.europa.eu/software/odfpy/home";
4152 license = licenses.asl20;
4153 };
4154 };
4155
4156 pathtools = buildPythonPackage rec {
4157 name = "pathtools-${version}";
4158 version = "0.1.2";
4159
4160 src = pkgs.fetchurl {
4161 url = "https://pypi.python.org/packages/source/p/pathtools/${name}.tar.gz";
4162 sha256 = "1h7iam33vwxk8bvslfj4qlsdprdnwf8bvzhqh3jq5frr391cadbw";
4163 };
4164
4165 meta = {
4166 description = "Pattern matching and various utilities for file systems paths";
4167 homepage = http://github.com/gorakhargosh/pathtools;
4168 license = licenses.mit;
4169 maintainers = with maintainers; [ goibhniu ];
4170 };
4171 };
4172
4173 paver = buildPythonPackage rec {
4174 version = "1.2.2";
4175 name = "Paver-${version}";
4176
4177 src = pkgs.fetchurl {
4178 url = "https://pypi.python.org/packages/source/P/Paver/Paver-${version}.tar.gz";
4179 sha256 = "0lix9d33ndb3yk56sm1zlj80fbmxp0w60yk0d9pr2xqxiwi88sqy";
4180 };
4181
4182 buildInputs = with self; [ cogapp mock virtualenv ];
4183
4184 propagatedBuildInputs = with self; [ nose ];
4185
4186 # the tests do not pass
4187 doCheck = false;
4188
4189 meta = {
4190 description = "A Python-based build/distribution/deployment scripting tool";
4191 homepage = http://github.com/paver/paver;
4192 matinainers = with maintainers; [ lovek323 ];
4193 platforms = platforms.unix;
4194 };
4195 };
4196
4197 passlib = buildPythonPackage rec {
4198 version = "1.6.2";
4199 name = "passlib-${version}";
4200
4201 src = pkgs.fetchurl {
4202 url = "https://pypi.python.org/packages/source/p/passlib/passlib-${version}.tar.gz";
4203 md5 = "2f872ae7c72ca338634c618f2cff5863";
4204 };
4205
4206 buildInputs = with self; [ nose pybcrypt];
4207
4208 meta = {
4209 description = "A password hashing library for Python";
4210 homepage = https://code.google.com/p/passlib/;
4211 };
4212 };
4213
4214
4215 peppercorn = buildPythonPackage rec {
4216 name = "peppercorn-0.5";
4217
4218 src = pkgs.fetchurl {
4219 url = "http://pypi.python.org/packages/source/p/peppercorn/${name}.tar.gz";
4220 md5 = "f08efbca5790019ab45d76b7244abd40";
4221 };
4222
4223 meta = {
4224 maintainers = with maintainers; [ garbas iElectric ];
4225 platforms = platforms.all;
4226 };
4227 };
4228
4229 pew = buildPythonPackage rec {
4230 name = "pew-0.1.14";
4231 namePrefix = "";
4232
4233 disabled = pythonOlder "3.4"; # old versions require backported libraries
4234
4235 src = pkgs.fetchurl {
4236 url = "https://pypi.python.org/packages/source/p/pew/${name}.tar.gz";
4237 md5 = "0a06ab0885b39f1ef3890893942f3225";
4238 };
4239
4240 propagatedBuildInputs = with self; [ virtualenv virtualenv-clone ];
4241
4242 meta = {
4243 description = "Tools to manage multiple virtualenvs written in pure python, a virtualenvwrapper rewrite";
4244 license = licenses.mit;
4245 platforms = platforms.all;
4246 maintainers = with maintainers; [ berdario ];
4247 };
4248 };
4249
4250 pies = buildPythonPackage rec {
4251 name = "pies-2.6.5";
4252
4253 src = pkgs.fetchurl {
4254 url = "https://pypi.python.org/packages/source/p/pies/${name}.tar.gz";
4255 md5 = "caba1ce15d312bf68d65a5d2cf9ccff2";
4256 };
4257
4258 deps = if !isPy3k then [ self.pies2overrides self.enum34 ]
4259 else if isPy33 then [ self.enum34 ]
4260 else [];
4261
4262 propagatedBuildInputs = deps;
4263
4264 meta = {
4265 description = "The simplest way to write one program that runs on both Python 2 and Python 3";
4266 homepage = https://github.com/timothycrosley/pies;
4267 license = licenses.mit;
4268 };
4269 };
4270
4271 pies2overrides = pythonPackages.buildPythonPackage rec {
4272 name = "pies2overrides-2.6.5";
4273 disabled = isPy3k;
4274
4275 src = pkgs.fetchurl {
4276 url = "https://pypi.python.org/packages/source/p/pies2overrides/${name}.tar.gz";
4277 md5 = "e73716454a2560341edf99d8f6fe5135";
4278 };
4279
4280 propagatedBuildInputs = with self; [ ipaddress ];
4281
4282 meta = {
4283 description = "Defines override classes that should be included with pies only if running on Python2";
4284 homepage = https://github.com/timothycrosley/pies;
4285 license = licenses.mit;
4286 };
4287 };
4288
4289
4290 poppler-qt4 = buildPythonPackage rec {
4291 name = "poppler-qt4-${version}";
4292 version = "0.18.1";
4293 disabled = isPy3k || isPyPy;
4294
4295 src = pkgs.fetchurl {
4296 url = "https://pypi.python.org/packages/source/p/python-poppler-qt4/" +
4297 "python-poppler-qt4-${version}.tar.gz";
4298 md5 = "9c4c5a59b878aed78e96a6ae58c6c185";
4299 };
4300
4301 propagatedBuildInputs = [ pkgs.pyqt4 pkgs.pkgconfig pkgs.poppler_qt4 ];
4302
4303 preBuild = "${python}/bin/${python.executable} setup.py build_ext" +
4304 " --include-dirs=${pkgs.poppler_qt4}/include/poppler/";
4305
4306 meta = {
4307 description = "A Python binding to Poppler-Qt4";
4308 longDescription = ''
4309 A Python binding to Poppler-Qt4 that aims for completeness
4310 and for being actively maintained.
4311 '';
4312 license = licenses.lgpl21Plus;
4313 maintainers = with maintainers; [ sepi ];
4314 platforms = platforms.all;
4315 };
4316 };
4317
4318 pudb = buildPythonPackage rec {
4319 name = "pudb-2013.3.6";
4320
4321 src = pkgs.fetchurl {
4322 url = "https://pypi.python.org/packages/source/p/pudb/${name}.tar.gz";
4323 md5 = "063030763bf914166a0b2bc8c011143b";
4324 };
4325
4326 propagatedBuildInputs = with self; [ self.pygments self.urwid ];
4327
4328 meta = {
4329 description = "A full-screen, console-based Python debugger";
4330 license = licenses.mit;
4331 platforms = platforms.all;
4332 };
4333 };
4334
4335 pycares = buildPythonPackage rec {
4336 name = "pycares-${version}";
4337 version = "0.7.0";
4338
4339 src = pkgs.fetchurl {
4340 url = "https://pypi.python.org/packages/source/p/pycares/${name}.tar.gz";
4341 sha256 = "10lr3ij67khmfm14cb3sqch3vhv37f3j1whwznq6qy4prfmz5gvl";
4342 };
4343
4344 propagatedBuildInputs = [ pkgs.c-ares ];
4345
4346 meta = {
4347 homepage = http://github.com/saghul/pycares;
4348 description = "Interface for c-ares";
4349 license = licenses.mit;
4350 };
4351 };
4352
4353 pyramid = buildPythonPackage rec {
4354 name = "pyramid-1.5.2";
4355
4356 src = pkgs.fetchurl {
4357 url = "http://pypi.python.org/packages/source/p/pyramid/${name}.tar.gz";
4358 md5 = "d56b140b41d42f818f4349d94d968c9a";
4359 };
4360
4361 preCheck = ''
4362 # test is failing, see https://github.com/Pylons/pyramid/issues/1405
4363 rm pyramid/tests/test_response.py
4364 '';
4365
4366 buildInputs = with self; [
4367 docutils
4368 virtualenv
4369 webtest
4370 zope_component
4371 zope_interface
4372 ] ++ optional isPy26 unittest2;
4373
4374 propagatedBuildInputs = with self; [
4375 paste_deploy
4376 repoze_lru
4377 repoze_sphinx_autointerface
4378 translationstring
4379 venusian
4380 webob
4381 zope_deprecation
4382 zope_interface
4383 ];
4384
4385 meta = {
4386 maintainers = with maintainers; [ garbas iElectric ];
4387 platforms = platforms.all;
4388 };
4389 };
4390
4391
4392 pyramid_beaker = buildPythonPackage rec {
4393 name = "pyramid_beaker-0.7";
4394
4395 src = pkgs.fetchurl {
4396 url = "http://pypi.python.org/packages/source/p/pyramid_beaker/${name}.tar.gz";
4397 md5 = "acb863517a98b90b5f29648ce55dd563";
4398 };
4399
4400 propagatedBuildInputs = with self; [ beaker pyramid ];
4401
4402 meta = {
4403 maintainers = with maintainers; [ iElectric ];
4404 platforms = platforms.all;
4405 };
4406 };
4407
4408
4409 pyramid_chameleon = buildPythonPackage rec {
4410 name = "pyramid_chameleon-0.3";
4411
4412 src = pkgs.fetchurl {
4413 url = "https://pypi.python.org/packages/source/p/pyramid_chameleon/${name}.tar.gz";
4414 md5 = "5bb5938356dfd13fce06e095f132e137";
4415 };
4416
4417 propagatedBuildInputs = with self; [
4418 chameleon
4419 pyramid
4420 zope_interface
4421 setuptools
4422 ];
4423
4424 meta = {
4425 maintainers = with maintainers; [ iElectric ];
4426 };
4427 };
4428
4429
4430 pyramid_jinja2 = buildPythonPackage rec {
4431 name = "pyramid_jinja2-1.9";
4432
4433 src = pkgs.fetchurl {
4434 url = "http://pypi.python.org/packages/source/p/pyramid_jinja2/${name}.zip";
4435 md5 = "a6728117cad24749ddb39d2827cd9033";
4436 };
4437
4438 buildInputs = with self; [ webtest ];
4439 propagatedBuildInputs = with self; [ jinja2 pyramid ];
4440
4441 meta = {
4442 maintainers = with maintainers; [ iElectric ];
4443 platforms = platforms.all;
4444 };
4445 };
4446
4447
4448 pyramid_debugtoolbar = buildPythonPackage rec {
4449 name = "pyramid_debugtoolbar-1.0.9";
4450
4451 src = pkgs.fetchurl {
4452 url = "http://pypi.python.org/packages/source/p/pyramid_debugtoolbar/${name}.tar.gz";
4453 sha256 = "1vnzg1qnnyisv7znxg7pasayfyr3nz7rrs5nqr4fmdgwj9q2pyv0";
4454 };
4455
4456 buildInputs = with self; [ ];
4457 propagatedBuildInputs = with self; [ pyramid pyramid_mako ];
4458 };
4459
4460
4461 pyramid_mako = buildPythonPackage rec {
4462 name = "pyramid_mako-0.3.1";
4463
4464 src = pkgs.fetchurl {
4465 url = "http://pypi.python.org/packages/source/p/pyramid_mako/${name}.tar.gz";
4466 sha256 = "00811djmsc4rz20kpy2paam05fbx6dmrv2i5jf90f6xp6zw4isy6";
4467 };
4468
4469 buildInputs = with self; [ webtest ];
4470 propagatedBuildInputs = with self; [ pyramid Mako ];
4471 };
4472
4473
4474 pyramid_exclog = buildPythonPackage rec {
4475 name = "pyramid_exclog-0.7";
4476
4477 src = pkgs.fetchurl {
4478 url = "http://pypi.python.org/packages/source/p/pyramid_exclog/${name}.tar.gz";
4479 md5 = "05df86758b0d30ee6f8339ff36cef7a0";
4480 };
4481
4482 propagatedBuildInputs = with self; [ pyramid ];
4483
4484 meta = {
4485 maintainers = with maintainers; [ garbas iElectric ];
4486 platforms = platforms.all;
4487 };
4488 };
4489
4490
4491 pyramid_tm = buildPythonPackage rec {
4492 name = "pyramid_tm-0.10";
4493
4494 src = pkgs.fetchurl {
4495 url = "http://pypi.python.org/packages/source/p/pyramid_tm/${name}.tar.gz";
4496 md5 = "89a293488093d6c30036345fa46184d2";
4497 };
4498
4499 propagatedBuildInputs = with self; [ transaction pyramid ];
4500 meta = {
4501 maintainers = with maintainers; [ garbas iElectric matejc ];
4502 platforms = platforms.all;
4503 };
4504 };
4505
4506
4507 pyramid_multiauth = buildPythonPackage rec {
4508 name = "pyramid_multiauth-${version}";
4509 version = "0.3.2";
4510
4511 src = pkgs.fetchurl {
4512 url = "https://pypi.python.org/packages/source/p/pyramid_multiauth/${name}.tar.gz";
4513 md5 = "044e423abc4fb76937ac0c21c1205e9c";
4514 };
4515
4516 propagatedBuildInputs = with self; [ pyramid ];
4517
4518 meta = {
4519 description = "Authentication policy for Pyramid that proxies to a stack of other authentication policies";
4520 homepage = https://github.com/mozilla-services/pyramid_multiauth;
4521 };
4522 };
4523
4524 pyramid_hawkauth = buildPythonPackage rec {
4525 name = "pyramidhawkauth-${version}";
4526 version = "0.1.0";
4527 src = pkgs.fetchgit {
4528 url = https://github.com/mozilla-services/pyramid_hawkauth.git;
4529 rev = "refs/tags/v${version}";
4530 sha256 = "1ic7xl72qnz382xaqhcy9ql17gx7pxbs78znp8xr66sp3dcx2s3c";
4531 };
4532
4533 propagatedBuildInputs = with self; [ pyramid hawkauthlib tokenlib webtest ];
4534 };
4535
4536 radicale = buildPythonPackage rec {
4537 name = "radicale-${version}";
4538 namePrefix = "";
4539 version = "0.10";
4540
4541 src = pkgs.fetchurl {
4542 url = "http://pypi.python.org/packages/source/R/Radicale/Radicale-${version}.tar.gz";
4543 sha256 = "0r1x23h9raadpdmxnanvhajvkk0ix377mv94jlazr18nfpsj4r8c";
4544 };
4545
4546 propagatedBuildInputs = with self; [
4547 flup
4548 ldap
4549 sqlalchemy
4550 ];
4551
4552 doCheck = false;
4553
4554 meta = {
4555 homepage = http://www.radicale.org/;
4556 description = "CalDAV CardDAV server";
4557 longDescription = ''
4558 The Radicale Project is a complete CalDAV (calendar) and CardDAV
4559 (contact) server solution. Calendars and address books are available for
4560 both local and remote access, possibly limited through authentication
4561 policies. They can be viewed and edited by calendar and contact clients
4562 on mobile phones or computers.
4563 '';
4564 license = licenses.gpl3Plus;
4565 maintainers = with maintainers; [ edwtjo pSub ];
4566 };
4567 };
4568
4569 raven = buildPythonPackage rec {
4570 name = "raven-3.4.1";
4571
4572 src = pkgs.fetchurl {
4573 url = "http://pypi.python.org/packages/source/r/raven/${name}.tar.gz";
4574 md5 = "6a9264133bf646149ffb9118d81445be";
4575 };
4576
4577 # way too many dependencies to run tests
4578 # see https://github.com/getsentry/raven-python/blob/master/setup.py
4579 doCheck = false;
4580
4581 meta = {
4582 maintainers = with maintainers; [ iElectric ];
4583 };
4584 };
4585
4586 roman = buildPythonPackage rec {
4587 version = "2.0.0";
4588 name = "roman-${version}";
4589
4590 src = pkgs.fetchurl {
4591 url = "https://pypi.python.org/packages/source/r/roman/${name}.zip";
4592 md5 = "aa71d131eec16d45c030fd06a27c9d17";
4593 };
4594
4595 buildInputs = with self; with pkgs; [ ];
4596
4597 propagatedBuildInputs = with self; [ ];
4598
4599 meta = {
4600 description = "Integer to Roman numerals converter";
4601 homepage = "https://pypi.python.org/pypi/roman";
4602 license = licenses.psfl;
4603 };
4604 };
4605
4606
4607 hypatia = buildPythonPackage rec {
4608 name = "hypatia-0.3";
4609
4610 src = pkgs.fetchurl {
4611 url = "http://pypi.python.org/packages/source/h/hypatia/${name}.tar.gz";
4612 md5 = "d74c6dda31ff459a39fa5da9e98f2425";
4613 };
4614
4615 buildInputs = with self; [ zope_interface zodb ];
4616
4617 meta = {
4618 maintainers = with maintainers; [ iElectric ];
4619 };
4620 };
4621
4622
4623 zope_copy = buildPythonPackage rec {
4624 name = "zope.copy-4.0.2";
4625
4626 src = pkgs.fetchurl {
4627 url = "http://pypi.python.org/packages/source/z/zope.copy/${name}.zip";
4628 md5 = "36aa2c96dec4cfeea57f54da2b733eb9";
4629 };
4630
4631 buildInputs = with self; [ zope_interface zope_location zope_schema ];
4632
4633 meta = {
4634 maintainers = with maintainers; [ iElectric ];
4635 };
4636 };
4637
4638
4639 ssdeep = buildPythonPackage rec {
4640 name = "ssdeep-3.1.1";
4641
4642 src = pkgs.fetchurl {
4643 url = "http://pypi.python.org/packages/source/s/ssdeep/${name}.tar.gz";
4644 sha256 = "1p9dpykmnfb73cszdiic5wbz5bmbbmkiih08pb4dah5mwq4n7im6";
4645 };
4646
4647 buildInputs = with pkgs; [ ssdeep ];
4648 propagatedBuildInputs = with self; [ cffi six ];
4649 };
4650
4651
4652 statsd = buildPythonPackage rec {
4653 name = "statsd-2.0.2";
4654
4655 src = pkgs.fetchurl {
4656 url = "http://pypi.python.org/packages/source/s/statsd/${name}.tar.gz";
4657 md5 = "476ef5b9004f6e2cb25c7da440bb53d0";
4658 };
4659
4660 buildInputs = with self; [ ];
4661
4662 meta = {
4663 maintainers = with maintainers; [ iElectric ];
4664 };
4665 };
4666
4667 py3status = buildPythonPackage rec {
4668 name = "py3status-2.3";
4669 src = pkgs.fetchurl {
4670 url = "https://pypi.python.org/packages/source/p/py3status/${name}.tar.gz";
4671 md5 = "89ad395268c7791ff5d36412b1efeeb9";
4672 };
4673 propagatedBuildInputs = with self; [ requests2 ];
4674 meta = {
4675 maintainers = with maintainers; [ garbas ];
4676 };
4677 };
4678
4679 pyramid_zodbconn = buildPythonPackage rec {
4680 name = "pyramid_zodbconn-0.7";
4681
4682 src = pkgs.fetchurl {
4683 url = "http://pypi.python.org/packages/source/p/pyramid_zodbconn/${name}.tar.gz";
4684 md5 = "3c7746a227fbcda3e138ab8bfab7700b";
4685 };
4686
4687 # should be fixed in next release
4688 doCheck = false;
4689
4690 buildInputs = with self; [ pyramid mock ];
4691 propagatedBuildInputs = with self; [ zodb zodburi ];
4692
4693 meta = {
4694 maintainers = with maintainers; [ iElectric ];
4695 };
4696 };
4697
4698
4699 pyramid_mailer = buildPythonPackage rec {
4700 name = "pyramid_mailer-0.13";
4701
4702 src = pkgs.fetchurl {
4703 url = "http://pypi.python.org/packages/source/p/pyramid_mailer/${name}.tar.gz";
4704 md5 = "43800c7c894097a23140da58e3638c93";
4705 };
4706
4707 buildInputs = with self; [ pyramid transaction ];
4708 propagatedBuildInputs = with self; [ repoze_sendmail ];
4709
4710 meta = {
4711 maintainers = with maintainers; [ iElectric ];
4712 };
4713 };
4714
4715 pyrtlsdr = buildPythonPackage rec {
4716 name = "pyrtlsdr-0.2.0";
4717
4718 src = pkgs.fetchurl {
4719 url = "http://pypi.python.org/packages/source/p/pyrtlsdr/${name}.zip";
4720 md5 = "646336675a00d38e6f54e77a17011b95";
4721 };
4722
4723 postPatch = ''
4724 sed "s|driver_files =.*|driver_files = ['${pkgs.rtl-sdr}/lib/librtlsdr.so']|" -i rtlsdr/librtlsdr.py
4725 '';
4726
4727 meta = {
4728 description = "Python wrapper for librtlsdr (a driver for Realtek RTL2832U based SDR's)";
4729 homepage = https://github.com/roger-/pyrtlsdr;
4730 license = licenses.gpl3;
4731 platforms = platforms.linux;
4732 maintainers = with maintainers; [ bjornfor ];
4733 };
4734 };
4735
4736
4737 repoze_sendmail = buildPythonPackage rec {
4738 name = "repoze.sendmail-4.1";
4739
4740 src = pkgs.fetchurl {
4741 url = "http://pypi.python.org/packages/source/r/repoze.sendmail/${name}.tar.gz";
4742 md5 = "81d15f1f03cc67d6f56f2091c594ef57";
4743 };
4744
4745 buildInputs = with self; [ transaction ];
4746
4747 meta = {
4748 maintainers = with maintainers; [ iElectric ];
4749 };
4750 };
4751
4752
4753 zodburi = buildPythonPackage rec {
4754 name = "zodburi-2.0";
4755
4756 src = pkgs.fetchurl {
4757 url = "http://pypi.python.org/packages/source/z/zodburi/${name}.tar.gz";
4758 md5 = "7876893829c2f784506c80d49f861b67";
4759 };
4760
4761 buildInputs = with self; [ zodb mock ZEO ];
4762
4763 meta = {
4764 maintainers = with maintainers; [ iElectric ];
4765 };
4766 };
4767
4768 ZEO = self.buildPythonPackage rec {
4769 name = "ZEO-4.0.0";
4770
4771 propagatedBuildInputs = with self; [ random2 zodb six transaction persistent zc_lockfile zconfig zdaemon zope_interface ];
4772
4773 src = pkgs.fetchurl {
4774 url = "https://pypi.python.org/packages/source/Z/ZEO/${name}.tar.gz";
4775 md5 = "494d8320549185097ba4a6b6b76017d6";
4776 };
4777
4778 meta = {
4779 homepage = https://pypi.python.org/pypi/ZEO;
4780 };
4781 };
4782
4783 random2 = self.buildPythonPackage rec {
4784 name = "random2-1.0.1";
4785
4786 doCheck = !isPyPy;
4787
4788 src = pkgs.fetchurl {
4789 url = "https://pypi.python.org/packages/source/r/random2/${name}.zip";
4790 md5 = "48a0a86fe00e447212d0095de8cf3e21";
4791 };
4792 };
4793
4794
4795 substanced = buildPythonPackage rec {
4796 # no release yet
4797 rev = "089818bc61c3dc5eca023254e37a280b041ea8cc";
4798 name = "substanced-${rev}";
4799
4800 src = pkgs.fetchgit {
4801 inherit rev;
4802 url = "https://github.com/Pylons/substanced.git";
4803 sha256 = "17s7sdvydw9a9d2d36c70lq962ryny3dv9nzdxqpfvwiry9iy3jx";
4804 };
4805
4806 buildInputs = with self; [ mock ];
4807
4808 propagatedBuildInputs = with self; [
4809 pyramid
4810 pytz
4811 zodb
4812 venusian
4813 colander
4814 deform2
4815 python_magic
4816 pyyaml
4817 cryptacular
4818 hypatia
4819 zope_copy
4820 zope_component
4821 zope_deprecation
4822 statsd
4823 pyramid_zodbconn
4824 pyramid_mailer
4825 pyramid_chameleon
4826 ZEO
4827 ];
4828
4829 meta = {
4830 maintainers = with maintainers; [ iElectric ];
4831 };
4832 };
4833
4834
4835 svg-path = buildPythonPackage rec {
4836 name = "svg.path-${version}";
4837 version = "2.0b1";
4838
4839 src = pkgs.fetchurl {
4840 url = "https://pypi.python.org/packages/source/s/svg.path/${name}.zip";
4841 sha256 = "038x4wqkbvcs71x6n6kzr4kn99csyv8v4gqzssr8pqylqpxi56bm";
4842 };
4843
4844 meta = {
4845 description = "SVG path objects and parser";
4846 homepage = https://github.com/regebro/svg.path;
4847 license = licenses.cc0;
4848 maintainers = with maintainers; [ goibhniu ];
4849 };
4850 };
4851
4852
4853 repoze_lru = buildPythonPackage rec {
4854 name = "repoze.lru-0.6";
4855
4856 src = pkgs.fetchurl {
4857 url = "http://pypi.python.org/packages/source/r/repoze.lru/${name}.tar.gz";
4858 md5 = "2c3b64b17a8e18b405f55d46173e14dd";
4859 };
4860
4861 meta = {
4862 maintainers = with maintainers; [ garbas iElectric ];
4863 platforms = platforms.all;
4864 };
4865 };
4866
4867
4868
4869 repoze_sphinx_autointerface = buildPythonPackage rec {
4870 name = "repoze.sphinx.autointerface-0.7.1";
4871
4872 src = pkgs.fetchurl {
4873 url = "http://pypi.python.org/packages/source/r/repoze.sphinx.autointerface/${name}.tar.gz";
4874 md5 = "f2fee996ae28dc16eb48f1a3e8f64801";
4875 };
4876
4877 propagatedBuildInputs = with self; [ zope_interface sphinx ];
4878
4879 meta = {
4880 maintainers = with maintainers; [ iElectric ];
4881 platforms = platforms.all;
4882 };
4883 };
4884
4885
4886 rtmidi = buildPythonPackage rec {
4887 version = "0.3a";
4888 name = "rtmidi-${version}";
4889
4890 src = pkgs.fetchurl {
4891 url = "http://chrisarndt.de/projects/python-rtmidi/download/python-${name}.tar.bz2";
4892 sha256 = "0d2if633m3kbiricd5hgn1csccd8xab6lnab1bq9prdr9ks9i8h6";
4893 };
4894
4895 preConfigure = ''
4896 sed -i "/use_setuptools/d" setup.py
4897 '';
4898
4899 buildInputs = with self; [ pkgs.alsaLib pkgs.libjack2 ];
4900
4901 meta = {
4902 description = "A Python wrapper for the RtMidi C++ library written with Cython";
4903 homepage = http://trac.chrisarndt.de/code/wiki/python-rtmidi;
4904 license = licenses.mit;
4905 maintainers = with maintainers; [ goibhniu ];
4906 };
4907 };
4908
4909
4910 setuptools-git = buildPythonPackage rec {
4911 name = "setuptools-git-${version}";
4912 version = "1.1";
4913
4914 src = pkgs.fetchurl {
4915 url = "https://pypi.python.org/packages/source/s/setuptools-git/${name}.tar.gz";
4916 md5 = "7b5967e9527c789c3113b07a1f196f6e";
4917 };
4918
4919 propagatedBuildInputs = [ pkgs.git ];
4920 doCheck = false;
4921
4922 meta = {
4923 description = "Setuptools revision control system plugin for Git";
4924 homepage = https://pypi.python.org/pypi/setuptools-git;
4925 license = licenses.bsd3;
4926 };
4927 };
4928
4929
4930 watchdog = buildPythonPackage rec {
4931 name = "watchdog-${version}";
4932 version = "0.8.3";
4933
4934 propagatedBuildInputs = with self; [ argh pathtools pyyaml ];
4935
4936 doCheck = false;
4937
4938 src = pkgs.fetchurl {
4939 url = "https://pypi.python.org/packages/source/w/watchdog/${name}.tar.gz";
4940 sha256 = "0qj1vqszxwfx6d1s66s96jmfmy2j94bywxiqdydh6ikpvcm8hrby";
4941 };
4942
4943 meta = {
4944 description = "Python API and shell utilities to monitor file system events";
4945 homepage = http://github.com/gorakhargosh/watchdog;
4946 license = licenses.asl20;
4947 maintainers = with maintainers; [ goibhniu ];
4948 };
4949 };
4950
4951
4952 zope_tales = buildPythonPackage rec {
4953 name = "zope.tales-4.0.2";
4954
4955 propagatedBuildInputs = with self; [ zope_interface six zope_testrunner ];
4956
4957 src = pkgs.fetchurl {
4958 url = "https://pypi.python.org/packages/source/z/zope.tales/${name}.zip";
4959 md5 = "902b03a5f9774f6e2decf3f06d18a09d";
4960 };
4961 };
4962
4963
4964 zope_deprecation = buildPythonPackage rec {
4965 name = "zope.deprecation-4.1.2";
4966
4967 src = pkgs.fetchurl {
4968 url = "http://pypi.python.org/packages/source/z/zope.deprecation/${name}.tar.gz";
4969 md5 = "e9a663ded58f4f9f7881beb56cae2782";
4970 };
4971
4972 buildInputs = with self; [ zope_testing ];
4973
4974 meta = {
4975 maintainers = with maintainers; [ garbas iElectric ];
4976 platforms = platforms.all;
4977 };
4978 };
4979
4980 validictory = pythonPackages.buildPythonPackage rec {
4981 name = "validictory-1.0.0a2";
4982
4983 src = pkgs.fetchurl {
4984 url = "https://pypi.python.org/packages/source/v/validictory/validictory-1.0.0a2.tar.gz";
4985 md5 = "54c206827931cc4ed8a9b1cc78e380c5";
4986 };
4987
4988 propagatedBuildInputs = with pythonPackages; [ ];
4989 doCheck = false;
4990
4991 meta = {
4992 description = "Validate dicts against a schema";
4993 homepage = http://github.com/sunlightlabs/validictory;
4994 license = licenses.mit;
4995 };
4996 };
4997
4998 venusian = buildPythonPackage rec {
4999 name = "venusian-1.0";
5000
5001 src = pkgs.fetchurl {
5002 url = "http://pypi.python.org/packages/source/v/venusian/${name}.tar.gz";
5003 md5 = "dccf2eafb7113759d60c86faf5538756";
5004 };
5005
5006 # TODO: https://github.com/Pylons/venusian/issues/23
5007 doCheck = false;
5008
5009 meta = {
5010 maintainers = with maintainers; [ garbas iElectric ];
5011 platforms = platforms.all;
5012 };
5013 };
5014
5015
5016 chameleon = buildPythonPackage rec {
5017 name = "Chameleon-2.15";
5018
5019 src = pkgs.fetchurl {
5020 url = "http://pypi.python.org/packages/source/C/Chameleon/${name}.tar.gz";
5021 md5 = "0214647152fcfcb9ce357624f8f9f203";
5022 };
5023
5024 buildInputs = with self; [] ++ optionals isPy26 [ ordereddict unittest2 ];
5025
5026 # TODO: https://github.com/malthe/chameleon/issues/139
5027 doCheck = false;
5028
5029 meta = {
5030 maintainers = with maintainers; [ garbas iElectric ];
5031 platforms = platforms.all;
5032 };
5033 };
5034
5035 ddt = buildPythonPackage (rec {
5036 name = "ddt-1.0.0";
5037
5038 src = pkgs.fetchurl {
5039 url = "https://pypi.python.org/packages/source/d/ddt/${name}.tar.gz";
5040 md5 = "29688456f9ee42d09d7d7c864ce6e17b";
5041 };
5042
5043 meta = {
5044 description = "Data-Driven/Decorated Tests, a library to multiply test cases";
5045
5046 homepage = https://github.com/txels/ddt;
5047
5048 license = licenses.mit;
5049 };
5050 });
5051
5052 distutils_extra = buildPythonPackage rec {
5053 name = "distutils-extra-2.26";
5054
5055 src = pkgs.fetchurl {
5056 url = "http://launchpad.net/python-distutils-extra/trunk/2.26/+download/python-${name}.tar.gz";
5057 md5 = "7caded30a45907b5cdb10ac4182846eb";
5058 };
5059
5060 meta = {
5061 homepage = https://launchpad.net/python-distutils-extra;
5062 description = "Enhancements to Python's distutils";
5063 };
5064 };
5065
5066 deluge = buildPythonPackage rec {
5067 name = "deluge-1.3.11";
5068
5069 src = pkgs.fetchurl {
5070 url = "http://download.deluge-torrent.org/source/${name}.tar.bz2";
5071 sha256 = "16681sg7yi03jqyifhalnw4vavb8sj94cisldal7nviai8dz9qc3";
5072 };
5073
5074 propagatedBuildInputs = with self; [
5075 pyGtkGlade pkgs.libtorrentRasterbar twisted Mako chardet pyxdg self.pyopenssl modules.curses
5076 ];
5077
5078 nativeBuildInputs = [ pkgs.intltool ];
5079
5080 postInstall = ''
5081 cp -R deluge/data/pixmaps $out/share/
5082 cp -R deluge/data/icons $out/share/
5083 '';
5084
5085 meta = {
5086 homepage = http://deluge-torrent.org;
5087 description = "Torrent client";
5088 license = licenses.gpl3Plus;
5089 maintainers = with maintainers; [ iElectric ];
5090 platforms = platforms.all;
5091 };
5092 };
5093
5094 pyxdg = buildPythonPackage rec {
5095 name = "pyxdg-0.25";
5096
5097 src = pkgs.fetchurl {
5098 url = "http://pypi.python.org/packages/source/p/pyxdg/${name}.tar.gz";
5099 md5 = "bedcdb3a0ed85986d40044c87f23477c";
5100 };
5101
5102 # error: invalid command 'test'
5103 doCheck = false;
5104
5105 meta = {
5106 homepage = http://freedesktop.org/wiki/Software/pyxdg;
5107 description = "Contains implementations of freedesktop.org standards";
5108 license = licenses.lgpl2;
5109 maintainers = with maintainers; [ iElectric ];
5110 };
5111 };
5112
5113 chardet = buildPythonPackage rec {
5114 name = "chardet-2.1.1";
5115
5116 src = pkgs.fetchurl {
5117 url = "http://pypi.python.org/packages/source/c/chardet/${name}.tar.gz";
5118 md5 = "295367fd210d20f3febda615a88e1ef0";
5119 };
5120
5121 meta = {
5122 homepage = https://github.com/erikrose/chardet;
5123 description = "Universal encoding detector";
5124 license = licenses.lgpl2;
5125 maintainers = with maintainers; [ iElectric ];
5126 };
5127 };
5128
5129 django = self.django_1_7;
5130
5131 django_1_8 = buildPythonPackage rec {
5132 name = "Django-${version}";
5133 version = "1.8.4";
5134 disabled = pythonOlder "2.7";
5135
5136 src = pkgs.fetchurl {
5137 url = "http://www.djangoproject.com/m/releases/1.8/${name}.tar.gz";
5138 sha256 = "1n3hb80v7wl5j2mry5pfald6i9z42a9c3m9405877iqw3v49csc2";
5139 };
5140
5141 # error: invalid command 'test'
5142 doCheck = false;
5143
5144 # patch only $out/bin to avoid problems with starter templates (see #3134)
5145 postFixup = ''
5146 wrapPythonProgramsIn $out/bin "$out $pythonPath"
5147 '';
5148
5149 meta = {
5150 description = "A high-level Python Web framework";
5151 homepage = https://www.djangoproject.com/;
5152 };
5153 };
5154
5155
5156 django_1_7 = buildPythonPackage rec {
5157 name = "Django-${version}";
5158 version = "1.7.10";
5159 disabled = pythonOlder "2.7";
5160
5161 src = pkgs.fetchurl {
5162 url = "http://www.djangoproject.com/m/releases/1.7/${name}.tar.gz";
5163 sha256 = "0xbwg6nyvwcbp2hvk0x3s5y823k5kizn0za1bl2rf6g6xcn7sddr";
5164 };
5165
5166 # error: invalid command 'test'
5167 doCheck = false;
5168
5169 # patch only $out/bin to avoid problems with starter templates (see #3134)
5170 postFixup = ''
5171 wrapPythonProgramsIn $out/bin "$out $pythonPath"
5172 '';
5173
5174 meta = {
5175 description = "A high-level Python Web framework";
5176 homepage = https://www.djangoproject.com/;
5177 };
5178 };
5179
5180 django_1_6 = buildPythonPackage rec {
5181 name = "Django-${version}";
5182 version = "1.6.11";
5183
5184 src = pkgs.fetchurl {
5185 url = "http://www.djangoproject.com/m/releases/1.6/${name}.tar.gz";
5186 sha256 = "0misvia78c14y07zs5xsb9lv54q0v217jpaindrmhhw4wiryal3y";
5187 };
5188
5189 # error: invalid command 'test'
5190 doCheck = false;
5191
5192 # patch only $out/bin to avoid problems with starter templates (see #3134)
5193 postFixup = ''
5194 wrapPythonProgramsIn $out/bin "$out $pythonPath"
5195 '';
5196
5197 meta = {
5198 description = "A high-level Python Web framework";
5199 homepage = https://www.djangoproject.com/;
5200 };
5201 };
5202
5203 django_1_5 = buildPythonPackage rec {
5204 name = "Django-${version}";
5205 version = "1.5.12";
5206
5207 src = pkgs.fetchurl {
5208 url = "http://www.djangoproject.com/m/releases/1.5/${name}.tar.gz";
5209 sha256 = "1vbcvn6ncg7hq5i1w95h746vkq9lmp120vx63h3p56z5nsz7gpmk";
5210 };
5211
5212 # error: invalid command 'test'
5213 doCheck = false;
5214
5215 # patch only $out/bin to avoid problems with starter templates (see #3134)
5216 postFixup = ''
5217 wrapPythonProgramsIn $out/bin "$out $pythonPath"
5218 '';
5219
5220 meta = {
5221 description = "A high-level Python Web framework";
5222 homepage = https://www.djangoproject.com/;
5223 };
5224 };
5225
5226 django_1_4 = buildPythonPackage rec {
5227 name = "Django-${version}";
5228 version = "1.4.22";
5229
5230 src = pkgs.fetchurl {
5231 url = "http://www.djangoproject.com/m/releases/1.4/${name}.tar.gz";
5232 sha256 = "110p1mgdcf87kyr64mr2jgmyapyg27kha74yq3wjrazwfbbwkqnh";
5233 };
5234
5235 # error: invalid command 'test'
5236 doCheck = false;
5237
5238 # patch only $out/bin to avoid problems with starter templates (see #3134)
5239 postFixup = ''
5240 wrapPythonProgramsIn $out/bin "$out $pythonPath"
5241 '';
5242
5243 meta = {
5244 description = "A high-level Python Web framework";
5245 homepage = https://www.djangoproject.com/;
5246 };
5247 };
5248
5249 django_1_3 = buildPythonPackage rec {
5250 name = "Django-1.3.7";
5251
5252 src = pkgs.fetchurl {
5253 url = "http://www.djangoproject.com/m/releases/1.3/${name}.tar.gz";
5254 sha256 = "12pv8y2x3fhrcrjayfm6z40r57iwchfi5r19ajs8q8z78i3z8l7f";
5255 };
5256
5257 # error: invalid command 'test'
5258 doCheck = false;
5259
5260 # patch only $out/bin to avoid problems with starter templates (see #3134)
5261 postFixup = ''
5262 wrapPythonProgramsIn $out/bin "$out $pythonPath"
5263 '';
5264
5265 meta = {
5266 description = "A high-level Python Web framework";
5267 homepage = https://www.djangoproject.com/;
5268 };
5269 };
5270
5271
5272 django_evolution = buildPythonPackage rec {
5273 name = "django_evolution-0.6.9";
5274 disabled = isPy3k;
5275
5276 src = pkgs.fetchurl {
5277 url = "http://downloads.reviewboard.org/releases/django-evolution/${name}.tar.gz";
5278 md5 = "c0d7d10bc41898c88b14d434c48766ff";
5279 };
5280
5281 propagatedBuildInputs = with self; [ django_1_5 ];
5282
5283 meta = {
5284 description = "A database schema evolution tool for the Django web framework";
5285 homepage = http://code.google.com/p/django-evolution/;
5286 };
5287 };
5288
5289
5290 django_tagging = buildPythonPackage rec {
5291 name = "django-tagging-0.3.1";
5292
5293 src = pkgs.fetchurl {
5294 url = "http://pypi.python.org/packages/source/d/django-tagging/${name}.tar.gz";
5295 md5 = "a0855f2b044db15f3f8a025fa1016ddf";
5296 };
5297
5298 # error: invalid command 'test'
5299 doCheck = false;
5300
5301 propagatedBuildInputs = with self; [ django_1_3 ];
5302
5303 meta = {
5304 description = "A generic tagging application for Django projects";
5305 homepage = http://code.google.com/p/django-tagging/;
5306 };
5307 };
5308
5309
5310 django_classytags = buildPythonPackage rec {
5311 name = "django-classy-tags-${version}";
5312 version = "0.6.1";
5313
5314 src = pkgs.fetchurl {
5315 url = "http://pypi.python.org/packages/source/d/django-classy-tags/${name}.tar.gz";
5316 md5 = "eb686aa767ad8cf88c1fa0f400a42516";
5317 sha256 = "0wxvpmjdzk0aajk33y4himn3wqjx7k0aqlka9j8ay3yfav78bdq0";
5318 };
5319
5320 propagatedBuildInputs = with self; [ django_1_7 ];
5321
5322 # tests appear to be broken on 0.6.1 at least
5323 doCheck = ( version != "0.6.1" );
5324
5325 meta = {
5326 description = "Class based template tags for Django";
5327 homepage = https://github.com/ojii/django-classy-tags;
5328 license = licenses.bsd3;
5329 };
5330 };
5331
5332
5333 django_reversion = buildPythonPackage rec {
5334 name = "django-reversion-${version}";
5335 version = "1.8.5";
5336
5337 src = pkgs.fetchurl {
5338 url = "http://pypi.python.org/packages/source/d/django-reversion/${name}.tar.gz";
5339 md5 = "2de5a3fe82aaf505c134570f96fcc7a8";
5340 sha256 = "0z8fxvxgbxfnalr5br74rsw6g42nry2q656rx7rsgmicd8n42v2r";
5341 };
5342
5343 propagatedBuildInputs = with self; [ django_1_7 ] ++
5344 (optionals (pythonOlder "2.7") [ importlib ordereddict ]);
5345
5346 meta = {
5347 description = "An extension to the Django web framework that provides comprehensive version control facilities";
5348 homepage = https://github.com/etianen/django-reversion;
5349 license = licenses.bsd3;
5350 };
5351 };
5352
5353
5354 django_pipeline = buildPythonPackage rec {
5355 name = "django-pipeline-${version}";
5356 version = "1.5.1";
5357
5358 src = pkgs.fetchurl {
5359 url = "http://pypi.python.org/packages/source/d/django-pipeline/${name}.tar.gz";
5360 md5 = "dff8a4abb2895ee5df335c3fb2775a02";
5361 sha256 = "1y49fa8jj7x9qjj5wzhns3zxwj0s73sggvkrv660cqw5qb7d8hha";
5362 };
5363
5364 propagatedBuildInputs = with self; [ django futures ];
5365
5366 meta = with stdenv.lib; {
5367 description = "Pipeline is an asset packaging library for Django.";
5368 homepage = https://github.com/cyberdelia/django-pipeline;
5369 license = stdenv.lib.licenses.mit;
5370 };
5371 };
5372
5373
5374 djblets = buildPythonPackage rec {
5375 name = "Djblets-0.6.28";
5376
5377 src = pkgs.fetchurl {
5378 url = "http://downloads.reviewboard.org/releases/Djblets/0.6/${name}.tar.gz";
5379 sha256 = "11fsi911cqkjgv9j7646ljc2fgxsdfyq44kzmv01xhysm50fn6xx";
5380 };
5381
5382 propagatedBuildInputs = with self; [ pil django_1_3 feedparser ];
5383
5384 meta = {
5385 description = "A collection of useful extensions for Django";
5386 homepage = https://github.com/djblets/djblets;
5387 };
5388 };
5389
5390
5391 dulwich = buildPythonPackage rec {
5392 name = "dulwich-${version}";
5393 version = "0.10.1a";
5394
5395 src = pkgs.fetchurl {
5396 url = "https://pypi.python.org/packages/source/d/dulwich/${name}.tar.gz";
5397 sha256 = "02rknqarwy7p50693cqswbibqwgxzrfzdq4yhwqxbdmhbsmh0rk6";
5398 };
5399
5400 # Only test dependencies
5401 buildInputs = with self; [ pkgs.git gevent geventhttpclient mock fastimport ];
5402
5403 meta = {
5404 description = "Simple Python implementation of the Git file formats and protocols";
5405 homepage = http://samba.org/~jelmer/dulwich/;
5406 license = licenses.gpl2Plus;
5407 maintainers = with maintainers; [ koral ];
5408 };
5409 };
5410
5411
5412 hg-git = buildPythonPackage rec {
5413 name = "hg-git-${version}";
5414 version = "0.8.1";
5415
5416 src = pkgs.fetchurl {
5417 url = "http://pypi.python.org/packages/source/h/hg-git/${name}.tar.gz";
5418 sha256 = "07a5p5wfs60hmzv3h64fysvm91ablhiaf5ccpv3f8q61insdzvff";
5419 };
5420
5421 propagatedBuildInputs = with self; [ dulwich ];
5422
5423 meta = {
5424 description = "Push and pull from a Git server using Mercurial";
5425 homepage = http://hg-git.github.com/;
5426 maintainers = with maintainers; [ koral ];
5427 };
5428 };
5429
5430
5431 docutils = buildPythonPackage rec {
5432 name = "docutils-0.12";
5433
5434 src = pkgs.fetchurl {
5435 url = "mirror://sourceforge/docutils/${name}.tar.gz";
5436 md5 = "4622263b62c5c771c03502afa3157768";
5437 };
5438
5439 # error: invalid command 'test'
5440 doCheck = false;
5441
5442 meta = {
5443 description = "An open-source text processing system for processing plaintext documentation into useful formats, such as HTML or LaTeX";
5444 homepage = http://docutils.sourceforge.net/;
5445 maintainers = with maintainers; [ garbas ];
5446 };
5447 };
5448
5449 doxypy = buildPythonPackage rec {
5450 name = "doxypy-0.4.2";
5451
5452 src = pkgs.fetchurl {
5453 url = "http://code.foosel.org/files/${name}.tar.gz";
5454 sha256 = "1afmb30zmy7942b53qa5vd3js883wwqqls35n8xfb3rnj0qnll8g";
5455 };
5456
5457 meta = {
5458 homepage = http://code.foosel.org/doxypy;
5459 description = "An input filter for Doxygen";
5460 };
5461
5462 doCheck = false;
5463 };
5464
5465
5466 dtopt = buildPythonPackage rec {
5467 name = "dtopt-0.1";
5468
5469 src = pkgs.fetchurl {
5470 url = "http://pypi.python.org/packages/source/d/dtopt/${name}.tar.gz";
5471 md5 = "9a41317149e926fcc408086aedee6bab";
5472 };
5473
5474 meta = {
5475 description = "Add options to doctest examples while they are running";
5476 homepage = http://pypi.python.org/pypi/dtopt;
5477 };
5478 };
5479
5480
5481 ecdsa = buildPythonPackage rec {
5482 name = "ecdsa-${version}";
5483 version = "0.11";
5484
5485 src = pkgs.fetchurl {
5486 url = "http://pypi.python.org/packages/source/e/ecdsa/${name}.tar.gz";
5487 md5 = "8ef586fe4dbb156697d756900cb41d7c";
5488 };
5489
5490 # Only needed for tests
5491 buildInputs = with self; [ pkgs.openssl ];
5492
5493 meta = {
5494 description = "ECDSA cryptographic signature library";
5495 homepage = "https://github.com/warner/python-ecdsa";
5496 license = licenses.mit;
5497 maintainers = with maintainers; [ aszlig ];
5498 };
5499 };
5500
5501
5502 elpy = buildPythonPackage rec {
5503 name = "elpy-1.0.1";
5504 src = pkgs.fetchurl {
5505 url = "http://pypi.python.org/packages/source/e/elpy/elpy-1.0.1.tar.gz";
5506 md5 = "5453f085f7871ed8fc11d51f0b68c785";
5507 };
5508 propagatedBuildInputs = with self; [ flake8 ];
5509
5510 doCheck = false; # there are no tests
5511
5512 meta = {
5513 description = "Backend for the elpy Emacs mode";
5514 homepage = "https://github.com/jorgenschaefer/elpy";
5515 };
5516 };
5517
5518
5519 enum = buildPythonPackage rec {
5520 name = "enum-0.4.4";
5521 disabled = isPy3k;
5522
5523 src = pkgs.fetchurl {
5524 url = "http://pypi.python.org/packages/source/e/enum/${name}.tar.gz";
5525 md5 = "ce75c7c3c86741175a84456cc5bd531e";
5526 };
5527
5528 doCheck = !isPyPy;
5529
5530 buildInputs = with self; [ ];
5531
5532 propagatedBuildInputs = with self; [ ];
5533
5534 meta = {
5535 homepage = http://pypi.python.org/pypi/enum/;
5536 description = "Robust enumerated type support in Python";
5537 };
5538 };
5539
5540 enum34 = buildPythonPackage rec {
5541 name = "enum34-${version}";
5542 version = "1.0.4";
5543 disabled = pythonAtLeast "3.4";
5544
5545 src = pkgs.fetchurl {
5546 url = "http://pypi.python.org/packages/source/e/enum34/${name}.tar.gz";
5547 sha256 = "0iz4jjdvdgvfllnpmd92qxj5fnfxqpgmjpvpik0jjim3lqk9zhfk";
5548 };
5549
5550 buildInputs = optional isPy26 self.ordereddict;
5551
5552 meta = {
5553 homepage = https://pypi.python.org/pypi/enum34;
5554 description = "Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4";
5555 license = "BSD";
5556 };
5557 };
5558
5559 epc = buildPythonPackage rec {
5560 name = "epc-0.0.3";
5561 src = pkgs.fetchurl {
5562 url = "http://pypi.python.org/packages/source/e/epc/${name}.tar.gz";
5563 md5 = "04a93c0cd32b496969ead09f414dac74";
5564 };
5565
5566 propagatedBuildInputs = with self; [ sexpdata ];
5567 doCheck = false;
5568
5569 meta = {
5570 description = "EPC (RPC stack for Emacs Lisp) implementation in Python";
5571 homepage = "https://github.com/tkf/python-epc";
5572 };
5573 };
5574
5575 eventlet = buildPythonPackage rec {
5576 name = "eventlet-0.16.1";
5577
5578 src = pkgs.fetchurl {
5579 url = "http://pypi.python.org/packages/source/e/eventlet/${name}.tar.gz";
5580 md5 = "58f6e5cd1bcd8ab78e32a2594aa0abad";
5581 };
5582
5583 buildInputs = with self; [ nose httplib2 pyopenssl ];
5584
5585 doCheck = false; # too much transient errors to bother
5586
5587 propagatedBuildInputs = optionals (!isPyPy) [ self.greenlet ];
5588
5589 meta = {
5590 homepage = http://pypi.python.org/pypi/eventlet/;
5591 description = "A concurrent networking library for Python";
5592 };
5593 };
5594
5595 fastimport = buildPythonPackage rec {
5596 name = "fastimport-${version}";
5597 version = "0.9.4";
5598
5599 src = pkgs.fetchurl {
5600 url = "https://pypi.python.org/packages/source/f/fastimport/${name}.tar.gz";
5601 sha256 = "0k8x7552ypx9rc14vbsvg2lc6z0r8pv9laah28pdwyynbq10825d";
5602 };
5603
5604 meta = {
5605 homepage = https://launchpad.net/python-fastimport;
5606 description = "VCS fastimport/fastexport parser";
5607 maintainers = with maintainers; [ koral ];
5608 license = licenses.gpl2Plus;
5609 };
5610 };
5611
5612 feedgenerator = buildPythonPackage (rec {
5613 name = "feedgenerator-1.7";
5614
5615 src = pkgs.fetchurl {
5616 url = "https://pypi.python.org/packages/source/f/feedgenerator/${name}.tar.gz";
5617 md5 = "92978492871342ad64e8ae0ccfcf200c";
5618 };
5619
5620 buildInputs = [ pkgs.glibcLocales ];
5621
5622 preConfigure = ''
5623 export LC_ALL="en_US.UTF-8"
5624 '';
5625
5626 propagatedBuildInputs = with self; [ six pytz ];
5627
5628 meta = {
5629 description = "Standalone version of django.utils.feedgenerator, compatible with Py3k";
5630 homepage = https://github.com/dmdm/feedgenerator-py3k.git;
5631 maintainers = with maintainers; [ garbas ];
5632 };
5633 });
5634
5635 feedparser = buildPythonPackage (rec {
5636 name = "feedparser-5.1.3";
5637
5638 src = pkgs.fetchurl {
5639 url = "http://pypi.python.org/packages/source/f/feedparser/${name}.tar.gz";
5640 md5 = "f2253de78085a1d5738f626fcc1d8f71";
5641 };
5642
5643 meta = {
5644 homepage = http://code.google.com/p/feedparser/;
5645 description = "Universal feed parser";
5646 license = licenses.bsd2;
5647 maintainers = with maintainers; [ iElectric ];
5648 };
5649 });
5650
5651 pyfribidi = buildPythonPackage rec {
5652 version = "0.11.0";
5653 name = "pyfribidi-${version}";
5654 disabled = isPy3k;
5655
5656 src = pkgs.fetchurl {
5657 url = "https://pypi.python.org/packages/source/p/pyfribidi/${name}.zip";
5658 md5 = "a3fc1f9d34571305782d1a54ee36f904";
5659 };
5660
5661 meta = {
5662 description = "A simple wrapper around fribidi";
5663 homepage = https://github.com/pediapress/pyfribidi;
5664 license = stdenv.lib.licenses.gpl2;
5665 };
5666 };
5667
5668 docker_compose = buildPythonPackage rec {
5669 version = "1.4.0";
5670 name = "docker-compose-${version}";
5671 namePrefix = "";
5672 disabled = isPy3k || isPyPy;
5673
5674 src = pkgs.fetchurl {
5675 url = "https://pypi.python.org/packages/source/d/docker-compose/${name}.tar.gz";
5676 md5 = "a93e801ebe829c2f869cb23d0b606272";
5677 };
5678
5679 propagatedBuildInputs = with self; [
5680 six requests pyyaml texttable docopt docker dockerpty websocket_client
5681 (requests2.override {
5682 src = pkgs.fetchurl {
5683 url = "https://pypi.python.org/packages/source/r/requests/requests-2.6.1.tar.gz";
5684 md5 = "da6e487f89e6a531699b7fd97ff182af";
5685 };
5686 })
5687 ];
5688
5689 doCheck = false;
5690
5691 meta = {
5692 homepage = http://www.fig.sh/;
5693 description = "Fast, isolated development environments using Docker";
5694 license = licenses.asl20;
5695 };
5696 };
5697
5698 filebrowser_safe = buildPythonPackage rec {
5699 version = "0.3.6";
5700 name = "filebrowser_safe-${version}";
5701
5702 src = pkgs.fetchurl {
5703 url = "http://pypi.python.org/packages/source/f/filebrowser_safe/${name}.tar.gz";
5704 md5 = "12a1ad3a1ed6a9377e758c4fa7fee570";
5705 };
5706
5707 meta = {
5708 description = "A snapshot of django-filebrowser for the Mezzanine CMS";
5709 longDescription = ''
5710 filebrowser_safe was created to provide a snapshot of the FileBrowser
5711 asset manager for Django, to be referenced as a dependency for the
5712 Mezzanine CMS for Django.
5713
5714 At the time of filebrowser_safe's creation, FileBrowser was incorrectly
5715 packaged on PyPI, and had also dropped compatibility with Django 1.1 -
5716 filebrowser_safe was therefore created to address these specific
5717 issues.
5718 '';
5719 homepage = https://github.com/stephenmcd/filebrowser-safe;
5720 downloadPage = https://pypi.python.org/pypi/filebrowser_safe/;
5721 license = licenses.free;
5722 maintainers = with maintainers; [ prikhi ];
5723 platforms = platforms.linux;
5724 };
5725 };
5726
5727 flake8 = buildPythonPackage (rec {
5728 name = "flake8-2.3.0";
5729
5730 src = pkgs.fetchurl {
5731 url = "http://pypi.python.org/packages/source/f/flake8/${name}.tar.gz";
5732 md5 = "488d6166f6b9ef9fe9d433b95e77dc07";
5733 };
5734
5735 buildInputs = with self; [ nose mock ];
5736 propagatedBuildInputs = with self; [ pyflakes pep8 mccabe ];
5737
5738 # 3 failing tests
5739 #doCheck = false;
5740
5741 meta = {
5742 description = "Code checking using pep8 and pyflakes";
5743 homepage = http://pypi.python.org/pypi/flake8;
5744 license = licenses.mit;
5745 maintainers = with maintainers; [ garbas ];
5746 };
5747 });
5748
5749
5750 flask = buildPythonPackage {
5751 name = "flask-0.10.1";
5752
5753 src = pkgs.fetchurl {
5754 url = "http://pypi.python.org/packages/source/F/Flask/Flask-0.10.1.tar.gz";
5755 md5 = "378670fe456957eb3c27ddaef60b2b24";
5756 };
5757
5758 propagatedBuildInputs = with self; [ werkzeug jinja2 ];
5759
5760 meta = {
5761 homepage = http://flask.pocoo.org/;
5762 description = "A microframework based on Werkzeug, Jinja 2, and good intentions";
5763 license = "BSD";
5764 };
5765 };
5766
5767 flask_cache = buildPythonPackage rec {
5768 name = "Flask-Cache-0.13.1";
5769
5770 src = pkgs.fetchurl {
5771 url = "https://pypi.python.org/packages/source/F/Flask-Cache/${name}.tar.gz";
5772 md5 = "ab82a9cd0844891ccdb54fbb93fd6c59";
5773 };
5774
5775 propagatedBuildInputs = with self; [ werkzeug flask ];
5776
5777 meta = {
5778 homepage = https://github.com/thadeusb/flask-cache;
5779 description = "Adds cache support to your Flask application";
5780 license = "BSD";
5781 };
5782 };
5783
5784 wtforms = buildPythonPackage rec {
5785 version = "2.0.2";
5786 name = "wtforms-${version}";
5787
5788 src = pkgs.fetchurl {
5789 url = "https://pypi.python.org/packages/source/W/WTForms/WTForms-${version}.zip";
5790 md5 = "613cf723ab40537705bec02733c78d95";
5791 };
5792
5793 propagatedBuildInputs = with self; [ ordereddict Babel ];
5794
5795 meta = {
5796 homepage = https://github.com/wtforms/wtforms;
5797 description = "A flexible forms validation and rendering library for Python";
5798 license = licenses.bsd3;
5799 };
5800 };
5801
5802 flexget = buildPythonPackage rec {
5803 version = "1.2.337";
5804 name = "FlexGet-${version}";
5805 disabled = isPy3k;
5806
5807 src = pkgs.fetchurl {
5808 url = "https://pypi.python.org/packages/source/F/FlexGet/${name}.tar.gz";
5809 md5 = "2c249c43bc594726f908b1425a8b8081";
5810 };
5811
5812 doCheck = false;
5813
5814 buildInputs = with self; [ nose ];
5815 propagatedBuildInputs = with self; [ paver feedparser sqlalchemy9 pyyaml rpyc
5816 beautifulsoup4 html5lib pyrss2gen pynzb progressbar jinja2 flask
5817 cherrypy requests dateutil_2_1 jsonschema python_tvrage tmdb3
5818 guessit pathpy apscheduler ]
5819 # enable deluge and transmission plugin support, if they're installed
5820 ++ stdenv.lib.optional (pkgs.config.pythonPackages.deluge or false)
5821 pythonpackages.deluge
5822 ++ stdenv.lib.optional (pkgs.transmission != null)
5823 self.transmissionrpc;
5824
5825 meta = {
5826 homepage = http://flexget.com/;
5827 description = "Multipurpose automation tool for content like torrents";
5828 license = licenses.mit;
5829 maintainers = with maintainers; [ iElectric ];
5830 };
5831 };
5832
5833 # py3k disabled, see https://travis-ci.org/NixOS/nixpkgs/builds/48759067
5834 graph-tool = if isPy3k then throw "graph-tool in Nix doesn't support py3k yet"
5835 else callPackage ../development/python-modules/graph-tool/2.x.x.nix { };
5836
5837 grappelli_safe = buildPythonPackage rec {
5838 version = "0.3.13";
5839 name = "grappelli_safe-${version}";
5840
5841 src = pkgs.fetchurl {
5842 url = "http://pypi.python.org/packages/source/g/grappelli_safe/${name}.tar.gz";
5843 md5 = "5c8c681a0b1df94ecd6dc0b3a8b80892";
5844 };
5845
5846 meta = {
5847 description = "A snapshot of django-grappelli for the Mezzanine CMS";
5848 longDescription = ''
5849 grappelli_safe was created to provide a snapshot of the Grappelli admin
5850 skin for Django, to be referenced as a dependency for the Mezzanine CMS
5851 for Django.
5852
5853 At the time of grappelli_safe's creation, Grappelli was incorrectly
5854 packaged on PyPI, and had also dropped compatibility with Django 1.1 -
5855 grappelli_safe was therefore created to address these specific issues.
5856 '';
5857 homepage = https://github.com/stephenmcd/grappelli-safe;
5858 downloadPage = http://pypi.python.org/pypi/grappelli_safe/;
5859 license = licenses.free;
5860 maintainers = with maintainers; [ prikhi ];
5861 platforms = platforms.linux;
5862 };
5863 };
5864
5865 python_tvrage = buildPythonPackage (rec {
5866 version = "0.4.1";
5867 name = "tvrage-${version}";
5868
5869 src = pkgs.fetchurl {
5870 url = "https://pypi.python.org/packages/source/p/python-tvrage/python-tvrage-${version}.tar.gz";
5871 md5 = "cdfec252158c5047b626861900186dfb";
5872 };
5873
5874 # has mostly networking dependent tests
5875 doCheck = false;
5876 propagatedBuildInputs = with self; [ beautifulsoup ];
5877
5878 meta = {
5879 homepage = https://github.com/ckreutzer/python-tvrage;
5880 description = "Client interface for tvrage.com's XML-based api feeds";
5881 license = licenses.bsd3;
5882 maintainers = with maintainers; [ iElectric ];
5883 };
5884 });
5885
5886 jsonschema = buildPythonPackage (rec {
5887 version = "2.4.0";
5888 name = "jsonschema-${version}";
5889
5890 src = pkgs.fetchurl {
5891 url = "https://pypi.python.org/packages/source/j/jsonschema/jsonschema-${version}.tar.gz";
5892 md5 = "661f85c3d23094afbb9ac3c0673840bf";
5893 };
5894
5895 buildInputs = with self; [ nose mock ];
5896
5897 patchPhase = ''
5898 substituteInPlace jsonschema/tests/test_jsonschema_test_suite.py --replace "python" "${python}/bin/${python.executable}"
5899 '';
5900
5901 checkPhase = ''
5902 nosetests
5903 '';
5904
5905 meta = {
5906 homepage = https://github.com/Julian/jsonschema;
5907 description = "An implementation of JSON Schema validation for Python";
5908 license = licenses.mit;
5909 maintainers = with maintainers; [ iElectric ];
5910 };
5911 });
5912
5913 falcon = buildPythonPackage (rec {
5914 name = "falcon-0.3.0";
5915
5916 src = pkgs.fetchurl {
5917 url = "https://pypi.python.org/packages/source/f/falcon/${name}.tar.gz";
5918 sha256 = "10ivzk88m8nn3bqbg6xgv6yfy2dgp6yzbcvr645y93pzlash4xpj";
5919 };
5920
5921 propagatedBuildInputs = with self; [ coverage ddt nose pyyaml requests2 six testtools python_mimeparse ];
5922
5923 # The travis build fails since the migration from multiprocessing to threading for hosting the API under test.
5924 # OSError: [Errno 98] Address already in use
5925 doCheck = false;
5926
5927 # This patch is required if the tests are enabled
5928 # See https://github.com/falconry/falcon/issues/572
5929 #patches = singleton (pkgs.fetchurl {
5930 # name = "falcon-572.patch";
5931 # url = "https://github.com/desiderius/falcon/commit/088bd3f2204eb6368acb3a1bf6c6b54c415225c2.patch";
5932 # sha256 = "19102dlzc4890skmam2v20va2vk5xr56fi4nzibzfvl7vyq68060";
5933 #});
5934
5935 meta = {
5936 description = "An unladen web framework for building APIs and app backends";
5937 homepage = http://falconframework.org;
5938 license = licenses.asl20;
5939 maintainers = with maintainers; [ desiderius ];
5940 };
5941 });
5942
5943 flup = buildPythonPackage (rec {
5944 name = "flup-1.0.2";
5945 disabled = isPy3k;
5946
5947 src = pkgs.fetchurl {
5948 url = "http://www.saddi.com/software/flup/dist/${name}.tar.gz";
5949 sha256 = "1nbx174g40l1z3a8arw72qz05a1qxi3didp9wm7kvkn1bxx33bab";
5950 };
5951
5952 meta = {
5953 homepage = "http://trac.saddi.com/flup";
5954 description = "FastCGI Python module set";
5955 };
5956 });
5957
5958 fonttools = buildPythonPackage (rec {
5959 version = "2.4";
5960 name = "fonttools-${version}";
5961 disabled = isPy3k;
5962
5963 src = pkgs.fetchurl {
5964 url = "https://pypi.python.org/packages/source/F/FontTools/FontTools-${version}.tar.gz";
5965 sha256 = "13ggkzcj34kcca6bsxjkaqsxkp2bvxxf6ijiyhq1xlyb0z37z4qa";
5966 };
5967
5968 buildInputs = with self; [
5969 numpy
5970 ];
5971
5972 meta = {
5973 homepage = "http://sourceforge.net/projects/fonttools/";
5974 description = "Font file processing tools";
5975 };
5976 });
5977
5978 foolscap = buildPythonPackage (rec {
5979 name = "foolscap-0.6.4";
5980
5981 src = pkgs.fetchurl {
5982 url = "http://foolscap.lothar.com/releases/${name}.tar.gz";
5983 sha256 = "16cddyk5is0gjfn0ia5n2l4lhdzvbjzlx6sfpy7ddjd3d3fq7ckl";
5984 };
5985
5986 propagatedBuildInputs = [ self.twisted self.pyopenssl ];
5987
5988 meta = {
5989 homepage = http://foolscap.lothar.com/;
5990
5991 description = "Foolscap, an RPC protocol for Python that follows the distributed object-capability model";
5992
5993 longDescription = ''
5994 "Foolscap" is the name for the next-generation RPC protocol,
5995 intended to replace Perspective Broker (part of Twisted).
5996 Foolscap is a protocol to implement a distributed
5997 object-capabilities model in Python.
5998 '';
5999
6000 # See http://foolscap.lothar.com/trac/browser/LICENSE.
6001 license = licenses.mit;
6002
6003 maintainers = [ ];
6004 };
6005 });
6006
6007 fs = buildPythonPackage rec {
6008 name = "fs-0.5.0";
6009
6010 src = pkgs.fetchurl {
6011 url = "https://pypi.python.org/packages/source/f/fs/${name}.tar.gz";
6012 sha256 = "144f4yn2nvnxh2vrnmiabpwx3s637np0d1j1w95zym790d66shir";
6013 };
6014
6015 meta = {
6016 description = "Filesystem abstraction";
6017 homepage = http://pypi.python.org/pypi/fs;
6018 license = licenses.bsd3;
6019 maintainers = with maintainers; [ lovek323 ];
6020 platforms = platforms.unix;
6021 };
6022
6023 # Fails: "error: invalid command 'test'"
6024 doCheck = false;
6025 };
6026
6027 fuse = buildPythonPackage (rec {
6028 baseName = "fuse";
6029 version = "0.2.1";
6030 name = "${baseName}-${version}";
6031 disabled = isPy3k;
6032
6033 src = pkgs.fetchurl {
6034 url = "mirror://sourceforge/fuse/fuse-python-${version}.tar.gz";
6035 sha256 = "06rmp1ap6flh64m81j0n3a357ij2vj9zwcvvw0p31y6hz1id9shi";
6036 };
6037
6038 buildInputs = with self; [ pkgs.pkgconfig pkgs.fuse ];
6039
6040 meta = {
6041 description = "Python bindings for FUSE";
6042 license = licenses.lgpl21;
6043 };
6044 });
6045
6046 fusepy = buildPythonPackage rec {
6047 name = "fusepy-2.0.2";
6048
6049 src = pkgs.fetchurl {
6050 url = "https://pypi.python.org/packages/source/f/fusepy/${name}.tar.gz";
6051 sha256 = "1z0va3z1hzjw167skl21k9dsklbmr46k66j80qadibjc8vajjnda";
6052 };
6053
6054 propagatedBuildInputs = [ pkgs.fuse ];
6055
6056 patchPhase = ''
6057 substituteInPlace fuse.py --replace \
6058 "find_library('fuse')" "'${pkgs.fuse}/lib/libfuse.so'"
6059 '';
6060
6061 meta = {
6062 description = "Simple ctypes bindings for FUSE";
6063 longDescription = ''
6064 Python module that provides a simple interface to FUSE and MacFUSE.
6065 It's just one file and is implemented using ctypes.
6066 '';
6067 homepage = http://github.com/terencehonles/fusepy;
6068 license = licenses.isc;
6069 platforms = with platforms; linux;
6070 maintainers = with maintainers; [ nckx ];
6071 };
6072 };
6073
6074 future = buildPythonPackage rec {
6075 version = "v0.14.3";
6076 name = "future-${version}";
6077
6078 src = pkgs.fetchurl {
6079 url = "http://github.com/PythonCharmers/python-future/archive/${version}.tar.gz";
6080 sha256 = "0hgp9kq7h4ipw8ax5xvvkyh3bkqw361d3rndvb9xix01h9j9mi3p";
6081 };
6082
6083 propagatedBuildInputs = with self; optionals isPy26 [ importlib argparse ];
6084 doCheck = false;
6085
6086 meta = {
6087 description = "Clean single-source support for Python 3 and 2";
6088 longDescription = ''
6089 python-future is the missing compatibility layer between Python 2 and
6090 Python 3. It allows you to use a single, clean Python 3.x-compatible
6091 codebase to support both Python 2 and Python 3 with minimal overhead.
6092
6093 It provides future and past packages with backports and forward ports
6094 of features from Python 3 and 2. It also comes with futurize and
6095 pasteurize, customized 2to3-based scripts that helps you to convert
6096 either Py2 or Py3 code easily to support both Python 2 and 3 in a
6097 single clean Py3-style codebase, module by module.
6098 '';
6099 homepage = https://python-future.org;
6100 downloadPage = https://github.com/PythonCharmers/python-future/releases;
6101 license = licenses.mit;
6102 maintainers = with maintainers; [ prikhi ];
6103 platforms = platforms.linux;
6104 };
6105 };
6106
6107 futures = buildPythonPackage rec {
6108 name = "futures-3.0.2";
6109
6110 src = pkgs.fetchurl {
6111 url = "https://pypi.python.org/packages/source/f/futures/${name}.tar.gz";
6112 md5 = "42aaf1e4de48d6e871d77dc1f9d96d5a";
6113 };
6114
6115 meta = with pkgs.stdenv.lib; {
6116 description = "Backport of the concurrent.futures package from Python 3.2";
6117 homepage = "https://github.com/agronholm/pythonfutures";
6118 license = licenses.bsd2;
6119 maintainers = with maintainers; [ garbas ];
6120 };
6121 };
6122
6123 gcovr = buildPythonPackage rec {
6124 name = "gcovr-2.4";
6125
6126 src = pkgs.fetchurl {
6127 url = "http://pypi.python.org/packages/source/g/gcovr/${name}.tar.gz";
6128 md5 = "672db629469882b93c40016aebff50ac";
6129 };
6130
6131 meta = {
6132 description = "A Python script for summarizing gcov data";
6133 license = "BSD";
6134 };
6135 };
6136
6137 gdrivefs = buildPythonPackage rec {
6138 version = "0.14.3";
6139 name = "gdrivefs-${version}";
6140 disabled = !isPy27;
6141
6142 src = pkgs.fetchFromGitHub {
6143 sha256 = "1ljkh1871lwzn5lhhgbmbf2hfnbnajr3ddz3q5n1kid25qb3l086";
6144 rev = version;
6145 repo = "GDriveFS";
6146 owner = "dsoprea";
6147 };
6148
6149 buildInputs = with self; [ gipc greenlet httplib2 six ];
6150 propagatedBuildInputs = with self; [ dateutil fusepy google_api_python_client ];
6151
6152 patchPhase = ''
6153 substituteInPlace gdrivefs/resources/requirements.txt \
6154 --replace "==" ">="
6155 '';
6156
6157 meta = {
6158 description = "Mount Google Drive as a local file system";
6159 longDescription = ''
6160 GDriveFS is a FUSE wrapper for Google Drive developed. Design goals:
6161 - Thread for monitoring changes via "changes" functionality of API.
6162 - Complete stat() implementation.
6163 - Seamlessly work around duplicate-file allowances in Google Drive.
6164 - Seamlessly manage file-type versatility in Google Drive
6165 (Google Doc files do not have a particular format).
6166 - Allow for the same file at multiple paths.
6167 '';
6168 homepage = https://github.com/dsoprea/GDriveFS;
6169 license = licenses.gpl2;
6170 platforms = with platforms; linux;
6171 maintainers = with maintainers; [ nckx ];
6172 };
6173 };
6174
6175 genshi = buildPythonPackage {
6176 name = "genshi-0.7";
6177
6178 src = pkgs.fetchurl {
6179 url = http://ftp.edgewall.com/pub/genshi/Genshi-0.7.tar.gz;
6180 sha256 = "0lkkbp6fbwzv0zda5iqc21rr7rdldkwh3hfabfjl9i4bwq14858x";
6181 };
6182
6183 # FAIL: test_sanitize_remove_script_elem (genshi.filters.tests.html.HTMLSanitizerTestCase)
6184 # FAIL: test_sanitize_remove_src_javascript (genshi.filters.tests.html.HTMLSanitizerTestCase)
6185 doCheck = false;
6186
6187 buildInputs = with self; [ pkgs.setuptools ];
6188
6189 meta = {
6190 description = "Python components for parsing HTML, XML and other textual content";
6191
6192 longDescription = ''
6193 Python library that provides an integrated set of
6194 components for parsing, generating, and processing HTML, XML or other
6195 textual content for output generation on the web.
6196 '';
6197
6198 license = "BSD";
6199 };
6200 };
6201
6202 gevent = buildPythonPackage rec {
6203 name = "gevent-1.0.2";
6204 disabled = isPy3k || isPyPy; # see https://github.com/surfly/gevent/issues/248
6205
6206 src = pkgs.fetchurl {
6207 url = "https://pypi.python.org/packages/source/g/gevent/${name}.tar.gz";
6208 sha256 = "0cds7yvwdlqmd590i59vzxaviwxk4js6dkhnmdxb3p1xac7wmq9s";
6209 };
6210
6211 patchPhase = ''
6212 pushd libev
6213 patch -p1 < ${../development/libraries/libev/noreturn.patch}
6214 popd
6215 '';
6216
6217 buildInputs = with self; [ pkgs.libev ];
6218 propagatedBuildInputs = optionals (!isPyPy) [ self.greenlet ];
6219
6220 meta = {
6221 description = "Coroutine-based networking library";
6222 homepage = http://www.gevent.org/;
6223 license = licenses.mit;
6224 platforms = platforms.linux;
6225 maintainers = with maintainers; [ bjornfor ];
6226 };
6227 };
6228
6229 geventhttpclient = buildPythonPackage rec {
6230 name = "geventhttpclient-${version}";
6231 version = "1.1.0";
6232
6233 src = pkgs.fetchurl {
6234 url = "https://pypi.python.org/packages/source/g/geventhttpclient/${name}.tar.gz";
6235 sha256 = "1k7s4dnkmcfqqkmbqi0vvb2ns53r9cl2652mq20bgg65zj26j2l6";
6236 };
6237
6238 propagatedBuildInputs = with self; [ gevent certifi backports_ssl_match_hostname_3_4_0_2 ];
6239
6240 meta = {
6241 homepage = http://github.com/gwik/geventhttpclient;
6242 description = "HTTP client library for gevent";
6243 license = licenses.mit;
6244 maintainers = with maintainers; [ koral ];
6245 };
6246 };
6247
6248 gevent-socketio = buildPythonPackage rec {
6249 name = "gevent-socketio-0.3.6";
6250
6251 src = pkgs.fetchurl {
6252 url = "https://pypi.python.org/packages/source/g/gevent-socketio/${name}.tar.gz";
6253 sha256 = "1zra86hg2l1jcpl9nsnqagy3nl3akws8bvrbpgdxk15x7ywllfak";
6254 };
6255
6256 buildInputs = with self; [ versiontools gevent-websocket mock pytest ];
6257 propagatedBuildInputs = with self; [ gevent ];
6258
6259 };
6260
6261 gevent-websocket = buildPythonPackage rec {
6262 name = "gevent-websocket-0.9.3";
6263
6264 src = pkgs.fetchurl {
6265 url = "https://pypi.python.org/packages/source/g/gevent-websocket/${name}.tar.gz";
6266 sha256 = "07rqwfpbv13mk6gg8mf0bmvcf6siyffjpgai1xd8ky7r801j4xb4";
6267 };
6268
6269 propagatedBuildInputs = with self; [ gevent ];
6270
6271 };
6272
6273 genzshcomp = buildPythonPackage {
6274 name = "genzshcomp-0.5.1";
6275
6276 src = pkgs.fetchurl {
6277 url = "http://pypi.python.org/packages/source/g/genzshcomp/genzshcomp-0.5.1.tar.gz";
6278 md5 = "7a954f1835875002e9044fe55ed1b488";
6279 };
6280
6281 buildInputs = with self; [ pkgs.setuptools ] ++ (optional isPy26 argparse);
6282
6283 meta = {
6284 description = "automatically generated zsh completion function for Python's option parser modules";
6285 license = "BSD";
6286 };
6287 };
6288
6289
6290 gflags = buildPythonPackage rec {
6291 name = "gflags-2.0";
6292
6293 src = pkgs.fetchurl {
6294 url = "http://python-gflags.googlecode.com/files/python-${name}.tar.gz";
6295 sha256 = "1mkc7315bpmh39vbn0jq237jpw34zsrjr1sck98xi36bg8hnc41i";
6296 };
6297
6298 meta = {
6299 homepage = http://code.google.com/p/python-gflags/;
6300 description = "A module for command line handling, similar to Google's gflags for C++";
6301 };
6302 };
6303
6304 gipc = buildPythonPackage rec {
6305 name = "gipc-0.5.0";
6306 disabled = !isPy26 && !isPy27;
6307
6308 src = pkgs.fetchurl {
6309 url = "http://pypi.python.org/packages/source/g/gipc/${name}.zip";
6310 sha256 = "08c35xzv7nr12d9xwlywlbyzzz2igy0yy6y52q2nrkmh5d4slbpc";
6311 };
6312
6313 propagatedBuildInputs = with self; [ gevent ];
6314
6315 meta = {
6316 description = "gevent-cooperative child processes and IPC";
6317 longDescription = ''
6318 Usage of Python's multiprocessing package in a gevent-powered
6319 application may raise problems and most likely breaks the application
6320 in various subtle ways. gipc (pronunciation "gipsy") is developed with
6321 the motivation to solve many of these issues transparently. With gipc,
6322 multiprocessing. Process-based child processes can safely be created
6323 anywhere within your gevent-powered application.
6324 '';
6325 homepage = http://gehrcke.de/gipc;
6326 license = licenses.mit;
6327 maintainers = with maintainers; [ nckx ];
6328 };
6329 };
6330
6331 glance = buildPythonPackage rec {
6332 name = "glance-0.1.7";
6333
6334 src = pkgs.fetchurl {
6335 url = "http://pypi.python.org/packages/source/g/glance/${name}.tar.gz";
6336 md5 = "e733713ccd23e4a6253386a47971cfb5";
6337 };
6338
6339 buildInputs = with self; [ nose mox ];
6340
6341 # tests fail for python2.6
6342 doCheck = python.majorVersion != "2.6";
6343
6344 propagatedBuildInputs = with self; [ gflags sqlalchemy webob routes eventlet ];
6345
6346 PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
6347
6348 meta = {
6349 homepage = https://launchpad.net/glance;
6350 description = "Services for discovering, registering, and retrieving virtual machine images";
6351 };
6352 };
6353
6354 glances = buildPythonPackage rec {
6355 name = "glances-${version}";
6356 version = "2.4.2";
6357 disabled = isPyPy;
6358
6359 src = pkgs.fetchFromGitHub {
6360 owner = "nicolargo";
6361 repo = "glances";
6362 rev = "v${version}";
6363 sha256 = "1ghx62z63yyf8wv4bcvfxwxs5mc7b4nrcss6lc1i5s0yjvzvyi6h";
6364 };
6365
6366 doCheck = false;
6367
6368 buildInputs = with self; [ unittest2 ];
6369 propagatedBuildInputs = with self; [ modules.curses modules.curses_panel psutil setuptools bottle batinfo pkgs.hddtemp pysnmp ];
6370
6371 preConfigure = ''
6372 sed -i 's/data_files\.append((conf_path/data_files.append(("etc\/glances"/' setup.py;
6373 '';
6374
6375 meta = {
6376 homepage = "http://nicolargo.github.io/glances/";
6377 description = "Cross-platform curses-based monitoring tool";
6378 };
6379 };
6380
6381 goobook = buildPythonPackage rec {
6382 name = "goobook-1.6";
6383 disabled = isPy3k;
6384
6385 src = pkgs.fetchurl {
6386 url = "https://pypi.python.org/packages/source/g/goobook/${name}.tar.gz";
6387 sha256 = "05vpriy391l5i05ckl5ja5bswqyvl3rwrbmks9pi46w1813j7p5z";
6388 };
6389
6390 buildInputs = with self; [ ];
6391
6392 preConfigure = ''
6393 sed -i '/distribute/d' setup.py
6394 '';
6395
6396 meta = {
6397 description = "Search your google contacts from the command-line or mutt";
6398 homepage = https://pypi.python.org/pypi/goobook;
6399 license = licenses.gpl3;
6400 maintainers = with maintainers; [ lovek323 hbunke ];
6401 platforms = platforms.unix;
6402 };
6403
6404 propagatedBuildInputs = with self; [ gdata hcs_utils keyring simplejson six];
6405 };
6406
6407 google_api_python_client = buildPythonPackage rec {
6408 name = "google-api-python-client-1.2";
6409
6410 src = pkgs.fetchurl {
6411 url = "https://google-api-python-client.googlecode.com/files/google-api-python-client-1.2.tar.gz";
6412 sha256 = "0xd619w71xk4ldmikxqhaaqn985rc2hy4ljgwfp50jb39afg7crw";
6413 };
6414
6415 propagatedBuildInputs = with self; [ httplib2 ];
6416
6417 meta = {
6418 description = "The core Python library for accessing Google APIs";
6419 homepage = "https://code.google.com/p/google-api-python-client/";
6420 license = licenses.asl20;
6421 platforms = platforms.unix;
6422 };
6423 };
6424
6425 google_apputils = buildPythonPackage rec {
6426 name = "google-apputils-0.4.1";
6427 disabled = isPy3k;
6428
6429 src = pkgs.fetchurl {
6430 url = "http://pypi.python.org/packages/source/g/google-apputils/${name}.tar.gz";
6431 sha256 = "1sxsm5q9vr44qzynj8l7p3l7ffb0zl1jdqhmmzmalkx941nbnj1b";
6432 };
6433
6434 preConfigure = ''
6435 sed -i '/ez_setup/d' setup.py
6436 '';
6437
6438 propagatedBuildInputs = with self; [ pytz gflags dateutil mox ];
6439
6440 checkPhase = ''
6441 ${python.executable} setup.py google_test
6442 '';
6443
6444 doCheck = true;
6445
6446 meta = {
6447 description = "Google Application Utilities for Python";
6448 homepage = http://code.google.com/p/google-apputils-python;
6449 };
6450 };
6451
6452
6453 greenlet = buildPythonPackage rec {
6454 name = "greenlet-${version}";
6455 version = "0.4.7";
6456 disabled = isPyPy; # builtin for pypy
6457
6458 src = pkgs.fetchurl {
6459 url = "https://pypi.python.org/packages/source/g/greenlet/${name}.zip";
6460 sha256 = "1zlmsygjw69xlq56vz1z5ivzy9bwc7knjaykn2yy2hv4w2j4yb7k";
6461 };
6462
6463 # see https://github.com/python-greenlet/greenlet/issues/85
6464 preCheck = ''
6465 rm tests/test_leaks.py
6466 '';
6467
6468 meta = {
6469 homepage = http://pypi.python.org/pypi/greenlet;
6470 description = "Module for lightweight in-process concurrent programming";
6471 license = licenses.lgpl2;
6472 platforms = platforms.all;
6473 };
6474 };
6475
6476 gspread = buildPythonPackage rec {
6477 version = "0.2.3";
6478 name = "gspread-${version}";
6479
6480 src = pkgs.fetchurl {
6481 url = "https://pypi.python.org/packages/source/g/gspread/${name}.tar.gz";
6482 md5 = "5a71e4e3fc509dc1c4d34722f102dec1";
6483 };
6484
6485 meta = {
6486 description = "Google Spreadsheets client library";
6487 homepage = "https://github.com/burnash/gspread";
6488 license = licenses.mit;
6489 };
6490 };
6491
6492 gyp = buildPythonPackage rec {
6493 name = "gyp-${version}";
6494 version = "2015-06-11";
6495
6496 src = pkgs.fetchgit {
6497 url = "https://chromium.googlesource.com/external/gyp.git";
6498 rev = "fdc7b812f99e48c00e9a487bd56751bbeae07043";
6499 sha256 = "176sdxkva2irr1v645nn4q6rwc6grbb1wxj82n7x9hh09q4bxqcz";
6500 };
6501
6502 patches = optionals pkgs.stdenv.isDarwin [
6503 ../development/python-modules/gyp/no-darwin-cflags.patch
6504 ];
6505
6506 meta = {
6507 description = "A tool to generate native build files";
6508 homepage = https://chromium.googlesource.com/external/gyp/+/master/README.md;
6509 license = licenses.bsd3;
6510 maintainers = with maintainers; [ codyopel ];
6511 platforms = platforms.all;
6512 };
6513 };
6514
6515 guessit = buildPythonPackage rec {
6516 version = "0.9.4";
6517 name = "guessit-${version}";
6518 disabled = isPy3k;
6519
6520 src = pkgs.fetchurl {
6521 url = "http://pypi.python.org/packages/source/g/guessit/${name}.tar.gz";
6522 sha256 = "068d3dmyk4v04p2zna0340lsdnpkm10gyza62apd9akgjh9rfs48";
6523 };
6524
6525 propagatedBuildInputs = with self; [
6526 dateutil_2_1 requests stevedore babelfish pyyaml
6527 ];
6528
6529 # A unicode test fails
6530 doCheck = false;
6531
6532 meta = {
6533 homepage = http://pypi.python.org/pypi/guessit;
6534 license = licenses.lgpl3;
6535 description = "A library for guessing information from video files";
6536 };
6537 };
6538
6539 gunicorn = buildPythonPackage rec {
6540 name = "gunicorn-19.1.0";
6541
6542 src = pkgs.fetchurl {
6543 url = "http://pypi.python.org/packages/source/g/gunicorn/${name}.tar.gz";
6544 md5 = "3d759bec3c46a680ff010775258c4c56";
6545 };
6546
6547 buildInputs = with self; [ pytest ];
6548
6549 meta = {
6550 homepage = http://pypi.python.org/pypi/gunicorn;
6551 description = "WSGI HTTP Server for UNIX";
6552 };
6553 };
6554
6555 hawkauthlib = buildPythonPackage rec {
6556 name = "hawkauthlib-${version}";
6557 version = "0.1.1";
6558 src = pkgs.fetchgit {
6559 url = https://github.com/mozilla-services/hawkauthlib.git;
6560 rev = "refs/tags/v${version}";
6561 sha256 = "0b3xydii50ifs8qkgbpdlidfs2rzw63f807ahrq9flz90ahf582h";
6562 };
6563
6564 propagatedBuildInputs = with self; [ requests webob ];
6565 };
6566
6567 hcs_utils = buildPythonPackage rec {
6568 name = "hcs_utils-1.5";
6569
6570 src = pkgs.fetchurl {
6571 url = "https://pypi.python.org/packages/source/h/hcs_utils/${name}.tar.gz";
6572 sha256 = "1d2za9crkgzildx610w3zif2i8phcqhh6n8nzg3yvy2mg0s18mkl";
6573 };
6574
6575 preBuild = ''
6576 export LC_ALL="en_US.UTF-8"
6577 '';
6578
6579 buildInputs = with self; [ six pkgs.glibcLocales ];
6580
6581 meta = {
6582 description = "Library collecting some useful snippets";
6583 homepage = https://pypi.python.org/pypi/hcs_utils/1.3;
6584 license = licenses.isc;
6585 maintainers = with maintainers; [ lovek323 ];
6586 platforms = platforms.unix;
6587 };
6588 };
6589
6590
6591 hetzner = buildPythonPackage rec {
6592 name = "hetzner-${version}";
6593 version = "0.7.3";
6594
6595 src = pkgs.fetchurl {
6596 url = "https://github.com/RedMoonStudios/hetzner/archive/"
6597 + "v${version}.tar.gz";
6598 sha256 = "1a0kcwqd1pj5giwh75m2m3jcnr1kd38v40hh64wgly2zp485nm5m";
6599 };
6600
6601 # not there yet, but coming soon.
6602 doCheck = false;
6603
6604 meta = {
6605 homepage = "https://github.com/RedMoonStudios/hetzner";
6606 description = "High-level Python API for accessing the Hetzner robot";
6607 license = licenses.bsd3;
6608 maintainers = with maintainers; [ aszlig ];
6609 };
6610 };
6611
6612
6613 htmllaundry = buildPythonPackage rec {
6614 name = "htmllaundry-2.0";
6615
6616 src = pkgs.fetchurl {
6617 url = "https://pypi.python.org/packages/source/h/htmllaundry/${name}.tar.gz";
6618 md5 = "6db6909de76c4b259e65d90b5debdbda";
6619 };
6620
6621 buildInputs = with self; [ nose ];
6622 propagatedBuildInputs = with self; [ six lxml ];
6623
6624 # some tests fail, probably because of changes in lxml
6625 # not relevant for me, if releavnt for you, fix it...
6626 doCheck = false;
6627
6628 meta = {
6629 description = "Simple HTML cleanup utilities";
6630 license = licenses.bsd3;
6631 };
6632 };
6633
6634
6635 html5lib = buildPythonPackage (rec {
6636 version = "0.999";
6637 name = "html5lib-${version}";
6638
6639 src = pkgs.fetchurl {
6640 url = "http://github.com/html5lib/html5lib-python/archive/${version}.tar.gz";
6641 sha256 = "1kxl36p0csssaf37zbbc9p4h8l1s7yb1qnfv3d4nixplvrxqkybp";
6642 };
6643
6644 buildInputs = with self; [ nose flake8 ];
6645 propagatedBuildInputs = with self; [
6646 six
6647 ] ++ optionals isPy26 [ ordereddict ];
6648
6649 checkPhase = "nosetests";
6650
6651 meta = {
6652 homepage = https://github.com/html5lib/html5lib-python;
6653 downloadPage = https://github.com/html5lib/html5lib-python/releases;
6654 description = "HTML parser based on WHAT-WG HTML5 specification";
6655 longDescription = ''
6656 html5lib is a pure-python library for parsing HTML. It is designed to
6657 conform to the WHATWG HTML specification, as is implemented by all
6658 major web browsers.
6659 '';
6660 license = licenses.mit;
6661 maintainers = with maintainers; [ iElectric prikhi ];
6662 };
6663 });
6664
6665 http_signature = buildPythonPackage (rec {
6666 name = "http_signature-0.1.4";
6667 disabled = isPy3k;
6668
6669 src = pkgs.fetchurl {
6670 url = "http://pypi.python.org/packages/source/h/http_signature/${name}.tar.gz";
6671 md5 = "015061846254bd5d8c5dbc2913985153";
6672 };
6673
6674 propagatedBuildInputs = with self; [pycrypto];
6675
6676 meta = {
6677 homepage = https://github.com/atl/py-http-signature;
6678 description = "";
6679 license = licenses.mit;
6680 };
6681 });
6682
6683 httpbin = buildPythonPackage rec {
6684 name = "httpbin-0.2.0";
6685
6686 src = pkgs.fetchurl {
6687 url = "https://pypi.python.org/packages/source/h/httpbin/${name}.tar.gz";
6688 md5 = "9b2bb2fab45f5fa839e9a776a64d6089";
6689 };
6690
6691 propagatedBuildInputs = with self; [ flask markupsafe decorator itsdangerous six ];
6692
6693 meta = {
6694 homepage = https://github.com/kennethreitz/httpbin;
6695 description = "HTTP Request & Response Service";
6696 license = licenses.mit;
6697 };
6698
6699 };
6700
6701 httplib2 = buildPythonPackage rec {
6702 name = "httplib2-0.9";
6703
6704 src = pkgs.fetchurl {
6705 url = "https://pypi.python.org/packages/source/h/httplib2/${name}.tar.gz";
6706 sha256 = "1asi5wpncnc6ki3bz33mhb9xh2lrkb24y4qng8bmqnczdmm8rsir";
6707 };
6708
6709 meta = {
6710 homepage = http://code.google.com/p/httplib2;
6711 description = "A comprehensive HTTP client library";
6712 license = licenses.mit;
6713 maintainers = with maintainers; [ garbas ];
6714 };
6715 };
6716
6717 hypothesis = pythonPackages.buildPythonPackage rec {
6718 name = "hypothesis-0.7.0";
6719
6720 doCheck = false;
6721
6722 src = pkgs.fetchurl {
6723 url = "https://pypi.python.org/packages/source/h/hypothesis/hypothesis-0.7.0.tar.gz";
6724 md5 = "0c4112bab04b71979286387b033921b5";
6725 };
6726
6727 meta = {
6728 description = "A Python library for property based testing";
6729 homepage = https://github.com/DRMacIver/hypothesis;
6730 license = licenses.mpl20;
6731 };
6732 };
6733
6734 httpretty = buildPythonPackage rec {
6735 name = "httpretty-${version}";
6736 version = "0.8.3";
6737 disabled = isPy3k;
6738 doCheck = false;
6739
6740 src = pkgs.fetchurl {
6741 url = "http://pypi.python.org/packages/source/h/httpretty/${name}.tar.gz";
6742 md5 = "50b02560a49fe928c90c53a49791f621";
6743 };
6744
6745 buildInputs = with self; [ tornado requests httplib2 sure nose coverage certifi ];
6746
6747 propagatedBuildInputs = with self; [ urllib3 ];
6748
6749 postPatch = ''
6750 sed -i -e 's/==.*$//' *requirements.txt
6751 # XXX: Drop this after version 0.8.4 is released.
6752 patch httpretty/core.py <<DIFF
6753 ***************
6754 *** 566 ****
6755 ! 'content-length': len(self.body)
6756 --- 566 ----
6757 ! 'content-length': str(len(self.body))
6758 DIFF
6759 '';
6760
6761 meta = {
6762 homepage = "http://falcao.it/HTTPretty/";
6763 description = "HTTP client request mocking tool";
6764 license = licenses.mit;
6765 };
6766 };
6767
6768 icalendar = buildPythonPackage rec {
6769 version = "3.9.0";
6770 name = "icalendar-${version}";
6771
6772 src = pkgs.fetchurl {
6773 url = "https://pypi.python.org/packages/source/i/icalendar/${name}.tar.gz";
6774 md5 = "072c67a4c461864abd604631d7cf67e7";
6775 };
6776
6777 buildInputs = with self; [ setuptools ];
6778 propagatedBuildInputs = with self; [ dateutil pytz ];
6779
6780 meta = {
6781 description = "A parser/generator of iCalendar files";
6782 homepage = "http://icalendar.readthedocs.org/";
6783 license = licenses.bsd2;
6784 maintainers = with maintainers; [ olcai ];
6785 };
6786 };
6787
6788 importlib = if isPy26 then (buildPythonPackage {
6789 name = "importlib-1.0.2";
6790 src = pkgs.fetchurl {
6791 url = "http://pypi.python.org/packages/source/i/importlib/importlib-1.0.2.tar.gz";
6792 md5 = "4aa23397da8bd7c7426864e88e4db7e1";
6793 };
6794 doCheck = false;
6795 }) else null;
6796
6797 influxdb = buildPythonPackage rec {
6798 name = "influxdb-0.1.12";
6799
6800 src = pkgs.fetchurl {
6801 url = "http://pypi.python.org/packages/source/i/influxdb/${name}.tar.gz";
6802 md5 = "6c975058ccc4df41dad8d8234c52d754";
6803 };
6804
6805 # ImportError: No module named tests
6806 doCheck = false;
6807 propagatedBuildInputs = with self; [ requests ];
6808
6809 meta = {
6810 description = "Python client for InfluxDB";
6811 homepage = https://github.com/influxdb/influxdb-python;
6812 license = licenses.mit;
6813 };
6814 };
6815
6816 infoqscraper = buildPythonPackage rec {
6817 name = pname + "-" + version;
6818 version = "0.1.0";
6819 pname = "infoqscraper";
6820
6821 src = pkgs.fetchFromGitHub {
6822 owner = "cykl";
6823 repo = pname;
6824 rev = "v" + version;
6825 sha256 = "07mxp4mla7fwfc032f3mxrhjarnhkjqdxxibf9ba87c93z3dq8jj";
6826 };
6827
6828 buildInputs = with self; [ html5lib ];
6829 propagatedBuildInputs = (with self; [ six beautifulsoup4 ])
6830 ++ (with pkgs; [ ffmpeg swftools rtmpdump ]);
6831
6832 meta = {
6833 description = "Discover presentations and/or create a movie consisting of slides and audio track from an infoq url";
6834 homepage = "https://github.com/cykl/infoqscraper/wiki";
6835 license = licenses.mit;
6836 maintainers = with maintainers; [ edwtjo ];
6837 };
6838 };
6839
6840 iptools = buildPythonPackage rec {
6841 version = "0.6.1";
6842 name = "iptools-${version}";
6843
6844 src = pkgs.fetchurl {
6845 url = "http://pypi.python.org/packages/source/i/iptools/iptools-${version}.tar.gz";
6846 md5 = "aed4045638fd40c16f8d9bb04606f700";
6847 };
6848
6849 buildInputs = with self; [ nose ];
6850
6851 meta = {
6852 description = "Utilities for manipulating IP addresses including a class that can be used to include CIDR network blocks in Django's INTERNAL_IPS setting";
6853 homepage = http://pypi.python.org/pypi/iptools;
6854 };
6855 };
6856
6857
6858 ipy = buildPythonPackage rec {
6859 version = "0.74";
6860 name = "ipy-${version}";
6861
6862 src = pkgs.fetchurl {
6863 url = "http://pypi.python.org/packages/source/I/IPy/IPy-${version}.tar.gz";
6864 md5 = "f4f7ddc7c5e55a47222a5cc6c0a87b6d";
6865 };
6866
6867 # error: invalid command 'test'
6868 doCheck = false;
6869
6870 meta = {
6871 description = "Class and tools for handling of IPv4 and IPv6 addresses and networks";
6872 homepage = http://pypi.python.org/pypi/IPy;
6873 };
6874 };
6875
6876
6877 ipaddr = buildPythonPackage rec {
6878 name = "ipaddr-2.1.10";
6879 disabled = isPy3k;
6880
6881 src = pkgs.fetchurl {
6882 url = "http://pypi.python.org/packages/source/i/ipaddr/${name}.tar.gz";
6883 sha256 = "18ycwkfk3ypb1yd09wg20r7j7zq2a73d7j6j10qpgra7a7abzhyj";
6884 };
6885
6886 meta = {
6887 description = "Google's IP address manipulation library";
6888 homepage = http://code.google.com/p/ipaddr-py/;
6889 license = licenses.asl20;
6890 };
6891 };
6892
6893 ipaddress = buildPythonPackage rec {
6894 name = "ipaddress-1.0.7";
6895
6896 src = pkgs.fetchurl {
6897 url = "https://pypi.python.org/packages/source/i/ipaddress/${name}.tar.gz";
6898 md5 = "5d9ecf415cced476f7781cf5b9ef70c4";
6899 };
6900
6901 meta = {
6902 description = "Port of the 3.3+ ipaddress module to 2.6, 2.7, and 3.2";
6903 homepage = https://github.com/phihag/ipaddress;
6904 license = licenses.psfl;
6905 };
6906 };
6907
6908 ipdb = buildPythonPackage rec {
6909 name = "ipdb-0.8";
6910 disabled = isPyPy; # setupterm: could not find terminfo database
6911 src = pkgs.fetchurl {
6912 url = "http://pypi.python.org/packages/source/i/ipdb/${name}.zip";
6913 md5 = "96dca0712efa01aa5eaf6b22071dd3ed";
6914 };
6915 propagatedBuildInputs = with self; [ self.ipythonLight ];
6916 };
6917
6918 ipdbplugin = buildPythonPackage {
6919 name = "ipdbplugin-1.4";
6920 src = pkgs.fetchurl {
6921 url = "https://pypi.python.org/packages/source/i/ipdbplugin/ipdbplugin-1.4.tar.gz";
6922 md5 = "f9a41512e5d901ea0fa199c3f648bba7";
6923 };
6924 propagatedBuildInputs = with self; [ self.nose self.ipythonLight ];
6925 };
6926
6927 iso8601 = buildPythonPackage {
6928 name = "iso8601-0.1.10";
6929 src = pkgs.fetchurl {
6930 url = https://pypi.python.org/packages/source/i/iso8601/iso8601-0.1.10.tar.gz;
6931 sha256 = "1qf01afxh7j4gja71vxv345if8avg6nnm0ry0zsk6j3030xgy4p7";
6932 };
6933
6934 meta = {
6935 homepage = https://bitbucket.org/micktwomey/pyiso8601/;
6936 description = "Simple module to parse ISO 8601 dates";
6937 maintainers = with maintainers; [ phreedom ];
6938 };
6939 };
6940
6941 isort = buildPythonPackage rec {
6942 name = "isort-3.9.6";
6943
6944 src = pkgs.fetchurl {
6945 url = "https://pypi.python.org/packages/source/i/isort/${name}.tar.gz";
6946 md5 = "c0f4a7b16fde265f2ff4842c3e1cdd05";
6947 };
6948
6949 buildInputs = with self; [ mock pytest ];
6950
6951 propagatedBuildInputs = with self; [ natsort pies ];
6952
6953 meta = {
6954 description = "A Python utility / library to sort Python imports";
6955 homepage = https://github.com/timothycrosley/isort;
6956 license = licenses.mit;
6957 };
6958 };
6959
6960 jedi = buildPythonPackage (rec {
6961 name = "jedi-0.8.1";
6962
6963 src = pkgs.fetchurl {
6964 url = "http://pypi.python.org/packages/source/j/jedi/${name}.tar.gz";
6965 sha256 = "1a7bg159mc1la5p1zsblzpr9hmypa7nz0mpvf7dww57cgi2sw8sd";
6966 };
6967
6968 meta = {
6969 homepage = https://github.com/davidhalter/jedi;
6970 description = "An autocompletion tool for Python that can be used for text editors";
6971 license = licenses.lgpl3Plus;
6972 maintainers = with maintainers; [ garbas ];
6973 };
6974 });
6975
6976 jellyfish = buildPythonPackage rec {
6977 version = "0.5.0";
6978 name = "jellyfish-${version}";
6979
6980 src = pkgs.fetchurl {
6981 url = "https://pypi.python.org/packages/source/j/jellyfish/${name}.tar.gz";
6982 sha256 = "04p80gwwlhxjp8zpjf70a62x69l9rlvnz1pwi5ar52gyajn8z6z1";
6983 };
6984
6985 buildInputs = with self; [ pytest unicodecsv ];
6986
6987 meta = {
6988 homepage = http://github.com/sunlightlabs/jellyfish;
6989 description = "Approximate and phonetic matching of strings";
6990 maintainers = with maintainers; [ koral ];
6991 };
6992 };
6993
6994 j2cli = buildPythonPackage rec {
6995 name = "j2cli-${version}";
6996 version = "0.3.1-0";
6997
6998 src = pkgs.fetchurl {
6999 url = "https://pypi.python.org/packages/source/j/j2cli/${name}.tar.gz";
7000 sha256 = "0y3w1x9935qzx8w6m2r6g4ghyjmxn33wryiif6xb56q7cj9w1433";
7001 };
7002
7003 disabled = ! (isPy26 || isPy27);
7004
7005 buildInputs = [ self.nose ];
7006
7007 propagatedBuildInputs = with self; [ jinja2 pyyaml ];
7008
7009 meta = {
7010 homepage = https://github.com/kolypto/j2cli;
7011 description = "Jinja2 Command-Line Tool";
7012 license = licenses.bsd3;
7013 longDescription = ''
7014 J2Cli is a command-line tool for templating in shell-scripts,
7015 leveraging the Jinja2 library.
7016 '';
7017 platforms = platforms.all;
7018 maintainers = with maintainers; [ rushmorem ];
7019 };
7020 };
7021
7022 jinja2 = buildPythonPackage rec {
7023 name = "Jinja2-2.7.3";
7024
7025 src = pkgs.fetchurl {
7026 url = "http://pypi.python.org/packages/source/J/Jinja2/${name}.tar.gz";
7027 # md5 = "b9dffd2f3b43d673802fe857c8445b1a"; # provided by pypi website.
7028 sha256 = "2e24ac5d004db5714976a04ac0e80c6df6e47e98c354cb2c0d82f8879d4f8fdb";
7029 };
7030
7031 propagatedBuildInputs = with self; [ markupsafe ];
7032
7033 meta = {
7034 homepage = http://jinja.pocoo.org/;
7035 description = "Stand-alone template engine";
7036 license = licenses.bsd3;
7037 longDescription = ''
7038 Jinja2 is a template engine written in pure Python. It provides a
7039 Django inspired non-XML syntax but supports inline expressions and
7040 an optional sandboxed environment.
7041 '';
7042 platforms = platforms.all;
7043 maintainers = with maintainers; [ pierron garbas ];
7044 };
7045 };
7046
7047
7048 jmespath = buildPythonPackage rec {
7049 name = "jmespath-0.7.1";
7050
7051 src = pkgs.fetchurl {
7052 url = "https://pypi.python.org/packages/source/j/jmespath/${name}.tar.gz";
7053 sha256 = "1lazbx65imassd7h24z49za001rvx1lmx8r0l21h4izs7pp14nnd";
7054 };
7055
7056 propagatedBuildInputs = with self; [ ply ];
7057
7058 meta = {
7059 homepage = https://github.com/boto/jmespath;
7060 description = "JMESPath allows you to declaratively specify how to extract elements from a JSON document";
7061 license = "BSD";
7062 };
7063 };
7064
7065
7066 jrnl = buildPythonPackage rec {
7067 name = "jrnl-1.9.7";
7068 disabled = isPy3k;
7069
7070 src = pkgs.fetchurl {
7071 url = "https://pypi.python.org/packages/source/j/jrnl/${name}.tar.gz";
7072 md5 = "395faff36de8a08a5bfeedbf123e9067";
7073 };
7074
7075 propagatedBuildInputs = with self; [
7076 pytz six tzlocal keyring modules.readline argparse dateutil_1_5
7077 parsedatetime
7078 ];
7079
7080 meta = {
7081 homepage = http://maebert.github.io/jrnl/;
7082 description = "A simple command line journal application that stores your journal in a plain text file";
7083 license = licenses.mit;
7084 };
7085 };
7086
7087
7088 keyring = buildPythonPackage rec {
7089 name = "keyring-3.3";
7090
7091 src = pkgs.fetchurl {
7092 url = "https://pypi.python.org/packages/source/k/keyring/${name}.zip";
7093 md5 = "81291e0c7337affb71442e6c7671e77f";
7094 };
7095
7096 buildInputs = with self;
7097 [ fs gdata python_keyczar mock pyasn1 pycrypto pytest six ];
7098
7099 meta = {
7100 description = "Store and access your passwords safely";
7101 homepage = "https://pypi.python.org/pypi/keyring";
7102 license = licenses.psfl;
7103 maintainers = with maintainers; [ lovek323 ];
7104 platforms = platforms.unix;
7105 };
7106 };
7107
7108 klaus = buildPythonPackage rec {
7109 version = "0.4.10";
7110 name = "klaus-${version}";
7111
7112 src = pkgs.fetchurl {
7113 url = "https://github.com/jonashaag/klaus/archive/${version}.tar.gz";
7114 sha256 = "1yq1dz3cd2qdn8vi1ivf6biab76cfmcvis07d6a8039w5wxdzc80";
7115 };
7116
7117 propagatedBuildInputs = with self;
7118 [ humanize httpauth dulwich pygments flask ];
7119
7120 meta = {
7121 description = "The first Git web viewer that Just Works";
7122 homepage = "https://github.com/jonashaag/klaus";
7123 #license = licenses.mit; # I'm not sure about the license
7124 maintainers = with maintainers; [ matthiasbeyer ];
7125 platforms = platforms.linux; # Can only test linux
7126 };
7127 };
7128
7129 kombu = buildPythonPackage rec {
7130 name = "kombu-${version}";
7131 version = "3.0.24";
7132
7133 disabled = pythonOlder "2.6";
7134
7135 src = pkgs.fetchurl {
7136 url = "https://pypi.python.org/packages/source/k/kombu/${name}.tar.gz";
7137 sha256 = "13dzybciispin9c4znpiyvgha354mz124lgx06ksw4vic0vh9zxr";
7138 md5 = "37c8b5084ac83b8a6f5ff9f157cac0e9";
7139 };
7140
7141 buildInputs = with self; optionals (!isPy3k) [ anyjson mock unittest2 nose ];
7142
7143 propagatedBuildInputs = with self; [ amqp ] ++
7144 (optionals (pythonOlder "2.7") [ importlib ordereddict ]);
7145
7146 # tests broken on python 2.6? https://github.com/nose-devs/nose/issues/806
7147 # tests also appear to depend on anyjson, which has Py3k problems
7148 doCheck = (pythonAtLeast "2.7") && !isPy3k ;
7149
7150 meta = {
7151 description = "Messaging library for Python";
7152 homepage = "http://github.com/celery/kombu";
7153 license = licenses.bsd3;
7154 };
7155 };
7156
7157 konfig = buildPythonPackage rec {
7158 name = "konfig-${version}";
7159 version = "0.9";
7160
7161 # konfig unconditionaly depend on configparser, even if it is part of
7162 # the standard library in python 3.2 or above.
7163 disabled = isPy3k;
7164
7165 src = pkgs.fetchgit {
7166 url = https://github.com/mozilla-services/konfig.git;
7167 rev = "refs/tags/${version}";
7168 sha256 = "1v9pjb9idapjlc75p6h06kx7bi8zxhfgj93yxq1bn337kmyk1xdf";
7169 };
7170
7171 propagatedBuildInputs = with self; [ configparser argparse ];
7172
7173 meta = {
7174 description = "Yet Another Config Parser";
7175 homepage = "https://github.com/mozilla-services/konfig";
7176 license = licenses.mpl20;
7177 };
7178 };
7179
7180 kitchen = buildPythonPackage (rec {
7181 name = "kitchen-1.1.1";
7182 disabled = isPy3k;
7183
7184 meta.maintainers = with maintainers; [ mornfall ];
7185
7186 src = pkgs.fetchurl {
7187 url = "https://pypi.python.org/packages/source/k/kitchen/kitchen-1.1.1.tar.gz";
7188 sha256 = "0ki840hjk1q19w6icv0dj2jxb00966nwy9b1jib0dgdspj00yrr5";
7189 };
7190 });
7191
7192 pylast = buildPythonPackage rec {
7193 name = "pylast-${version}";
7194 version = "0.5.11";
7195
7196 src = pkgs.fetchurl {
7197 url = "http://pypi.python.org/packages/source/p/pylast/${name}.tar.gz";
7198 md5 = "506cf1b13020b3ed2f3c845ea0c9830e";
7199 };
7200
7201 # error: invalid command 'test'
7202 doCheck = false;
7203
7204 meta = {
7205 homepage = http://code.google.com/p/pylast/;
7206 description = "A python interface to last.fm (and compatibles)";
7207 license = licenses.asl20;
7208 };
7209 };
7210
7211
7212 le = buildPythonPackage rec {
7213 name = "le-${version}";
7214 version = "1.4.13";
7215
7216 src = pkgs.fetchFromGitHub {
7217 owner = "logentries";
7218 repo = "le";
7219 rev = "v${version}";
7220 sha256 = "12l6fqavykjinq286i9pgbbbrv5lq2mmiji91g0m05lfdx9pg4y1";
7221 };
7222
7223 propagatedBuildInputs = with self; [ simplejson psutil ];
7224
7225 meta = {
7226 homepage = "https://github.com/logentries/le";
7227 description = "Logentries agent";
7228 };
7229 };
7230
7231
7232 libcloud = buildPythonPackage (rec {
7233 name = "libcloud-0.14.1";
7234
7235 src = pkgs.fetchurl {
7236 url = https://pypi.python.org/packages/source/a/apache-libcloud/apache-libcloud-0.14.1.tar.bz2;
7237 sha256 = "1l6190pjv54c7y8pzr089ij727qv7bqhhaznr2mkvimgr1wzsql5";
7238 };
7239
7240 buildInputs = with self; [ mock ];
7241
7242 propagatedBuildInputs = with self; [ pycrypto ];
7243 preConfigure = "cp libcloud/test/secrets.py-dist libcloud/test/secrets.py";
7244
7245 # failing tests for 26 and 27
7246 doCheck = false;
7247
7248 meta = {
7249 description = "A unified interface to many cloud providers";
7250 homepage = http://incubator.apache.org/libcloud/;
7251 };
7252 });
7253
7254
7255 limnoria = buildPythonPackage (rec {
7256 name = "limnoria-20130327";
7257
7258 src = pkgs.fetchurl {
7259 url = https://pypi.python.org/packages/source/l/limnoria/limnoria-2013-06-01T10:32:51+0200.tar.gz;
7260 name = "limnoria-2013-06-01.tar.gz";
7261 sha256 = "1i8q9zzf43sr3n1q4h6h1z8nz31g4aa8dq94ywvfbh7hklmchq6n";
7262 };
7263
7264 buildInputs = with self; [ pkgs.git ];
7265 propagatedBuildInputs = with self; [ modules.sqlite3 ];
7266
7267 doCheck = false;
7268
7269 meta = {
7270 description = "A modified version of Supybot, an IRC bot";
7271 homepage = http://supybot.fr.cr;
7272 license = licenses.bsd3;
7273 maintainers = with maintainers; [ goibhniu ];
7274 };
7275 });
7276
7277
7278 linode = buildPythonPackage rec {
7279 name = "linode-${version}";
7280 version = "0.4";
7281
7282 src = pkgs.fetchurl {
7283 url = "https://pypi.python.org/packages/source/l/linode/linode-${version}.tar.gz";
7284 md5 = "03a306575cf274719b3206ecee0bda9e";
7285 };
7286
7287 propagatedBuildInputs = with self; [ requests2 ];
7288
7289 meta = {
7290 homepage = "https://github.com/ghickman/linode";
7291 description = "A thin python wrapper around Linode's API";
7292 license = licenses.mit;
7293 maintainers = with maintainers; [ nslqqq ];
7294 };
7295 };
7296
7297 llfuse = buildPythonPackage rec {
7298 name = "llfuse-0.40";
7299
7300 src = pkgs.fetchurl {
7301 url = "https://pypi.python.org/packages/source/l/llfuse/${name}.tar.bz2";
7302 sha256 = "0mx87n6j2g63mgiimjqn0gj6jgqfdkc04xkxc56r1azjlqji32zf";
7303 };
7304
7305 buildInputs = [ pkgs.pkgconfig pkgs.fuse pkgs.attr ];
7306
7307 meta = {
7308 description = "Python bindings for the low-level FUSE API";
7309 homepage = https://code.google.com/p/python-llfuse/;
7310 license = licenses.lgpl2Plus;
7311 platforms = platforms.unix;
7312 maintainers = with maintainers; [ bjornfor ];
7313 };
7314 };
7315
7316 locustio = buildPythonPackage rec {
7317 name = "locustio-0.7.2";
7318
7319 src = pkgs.fetchurl {
7320 url = "https://pypi.python.org/packages/source/l/locustio/${name}.tar.gz";
7321 md5 = "90cf4d029d58ad58d19ea17a16e59c34";
7322 };
7323
7324 propagatedBuildInputs = [ self.msgpack self.requests2 self.flask self.gevent self.pyzmq ];
7325 buildInputs = [ self.mock self.unittest2 ];
7326
7327 meta = {
7328 homepage = http://locust.io/;
7329 description = "A load testing tool";
7330 };
7331 };
7332
7333 lockfile = buildPythonPackage rec {
7334 name = "lockfile-0.9.1";
7335
7336 src = pkgs.fetchurl {
7337 url = "http://pylockfile.googlecode.com/files/${name}.tar.gz";
7338 sha1 = "1eebaee375641c9f29aeb21768f917dd2b985752";
7339 };
7340
7341 # error: invalid command 'test'
7342 doCheck = false;
7343
7344 meta = {
7345 homepage = http://code.google.com/p/pylockfile/;
7346 description = "Platform-independent advisory file locking capability for Python applications";
7347 };
7348 };
7349
7350 logilab_common = buildPythonPackage rec {
7351 name = "logilab-common-0.63.2";
7352
7353 src = pkgs.fetchurl {
7354 url = "https://pypi.python.org/packages/source/l/logilab-common/${name}.tar.gz";
7355 sha256 = "1rr81zlmlgdma3s75i5c1l8q2m25v4ac41i9pniik4mhkc6a0fv0";
7356 };
7357
7358 propagatedBuildInputs = with self; [ unittest2 six ];
7359 };
7360
7361 lxml = buildPythonPackage ( rec {
7362 name = "lxml-3.3.6";
7363
7364 src = pkgs.fetchurl {
7365 url = "http://pypi.python.org/packages/source/l/lxml/${name}.tar.gz";
7366 md5 = "a804b36864c483fe7abdd7f493a0c379";
7367 };
7368
7369 buildInputs = with self; [ pkgs.libxml2 pkgs.libxslt ];
7370
7371 meta = {
7372 description = "Pythonic binding for the libxml2 and libxslt libraries";
7373 homepage = http://codespeak.net/lxml/index.html;
7374 license = "BSD";
7375 };
7376 });
7377
7378
7379 python_magic = buildPythonPackage rec {
7380 name = "python-magic-0.4.6";
7381
7382 src = pkgs.fetchurl {
7383 url = "http://pypi.python.org/packages/source/p/python-magic/${name}.tar.gz";
7384 md5 = "07e7a0fea78dd81ed609414c3484df58";
7385 };
7386
7387 propagatedBuildInputs = with self; [ pkgs.file ];
7388
7389 patchPhase = ''
7390 substituteInPlace magic.py --replace "ctypes.CDLL(dll)" "ctypes.CDLL('${pkgs.file}/lib/libmagic.so')"
7391 '';
7392
7393 doCheck = false;
7394
7395 # TODO: tests are failing
7396 #checkPhase = ''
7397 # ${python}/bin/${python.executable} ./test.py
7398 #'';
7399
7400 meta = {
7401 description = "A python interface to the libmagic file type identification library";
7402 homepage = https://github.com/ahupp/python-magic;
7403 };
7404 };
7405
7406 magic = buildPythonPackage rec {
7407 name = "${pkgs.file.name}";
7408
7409 src = pkgs.file.src;
7410
7411 patchPhase = ''
7412 substituteInPlace python/magic.py --replace "find_library('magic')" "'${pkgs.file}/lib/libmagic.so'"
7413 '';
7414
7415 buildInputs = with self; [ python pkgs.file ];
7416
7417 preConfigure = "cd python";
7418
7419 meta = {
7420 description = "A Python wrapper around libmagic";
7421 homepage = http://www.darwinsys.com/file/;
7422 };
7423 };
7424
7425
7426 m2crypto = buildPythonPackage rec {
7427 version = "0.21.1";
7428 name = "m2crypto-${version}";
7429
7430 src = pkgs.fetchurl {
7431 url = "http://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-${version}.tar.gz";
7432 md5 = "f93d8462ff7646397a9f77a2fe602d17";
7433 };
7434
7435 buildInputs = with self; [ pkgs.swig pkgs.openssl ];
7436
7437 preBuild = "${python}/bin/${python.executable} setup.py build_ext --openssl=${pkgs.openssl}";
7438
7439 doCheck = false; # another test that depends on the network.
7440
7441 meta = {
7442 description = "A Python crypto and SSL toolkit";
7443 homepage = http://chandlerproject.org/Projects/MeTooCrypto;
7444 };
7445 };
7446
7447
7448 Mako = buildPythonPackage rec {
7449 name = "Mako-1.0.1";
7450
7451 src = pkgs.fetchurl {
7452 url = "http://pypi.python.org/packages/source/M/Mako/${name}.tar.gz";
7453 md5 = "9f0aafd177b039ef67b90ea350497a54";
7454 };
7455
7456 buildInputs = with self; [ markupsafe nose mock ];
7457 propagatedBuildInputs = with self; [ markupsafe ];
7458
7459 doCheck = !isPyPy; # https://bitbucket.org/zzzeek/mako/issue/238/2-tests-failed-on-pypy-24-25
7460
7461 meta = {
7462 description = "Super-fast templating language";
7463 homepage = http://www.makotemplates.org;
7464 license = licenses.mit;
7465 maintainers = with maintainers; [ iElectric ];
7466 };
7467 };
7468
7469
7470 markupsafe = buildPythonPackage rec {
7471 name = "markupsafe-0.15";
7472
7473 src = pkgs.fetchurl {
7474 url = "http://pypi.python.org/packages/source/M/MarkupSafe/${name}.tar.gz";
7475 md5 = "4e7c4d965fe5e033fa2d7bb7746bb186";
7476 };
7477
7478 meta = {
7479 description = "Implements a XML/HTML/XHTML Markup safe string";
7480 homepage = http://dev.pocoo.org;
7481 license = licenses.bsd3;
7482 maintainers = with maintainers; [ iElectric garbas ];
7483 };
7484 };
7485
7486 manuel = buildPythonPackage rec {
7487 name = "manuel-${version}";
7488 version = "1.8.0";
7489
7490 src = pkgs.fetchurl {
7491 url = "http://pypi.python.org/packages/source/m/manuel/${name}.tar.gz";
7492 sha256 = "1diyj6a8bvz2cdf9m0g2bbx9z2yjjnn3ylbg1zinpcjj6vldfx59";
7493 };
7494
7495 propagatedBuildInputs = with self; [ six zope_testing ];
7496
7497 meta = {
7498 description = "A documentation builder";
7499 homepage = http://pypi.python.org/pypi/manuel;
7500 license = licenses.zpt20;
7501 };
7502 };
7503
7504 markdown = buildPythonPackage rec {
7505 version = "2.3.1";
7506 name = "markdown-${version}";
7507
7508 src = pkgs.fetchurl {
7509 url = "http://pypi.python.org/packages/source/M/Markdown/Markdown-${version}.tar.gz";
7510 sha256 = "147j9hznv2r187a86d28glmg3pckfrdp0nz9yh7s1aqpawwdkszz";
7511 };
7512
7513 # error: invalid command 'test'
7514 doCheck = false;
7515
7516 meta = {
7517 homepage = http://www.freewisdom.org/projects/python-markdown;
7518 };
7519 };
7520
7521
7522 matplotlib = callPackage ../development/python-modules/matplotlib/default.nix {
7523 stdenv = if stdenv.isDarwin then pkgs.clangStdenv else pkgs.stdenv;
7524 enableGhostscript = true;
7525 };
7526
7527
7528 mccabe = buildPythonPackage (rec {
7529 name = "mccabe-0.3";
7530
7531 src = pkgs.fetchurl {
7532 url = "http://pypi.python.org/packages/source/m/mccabe/${name}.tar.gz";
7533 md5 = "81640948ff226f8c12b3277059489157";
7534 };
7535
7536 # See https://github.com/flintwork/mccabe/issues/31
7537 postPatch = ''
7538 cp "${pkgs.fetchurl {
7539 url = "https://raw.githubusercontent.com/flintwork/mccabe/"
7540 + "e8aea16d28e92bd3c62601275762fc9c16808f6c/test_mccabe.py";
7541 sha256 = "0xhjxpnaxvbpi4myj9byrban7a5nrw931br9sgvfk42ayg4sn6lm";
7542 }}" test_mccabe.py
7543 '';
7544
7545 meta = {
7546 description = "McCabe checker, plugin for flake8";
7547 homepage = "https://github.com/flintwork/mccabe";
7548 license = licenses.mit;
7549 maintainers = with maintainers; [ garbas ];
7550 };
7551 });
7552
7553
7554 mechanize = buildPythonPackage (rec {
7555 name = "mechanize-0.2.5";
7556 disabled = isPy3k;
7557
7558 src = pkgs.fetchurl {
7559 url = "https://pypi.python.org/packages/source/m/mechanize/${name}.tar.gz";
7560 sha256 = "0rj7r166i1dyrq0ihm5rijfmvhs8a04im28lv05c0c3v206v4rrf";
7561 };
7562
7563 propagatedBuildInputs = with self; [ clientform ];
7564
7565 doCheck = false;
7566
7567 meta = {
7568 description = "Stateful programmatic web browsing in Python";
7569
7570 homepage = http://wwwsearch.sourceforge.net/;
7571
7572 license = "BSD-style";
7573 };
7574 });
7575
7576
7577 meld3 = buildPythonPackage rec {
7578 name = "meld3-1.0.0";
7579
7580 src = pkgs.fetchurl {
7581 url = https://pypi.python.org/packages/source/m/meld3/meld3-1.0.0.tar.gz;
7582 md5 = "ca270506dd4ecb20ae26fa72fbd9b0be";
7583 };
7584
7585 doCheck = false;
7586
7587 meta = {
7588 description = "An HTML/XML templating engine used by supervisor";
7589 homepage = https://github.com/supervisor/meld3;
7590 license = licenses.free;
7591 };
7592 };
7593
7594 memcached = buildPythonPackage rec {
7595 name = "memcached-1.51";
7596
7597 src = if isPy3k then pkgs.fetchurl {
7598 url = "https://pypi.python.org/packages/source/p/python3-memcached/python3-${name}.tar.gz";
7599 sha256 = "0na8b369q8fivh3y0nvzbvhh3lgvxiyyv9xp93cnkvwfsr8mkgkw";
7600 } else pkgs.fetchurl {
7601 url = "http://ftp.tummy.com/pub/python-memcached/old-releases/python-${name}.tar.gz";
7602 sha256 = "124s98m6hvxj6x90d7aynsjfz878zli771q96ns767r2mbqn7192";
7603 };
7604
7605 meta = {
7606 description = "Python API for communicating with the memcached distributed memory object cache daemon";
7607 homepage = http://www.tummy.com/Community/software/python-memcached/;
7608 };
7609 };
7610
7611
7612 memory_profiler = buildPythonPackage rec {
7613 name = "memory_profiler-0.27";
7614
7615 src = pkgs.fetchurl {
7616 url = "https://pypi.python.org/packages/source/m/memory_profiler/memory_profiler-0.27.tar.gz";
7617 md5 = "212c0d7452dbaffb6b09474ac07b0668";
7618 };
7619
7620 # error: invalid command 'test'
7621 doCheck = false;
7622
7623 meta = {
7624 description = "A module for monitoring memory usage of a python program";
7625 homepage = http://pypi.python.org/pypi/memory_profiler;
7626 };
7627 };
7628
7629 mezzanine = buildPythonPackage rec {
7630 version = "3.1.10";
7631 name = "mezzanine-${version}";
7632
7633 src = pkgs.fetchurl {
7634 url = "https://github.com/stephenmcd/mezzanine/archive/${version}.tar.gz";
7635 sha256 = "1cd7d3dji8q4mvcnf9asxn8j109pd5g5d5shr6xvn0iwr35qprgi";
7636 };
7637
7638 buildInputs = with self; [ pyflakes pep8 ];
7639 propagatedBuildInputs = with self; [
7640 django_1_6 filebrowser_safe grappelli_safe bleach tzlocal beautifulsoup4
7641 requests2 requests_oauthlib future pillow modules.sqlite3
7642 ];
7643
7644 # Tests Fail Due to Syntax Warning, Fixed for v3.1.11+
7645 doCheck = false;
7646 # sed calls will be unecessary in v3.1.11+
7647 preConfigure = ''
7648 sed -i 's/future == 0.9.0/future>=0.9.0/' setup.py
7649 sed -i 's/tzlocal == 1.0/tzlocal>=1.0/' setup.py
7650 sed -i 's/pep8==1.4.1/pep8>=1.4.1/' setup.py
7651 sed -i 's/pyflakes==0.6.1/pyflakes>=0.6.1/' setup.py
7652 export LC_ALL="en_US.UTF-8"
7653 '';
7654
7655 meta = {
7656 description = ''
7657 A content management platform built using the Django framework
7658 '';
7659 longDescription = ''
7660 Mezzanine is a powerful, consistent, and flexible content management
7661 platform. Built using the Django framework, Mezzanine provides a
7662 simple yet highly extensible architecture that encourages diving in and
7663 hacking on the code. Mezzanine is BSD licensed and supported by a
7664 diverse and active community.
7665
7666 In some ways, Mezzanine resembles tools such as Wordpress that provide
7667 an intuitive interface for managing pages, blog posts, form data, store
7668 products, and other types of content. But Mezzanine is also different.
7669 Unlike many other platforms that make extensive use of modules or
7670 reusable applications, Mezzanine provides most of its functionality by
7671 default. This approach yields a more integrated and efficient platform.
7672 '';
7673 homepage = http://mezzanine.jupo.org/;
7674 downloadPage = https://github.com/stephenmcd/mezzanine/releases;
7675 license = licenses.free;
7676 maintainers = with maintainers; [ prikhi ];
7677 platforms = platforms.linux;
7678 };
7679 };
7680
7681 minimock = buildPythonPackage rec {
7682 version = "1.2.8";
7683 name = "minimock-${version}";
7684
7685 src = pkgs.fetchurl {
7686 url = "https://bitbucket.org/jab/minimock/get/${version}.zip";
7687 sha256 = "c88fa8a7120623f23990a7f086a9657f6ced09025a55e3be8649a30b4945441a";
7688 };
7689
7690 buildInputs = with self; [ nose ];
7691
7692 checkPhase = "./test";
7693
7694 meta = {
7695 description = "A minimalistic mocking library for python";
7696 homepage = https://pypi.python.org/pypi/MiniMock;
7697 };
7698 };
7699
7700 rainbowstream = buildPythonPackage rec {
7701 name = "rainbowstream-${version}";
7702 version = "1.2.7";
7703
7704 src = pkgs.fetchurl {
7705 url = "https://pypi.python.org/packages/source/r/rainbowstream/${name}.tar.gz";
7706 sha256 = "1jvv07w9n7ca251l92alm2yq9w82sb7lvxz6if3gc3nbqzc587rf";
7707 };
7708
7709 doCheck = false;
7710
7711 patches = [
7712 ../development/python-modules/rainbowstream/image.patch
7713 ];
7714
7715 postPatch = ''
7716 clib=$out/${python.sitePackages}/rainbowstream/image.so
7717 substituteInPlace rainbowstream/c_image.py \
7718 --replace @CLIB@ $clib
7719 '';
7720
7721 preBuild = ''
7722 export LC_ALL="en_US.UTF-8"
7723 '';
7724
7725 postInstall = ''
7726 mkdir -p $out/lib
7727 cc -fPIC -shared -o $clib rainbowstream/image.c
7728 for prog in "$out/bin/"*; do
7729 wrapProgram "$prog" \
7730 --prefix PYTHONPATH : "$PYTHONPATH"
7731 done
7732 '';
7733
7734 buildInputs = with self; [
7735 pkgs.libjpeg pkgs.freetype pkgs.zlib pkgs.glibcLocales
7736 pillow twitter pyfiglet requests arrow dateutil modules.readline pysocks
7737 ];
7738
7739 meta = {
7740 description = "Streaming command-line twitter client";
7741 homepage = "http://www.rainbowstream.org/";
7742 license = licenses.mit;
7743 maintainers = with maintainers; [ thoughtpolice ];
7744 };
7745 };
7746
7747 mitmproxy = buildPythonPackage rec {
7748 baseName = "mitmproxy";
7749 name = "${baseName}-${meta.version}";
7750
7751 src = pkgs.fetchurl {
7752 url = "${meta.homepage}/download/${name}.tar.gz";
7753 sha256 = "0mpyw8iw4l4jv175qlbn0rrlgiz1k79m44jncbdxfj8ddvvvyz2j";
7754 };
7755
7756 buildInputs = with self; [
7757 pyopenssl pyasn1 urwid pil lxml flask protobuf netlib
7758 ];
7759
7760 doCheck = false;
7761
7762 postInstall = ''
7763 for prog in "$out/bin/"*; do
7764 wrapProgram "$prog" \
7765 --prefix PYTHONPATH : "$PYTHONPATH"
7766 done
7767 '';
7768
7769 meta = {
7770 version = "0.10.1";
7771 description = ''Man-in-the-middle proxy'';
7772 homepage = "http://mitmproxy.org/";
7773 license = licenses.mit;
7774 };
7775 };
7776
7777 mock = buildPythonPackage (rec {
7778 name = "mock-1.0.1";
7779
7780 src = pkgs.fetchurl {
7781 url = "http://pypi.python.org/packages/source/m/mock/${name}.tar.gz";
7782 md5 = "c3971991738caa55ec7c356bbc154ee2";
7783 };
7784
7785 buildInputs = with self; [ unittest2 ];
7786
7787 meta = {
7788 description = "Mock objects for Python";
7789
7790 homepage = http://python-mock.sourceforge.net/;
7791
7792 license = "mBSD";
7793 };
7794 });
7795
7796 moinmoin = buildPythonPackage (rec {
7797 name = "moinmoin-${ver}";
7798 disabled = isPy3k;
7799 ver = "1.9.7";
7800
7801 src = pkgs.fetchurl {
7802 url = "http://static.moinmo.in/files/moin-${ver}.tar.gz";
7803 sha256 = "f4ba1b5c956bd96d2a61e27e68d297aa63d1afbc80d5740e139dcdf0affb4db5";
7804 };
7805
7806 meta = {
7807 description = "Advanced, easy to use and extensible WikiEngine";
7808
7809 homepage = http://moinmo.in/;
7810
7811 license = licenses.gpl2Plus;
7812 };
7813 });
7814
7815 moretools = buildPythonPackage rec {
7816 name = "moretools-0.1a41";
7817
7818 src = pkgs.fetchurl {
7819 url = "https://pypi.python.org/packages/source/m/moretools/${name}.tar.gz";
7820 sha256 = "1n442wprbl3cmg08233m1sr3g4z0i8hv9g6bhch7kzdmbl21399f";
7821 };
7822
7823 buildInputs = with self; [ six pathpy setuptools ];
7824 propagatedBuildInputs = with self; [ decorator ];
7825
7826 meta = {
7827 description = "Many more basic tools for python 2/3 extending itertools, functools, operator and collections";
7828 homepage = https://bitbucket.org/userzimmermann/python-moretools;
7829 license = licenses.gpl3Plus;
7830 platforms = platforms.linux;
7831 };
7832 };
7833
7834 mox = buildPythonPackage rec {
7835 name = "mox-0.5.3";
7836
7837 src = pkgs.fetchurl {
7838 url = "http://pymox.googlecode.com/files/${name}.tar.gz";
7839 sha1 = "b71aeaacf31898c3b38d8b9ca5bcc0664499c0de";
7840 };
7841
7842 # error: invalid command 'test'
7843 doCheck = false;
7844
7845 meta = {
7846 homepage = http://code.google.com/p/pymox/;
7847 description = "A mock object framework for Python";
7848 };
7849 };
7850
7851 mozsvc = buildPythonPackage rec {
7852 name = "mozsvc-${version}";
7853 version = "0.8";
7854
7855 src = pkgs.fetchgit {
7856 url = https://github.com/mozilla-services/mozservices.git;
7857 rev = "refs/tags/${version}";
7858 sha256 = "0k1d7v8aa4xd3f9h8m5crl647136ba15i9nzdrpxg5aqmv2n0i0p";
7859 };
7860
7861 patches = singleton (pkgs.fetchurl {
7862 url = https://github.com/nbp/mozservices/commit/f86c0b0b870cd8f80ce90accde9e16ecb2e88863.diff;
7863 sha256 = "1lnghx821f6dqp3pa382ka07cncdz7hq0mkrh44d0q3grvrlrp9n";
7864 });
7865
7866 doCheck = false; # lazy packager
7867 propagatedBuildInputs = with self; [ pyramid simplejson konfig ];
7868
7869 meta = {
7870 homepage = https://github.com/mozilla-services/mozservices;
7871 description = "Various utilities for Mozilla apps";
7872 };
7873 };
7874
7875 mpmath = buildPythonPackage rec {
7876 name = "mpmath-0.17";
7877
7878 src = pkgs.fetchurl {
7879 url = "https://mpmath.googlecode.com/files/${name}.tar.gz";
7880 sha256 = "1blgzwq4irzaf8abb4z0d2r48903n9zxf51fhnv3gv09bgxjqzxh";
7881 };
7882
7883 meta = {
7884 homepage = http://mpmath.googlecode.com;
7885 description = "A pure-Python library for multiprecision floating arithmetic";
7886 license = licenses.bsd3;
7887 maintainers = with maintainers; [ lovek323 ];
7888 platforms = platforms.unix;
7889 };
7890
7891 # error: invalid command 'test'
7892 doCheck = false;
7893 };
7894
7895
7896 mpd = buildPythonPackage rec {
7897 name = "python-mpd-0.3.0";
7898
7899 disabled = isPy3k;
7900
7901 src = pkgs.fetchurl {
7902 url = "https://pypi.python.org/packages/source/p/python-mpd/python-mpd-0.3.0.tar.gz";
7903 md5 = "5b3849b131e2fb12f251434597d65635";
7904 };
7905
7906 meta = with pkgs.stdenv.lib; {
7907 description = "An MPD (Music Player Daemon) client library written in pure Python";
7908 homepage = http://jatreuman.indefero.net/p/python-mpd/;
7909 license = licenses.gpl3;
7910 };
7911 };
7912
7913 mrbob = buildPythonPackage rec {
7914 name = "mrbob-${version}";
7915 version = "0.1.1";
7916
7917 src = pkgs.fetchurl {
7918 url = "http://pypi.python.org/packages/source/m/mr.bob/mr.bob-${version}.zip";
7919 md5 = "84a117c9a75b86842b0fa5f5c9c767f3";
7920 };
7921
7922 buildInputs = [ pkgs.glibcLocales ];
7923
7924 # some files in tests dir include unicode names
7925 preBuild = ''
7926 export LC_ALL="en_US.UTF-8"
7927 '';
7928
7929 propagatedBuildInputs = with self; [ argparse jinja2 six modules.readline ] ++
7930 (optionals isPy26 [ importlib ordereddict ]);
7931
7932 meta = {
7933 homepage = https://github.com/iElectric/mr.bob.git;
7934 description = "A tool to generate code skeletons from templates";
7935 };
7936 };
7937
7938 msgpack = buildPythonPackage rec {
7939 name = "msgpack-python-${version}";
7940 version = "0.4.6";
7941
7942 src = pkgs.fetchurl {
7943 url = "https://pypi.python.org/packages/source/m/msgpack-python/${name}.tar.gz";
7944 md5 = "8b317669314cf1bc881716cccdaccb30";
7945 };
7946
7947 propagatedBuildInputs = with self; [ ];
7948 };
7949
7950 msrplib = buildPythonPackage rec {
7951 name = "python-msrplib-${version}";
7952 version = "0.17.0";
7953
7954 src = pkgs.fetchurl {
7955 url = "http://download.ag-projects.com/MSRP/${name}.tar.gz";
7956 sha256 = "fe6ee541fbb4380a5708d08f378724dbc93438ff35c0cd0400e31b070fce73c4";
7957 };
7958
7959 propagatedBuildInputs = with self; [ eventlib application gnutls ];
7960 };
7961
7962 multipledispatch = buildPythonPackage rec {
7963 name = "multipledispatch-${version}";
7964 version = "0.4.8";
7965
7966 src = pkgs.fetchurl {
7967 url = "https://pypi.python.org/packages/source/m/multipledispatch/${name}.tar.gz";
7968 sha256 = "07d41fb3ed25e8424536e48a8566f88a0f9926ca4b6174bff6aa16c98251b92e";
7969 };
7970
7971 meta = {
7972 homepage = http://github.com/mrocklin/multipledispatch/;
7973 description = "A relatively sane approach to multiple dispatch in Python";
7974 license = licenses.bsd3;
7975 };
7976 };
7977
7978 munkres = buildPythonPackage rec {
7979 name = "munkres-1.0.6";
7980
7981 src = pkgs.fetchurl {
7982 url = "http://pypi.python.org/packages/source/m/munkres/${name}.tar.gz";
7983 md5 = "d7ba3b8c5001578ae229a2d5a655872f";
7984 };
7985
7986 # error: invalid command 'test'
7987 doCheck = false;
7988
7989 meta = {
7990 homepage = http://bmc.github.com/munkres/;
7991 description = "Munkres algorithm for the Assignment Problem";
7992 license = licenses.bsd3;
7993 maintainers = with maintainers; [ iElectric ];
7994 };
7995 };
7996
7997
7998 musicbrainzngs = buildPythonPackage rec {
7999 name = "musicbrainzngs-0.5";
8000
8001 src = pkgs.fetchurl {
8002 url = "http://pypi.python.org/packages/source/m/musicbrainzngs/${name}.tar.gz";
8003 md5 = "9e17a181af72d04a291c9a960bc73d44";
8004 };
8005
8006 buildInputs = [ pkgs.glibcLocales ];
8007
8008 preCheck = ''
8009 export LC_ALL="en_US.UTF-8"
8010 '';
8011
8012 meta = {
8013 homepage = http://alastair/python-musicbrainz-ngs;
8014 description = "Python bindings for musicbrainz NGS webservice";
8015 license = licenses.bsd2;
8016 maintainers = with maintainers; [ iElectric ];
8017 };
8018 };
8019
8020 mutag = buildPythonPackage rec {
8021 disabled = ! isPy3k;
8022 name = "mutag-0.0.2-2ffa0258ca";
8023 src = pkgs.fetchgit {
8024 url = "https://github.com/aroig/mutag.git";
8025 sha256 = "0azq2sb32mv6wyjlw1hk01c23isl4x1hya52lqnhknak299s5fml";
8026 rev = "2ffa0258cadaf79313241f43bf2c1caaf197d9c2";
8027 };
8028
8029 propagatedBuildInputs = with self; [ pyparsing ];
8030
8031 meta = {
8032 homepage = https://github.com/aroig/mutag;
8033 license = licenses.gpl3;
8034 maintainers = with maintainers; [ DamienCassou ];
8035 };
8036 };
8037
8038 mutagen = buildPythonPackage (rec {
8039 name = "mutagen-1.27";
8040
8041 src = pkgs.fetchurl {
8042 url = "http://pypi.python.org/packages/source/m/mutagen/${name}.tar.gz";
8043 md5 = "6a9bb5cc33214add35348f1bb3448340";
8044 };
8045
8046 # Needed for tests only
8047 buildInputs = [ pkgs.faad2 pkgs.flac pkgs.vorbisTools pkgs.liboggz ];
8048
8049 meta = {
8050 description = "Python multimedia tagging library";
8051 homepage = http://code.google.com/p/mutagen;
8052 license = licenses.lgpl2;
8053 };
8054 });
8055
8056
8057 muttils = buildPythonPackage (rec {
8058 name = "muttils-1.3";
8059 disabled = isPy3k;
8060
8061 src = pkgs.fetchurl {
8062 url = http://www.blacktrash.org/hg/muttils/archive/8bb26094df06.tar.bz2;
8063 sha256 = "1a4kxa0fpgg6rdj5p4kggfn8xpniqh8v5kbiaqc6wids02m7kag6";
8064 };
8065
8066 # Tests don't work
8067 doCheck = false;
8068
8069 meta = {
8070 description = "Utilities for use with console mail clients, like mutt";
8071 homepage = http://www.blacktrash.org/hg/muttils;
8072 license = licenses.gpl2Plus;
8073 };
8074 });
8075
8076 plover = pythonPackages.buildPythonPackage rec {
8077 name = "plover-${version}";
8078 version = "2.5.8";
8079
8080 meta = {
8081 description = "OpenSteno Plover stenography software";
8082 maintainers = [ maintainers.twey ];
8083 license = licenses.gpl2;
8084 };
8085
8086 src = pkgs.fetchurl {
8087 url = "https://github.com/openstenoproject/plover/archive/v${version}.tar.gz";
8088 sha256 = "23f7824a715f93eb2c41d5bafd0c6f3adda92998e9321e1ee029abe7a6ab41e5";
8089 };
8090
8091 propagatedBuildInputs = with self; [ wxPython pyserial xlib appdirs pkgs.wmctrl ];
8092 preConfigure = "substituteInPlace setup.py --replace /usr/share usr/share";
8093 };
8094
8095 pymysql = buildPythonPackage rec {
8096 name = "pymysql-${version}";
8097 version = "0.6.6";
8098 src = pkgs.fetchgit {
8099 url = https://github.com/PyMySQL/PyMySQL.git;
8100 rev = "refs/tags/pymysql-${version}";
8101 sha256 = "12v8bw7pp455zqkwraxk69qycz2ngk18bbz60v72kdbp6kssnqhz";
8102 };
8103 };
8104
8105 pymysqlsa = self.buildPythonPackage rec {
8106 name = "pymysqlsa-${version}";
8107 version = "1.0";
8108
8109 propagatedBuildInputs = with self; [ pymysql sqlalchemy9 ];
8110
8111 src = pkgs.fetchurl {
8112 url = "https://pypi.python.org/packages/source/p/pymysql_sa/pymysql_sa-1.0.tar.gz";
8113 sha256 = "a2676bce514a29b2d6ab418812259b0c2f7564150ac53455420a20bd7935314a";
8114 };
8115
8116 meta = {
8117 description = "PyMySQL dialect for SQL Alchemy";
8118 homepage = https://pypi.python.org/pypi/pymysql_sa;
8119 license = licenses.mit;
8120 };
8121 };
8122
8123 MySQL_python = buildPythonPackage rec {
8124 name = "MySQL-python-1.2.5";
8125
8126 disabled = isPy3k;
8127
8128 # plenty of failing tests
8129 doCheck = false;
8130
8131 src = pkgs.fetchurl {
8132 url = "http://pypi.python.org/packages/source/M/MySQL-python/${name}.zip";
8133 sha256 = "0x0c2jg0bb3pp84njaqiic050qkyd7ymwhfvhipnimg58yv40441";
8134 };
8135
8136 buildInputs = with self; [ nose pkgs.openssl ];
8137
8138 propagatedBuildInputs = with self; [ pkgs.mysql.lib pkgs.zlib ];
8139
8140 meta = {
8141 description = "MySQL database binding for Python";
8142
8143 homepage = http://sourceforge.net/projects/mysql-python;
8144 };
8145 };
8146
8147
8148 mysql_connector_repackaged = buildPythonPackage rec {
8149 name = "mysql-connector-repackaged-0.3.1";
8150
8151 src = pkgs.fetchurl {
8152 url = "http://pypi.python.org/packages/source/m/mysql-connector-repackaged/${name}.tar.gz";
8153 md5 = "0b17ad1cb3fe763fd44487cb97cf45b2";
8154 };
8155
8156 meta = {
8157 maintainers = with maintainers; [ garbas iElectric ];
8158 platforms = platforms.linux;
8159 };
8160 };
8161
8162
8163 namebench = buildPythonPackage (rec {
8164 name = "namebench-1.3.1";
8165 disabled = isPy3k || isPyPy;
8166
8167 src = pkgs.fetchurl {
8168 url = "http://namebench.googlecode.com/files/${name}-source.tgz";
8169 sha256 = "09clbcd6wxgk4r6qw7hb78h818mvca7lijigy1mlq5y1f3lgkk1h";
8170 };
8171
8172 # error: invalid command 'test'
8173 doCheck = false;
8174
8175 propagatedBuildInputs = [ self.tkinter ];
8176
8177 # namebench expects to be run from its own source tree (it uses relative
8178 # paths to various resources), make it work.
8179 postInstall = ''
8180 sed -i "s|import os|import os; os.chdir(\"$out/namebench\")|" "$out/bin/namebench.py"
8181 '';
8182
8183 meta = {
8184 homepage = http://namebench.googlecode.com/;
8185 description = "Find fastest DNS servers available";
8186 license = with licenses; [
8187 asl20
8188 # third-party program licenses (embedded in the sources)
8189 "LGPL" # Crystal_Clear
8190 free # dns
8191 asl20 # graphy
8192 "BSD" # jinja2
8193 ];
8194 longDescription = ''
8195 It hunts down the fastest DNS servers available for your computer to
8196 use. namebench runs a fair and thorough benchmark using your web
8197 browser history, tcpdump output, or standardized datasets in order
8198 to provide an individualized recommendation. namebench is completely
8199 free and does not modify your system in any way.
8200 '';
8201 };
8202 });
8203
8204
8205 nameparser = buildPythonPackage rec {
8206 name = "nameparser-${version}";
8207 version = "0.3.4";
8208
8209 src = pkgs.fetchurl {
8210 url = "https://pypi.python.org/packages/source/n/nameparser/${name}.tar.gz";
8211 sha256 = "1zi94m99ziwwd6kkip3w2xpnl05r2cfv9iq68inz7np81c3g8vag";
8212 };
8213
8214 meta = {
8215 description = "A simple Python module for parsing human names into their individual components";
8216 homepage = https://github.com/derek73/python-nameparser;
8217 license = licenses.lgpl21Plus;
8218 };
8219 };
8220
8221 nbxmpp = buildPythonPackage rec {
8222 name = "nbxmpp-0.5.3";
8223
8224 src = pkgs.fetchurl {
8225 name = "${name}.tar.gz";
8226 url = "https://python-nbxmpp.gajim.org/downloads/8";
8227 sha256 = "0dcr786dyips1fdvgsn8yvpgcz5j7217fi05c29cfypdl8jnp6mp";
8228 };
8229
8230 meta = {
8231 homepage = "https://python-nbxmpp.gajim.org/";
8232 description = "Non-blocking Jabber/XMPP module";
8233 license = licenses.gpl3;
8234 };
8235 };
8236
8237 sleekxmpp = buildPythonPackage rec {
8238 name = "sleekxmpp-${version}";
8239 version = "1.2.5";
8240
8241 disabled = (!isPy3k);
8242
8243 propagatedBuildInputs = with self ; [ dnspython3 pyasn1 ];
8244
8245 src = pkgs.fetchurl {
8246 url = "https://github.com/fritzy/SleekXMPP/archive/sleek-${version}.tar.gz";
8247 sha256 = "07zz0bm098zss0xww11gj45aw417nrkp9k1szzs1zm88wyfr1z31";
8248 };
8249
8250 meta = {
8251 description = "XMPP library for Python";
8252 license = licenses.mit;
8253 homepage = "http://sleekxmpp.com/";
8254 };
8255 };
8256
8257 slixmpp = buildPythonPackage rec {
8258 name = "slixmpp-${version}";
8259 version = "1.0.post5";
8260
8261 disabled = (!isPy34);
8262
8263 src = pkgs.fetchurl {
8264 url = "https://pypi.python.org/packages/source/s/slixmpp/${name}.tar.gz";
8265 sha256 = "0ik23w3y52m30z56874wgac07j70k7b06n20j44slii8avf58p4b";
8266 };
8267
8268 propagatedBuildInputs = with self ; [ aiodns pyasn1 ];
8269
8270 meta = {
8271 meta = "Elegant Python library for XMPP";
8272 license = licenses.mit;
8273 homepage = https://dev.louiz.org/projects/slixmpp;
8274 };
8275 };
8276
8277 netaddr = buildPythonPackage rec {
8278 name = "netaddr-0.7.5";
8279
8280 src = pkgs.fetchurl {
8281 url = "https://github.com/downloads/drkjam/netaddr/${name}.tar.gz";
8282 sha256 = "0ssxic389rdc79zkz8dxcjpqdi5qs80h12khkag410cl9cwk11f2";
8283 };
8284
8285 # error: invalid command 'test'
8286 doCheck = false;
8287
8288 meta = {
8289 homepage = https://github.com/drkjam/netaddr/;
8290 description = "A network address manipulation library for Python";
8291 };
8292 };
8293
8294 netifaces = buildPythonPackage rec {
8295 version = "0.10.4";
8296 name = "netifaces-${version}";
8297
8298 src = pkgs.fetchurl {
8299 url = "http://pypi.python.org/packages/source/n/netifaces/${name}.tar.gz";
8300 sha256 = "1plw237a4zib4z8s62g0mrs8gm3kjfrp5sxh6bbk9nl3rdls2mln";
8301 };
8302
8303 meta = {
8304 homepage = http://alastairs-place.net/projects/netifaces/;
8305 description = "Portable access to network interfaces from Python";
8306 };
8307 };
8308
8309 netlib = buildPythonPackage rec {
8310 baseName = "netlib";
8311 name = "${baseName}-${meta.version}";
8312 disabled = (!isPy27);
8313
8314 src = pkgs.fetchurl {
8315 url = "https://github.com/cortesi/netlib/archive/v${meta.version}.tar.gz";
8316 name = "${name}.tar.gz";
8317 sha256 = "1x2n126b7fal64fb5fzkp4by7ym0iswn3w9mh6pm4c1vjdpnk592";
8318 };
8319
8320 buildInputs = with self; [
8321 pyopenssl pyasn1
8322 ];
8323
8324 doCheck = false;
8325
8326 meta = {
8327 version = "0.10";
8328 description = ''Man-in-the-middle proxy'';
8329 homepage = "https://github.com/cortesi/netlib";
8330 license = licenses.mit;
8331 };
8332 };
8333
8334 nevow = buildPythonPackage (rec {
8335 name = "nevow-${version}";
8336 version = "0.10.0";
8337
8338 src = pkgs.fetchurl {
8339 url = "http://pypi.python.org/packages/source/N/Nevow/Nevow-${version}.tar.gz";
8340 sha256 = "90631f68f626c8934984908d3df15e7c198939d36be7ead1305479dfc67ff6d0";
8341 name = "${name}.tar.gz";
8342 };
8343
8344 propagatedBuildInputs = with self; [ twisted ];
8345
8346 postInstall = "twistd --help > /dev/null";
8347
8348 meta = {
8349 description = "Nevow, a web application construction kit for Python";
8350
8351 longDescription = ''
8352 Nevow - Pronounced as the French "nouveau", or "noo-voh", Nevow
8353 is a web application construction kit written in Python. It is
8354 designed to allow the programmer to express as much of the view
8355 logic as desired in Python, and includes a pure Python XML
8356 expression syntax named stan to facilitate this. However it
8357 also provides rich support for designer-edited templates, using
8358 a very small XML attribute language to provide bi-directional
8359 template manipulation capability.
8360
8361 Nevow also includes formless, a declarative syntax for
8362 specifying the types of method parameters and exposing these
8363 methods to the web. Forms can be rendered automatically, and
8364 form posts will be validated and input coerced, rendering error
8365 pages if appropriate. Once a form post has validated
8366 successfully, the method will be called with the coerced values.
8367 '';
8368
8369 homepage = http://divmod.org/trac/wiki/DivmodNevow;
8370
8371 license = "BSD-style";
8372 };
8373 });
8374
8375 nibabel = buildPythonPackage rec {
8376 version = "2.0.1";
8377 name = "nibabel-${version}";
8378
8379 src = pkgs.fetchurl {
8380 url = "http://pypi.python.org/packages/source/n/nibabel/${name}.tar.gz";
8381 md5 = "3be518fde5ec5b09483d4f28c81dc974";
8382 };
8383
8384 propagatedBuildInputs = with self; [
8385 numpy
8386 nose
8387 modules.sqlite3
8388 ];
8389
8390 meta = {
8391 homepage = http://nipy.org/nibabel/;
8392 description = "Access a multitude of neuroimaging data formats";
8393 license = "BSD";
8394 };
8395 };
8396
8397 nipype = buildPythonPackage rec {
8398 version = "0.10.0";
8399 name = "nipype-${version}";
8400
8401 src = pkgs.fetchurl {
8402 url = "http://pypi.python.org/packages/source/n/nipype/${name}.tar.gz";
8403 md5 = "480013709633a6d292e2ef668443e0c9";
8404 };
8405
8406 # Tests fail due to getcwd returning ENOENT???
8407 doCheck = false;
8408
8409 propagatedBuildInputs = with self; [
8410 numpy
8411 dateutil
8412 nose
8413 traits
8414 scipy
8415 nibabel
8416 networkx
8417 ];
8418
8419 meta = {
8420 homepage = http://nipy.org/nipype/;
8421 description = "Neuroimaging in Python: Pipelines and Interfaces";
8422 license = "BSD";
8423 };
8424 };
8425
8426 nose = buildPythonPackage rec {
8427 version = "1.3.4";
8428 name = "nose-${version}";
8429
8430 src = pkgs.fetchurl {
8431 url = "http://pypi.python.org/packages/source/n/nose/${name}.tar.gz";
8432 sha256 = "00qymfgwg4iam4xi0w9bnv7lcb3fypq1hzfafzgs1rfmwaj67g3n";
8433 };
8434
8435 buildInputs = with self; [ coverage ];
8436
8437 doCheck = false; # lot's of transient errors, too much hassle
8438 checkPhase = if python.is_py3k or false then ''
8439 ${python}/bin/${python.executable} setup.py build_tests
8440 '' else "" + ''
8441 rm functional_tests/test_multiprocessing/test_concurrent_shared.py* # see https://github.com/nose-devs/nose/commit/226bc671c73643887b36b8467b34ad485c2df062
8442 ${python}/bin/${python.executable} selftest.py
8443 '';
8444
8445 meta = {
8446 description = "A unittest-based testing framework for python that makes writing and running tests easier";
8447 };
8448 };
8449
8450 nose-selecttests = buildPythonPackage rec {
8451 version = "0.4";
8452 name = "nose-selecttests-${version}";
8453
8454 src = pkgs.fetchurl {
8455 url = "http://pypi.python.org/packages/source/n/nose-selecttests/${name}.zip";
8456 sha256 = "0lgrfgp3sq8xi8d9grrg0z8jsyk0wl8a3rxw31hb7vdncin5b7n5";
8457 };
8458
8459 propagatedBuildInputs = with self; [ nose ];
8460
8461 meta = {
8462 description = "Simple nose plugin that enables developers to run subset of collected tests to spare some waiting time for better things";
8463 };
8464 };
8465
8466
8467 nose2 = if isPy26 then null else (buildPythonPackage rec {
8468 name = "nose2-0.4.5";
8469 src = pkgs.fetchurl {
8470 url = "http://pypi.python.org/packages/source/n/nose2/${name}.tar.gz";
8471 md5 = "d7e51c848227488e3cc0424faf5511cd";
8472 };
8473 meta = {
8474 description = "nose2 is the next generation of nicer testing for Python";
8475 };
8476 propagatedBuildInputs = with self; [ six ];
8477 # AttributeError: 'module' object has no attribute 'collector'
8478 doCheck = false;
8479 });
8480
8481 nose-cover3 = buildPythonPackage rec {
8482 name = "nose-cover3-${version}";
8483 version = "0.1.0";
8484
8485 src = pkgs.fetchurl {
8486 url = "https://pypi.python.org/packages/source/n/nose-cover3/${name}.tar.gz";
8487 sha256 = "1la4hhc1yszjpcchvkqk5xmzlb2g1b3fgxj9wwc58qc549whlcc1";
8488 md5 = "82f981eaa007b430679899256050fa0c";
8489 };
8490
8491 propagatedBuildInputs = with self; [ nose ];
8492
8493 meta = {
8494 description = "Coverage 3.x support for Nose";
8495 homepage = https://github.com/ask/nosecover3;
8496 license = licenses.lgpl21;
8497 };
8498 };
8499
8500 nosexcover = buildPythonPackage (rec {
8501 name = "nosexcover-1.0.10";
8502
8503 src = pkgs.fetchurl {
8504 url = "https://pypi.python.org/packages/source/n/nosexcover/${name}.tar.gz";
8505 md5 = "12bf494a801b376debeb6a167c247391";
8506 };
8507
8508 propagatedBuildInputs = with self; [ coverage nose ];
8509
8510 meta = {
8511 description = "Extends nose.plugins.cover to add Cobertura-style XML reports";
8512
8513 homepage = http://github.com/cmheisel/nose-xcover/;
8514
8515 license = licenses.bsd3;
8516 };
8517 });
8518
8519 nosejs = buildPythonPackage {
8520 name = "nosejs-0.9.4";
8521 src = pkgs.fetchurl {
8522 url = https://pypi.python.org/packages/source/N/NoseJS/NoseJS-0.9.4.tar.gz;
8523 sha256 = "0qrhkd3sga56qf6k0sqyhwfcladwi05gl6aqmr0xriiq1sgva5dy";
8524 };
8525 buildInputs = with self; [ nose ];
8526 };
8527
8528 nose-cprof = buildPythonPackage rec {
8529 name = "nose-cprof-0.1-0";
8530 disabled = isPy3k;
8531
8532 src = pkgs.fetchurl {
8533 url = "https://pypi.python.org/packages/source/n/nose-cprof/${name}.tar.gz";
8534 md5 = "5db27c3b8f01915335ae6fc5fd3afd44";
8535 };
8536
8537 meta = {
8538 description = "A python nose plugin to profile using cProfile rather than the default Hotshot profiler";
8539 };
8540
8541 buildInputs = with self; [ nose ];
8542 };
8543
8544
8545 notify = pkgs.stdenv.mkDerivation (rec {
8546 name = "python-notify-0.1.1";
8547
8548 src = pkgs.fetchurl {
8549 url = http://www.galago-project.org/files/releases/source/notify-python/notify-python-0.1.1.tar.bz2;
8550 sha256 = "1kh4spwgqxm534qlzzf2ijchckvs0pwjxl1irhicjmlg7mybnfvx";
8551 };
8552
8553 patches = singleton (pkgs.fetchurl {
8554 name = "libnotify07.patch";
8555 url = "http://pkgs.fedoraproject.org/cgit/notify-python.git/plain/"
8556 + "libnotify07.patch?id2=289573d50ae4838a1658d573d2c9f4c75e86db0c";
8557 sha256 = "1lqdli13mfb59xxbq4rbq1f0znh6xr17ljjhwmzqb79jl3dig12z";
8558 });
8559
8560 postPatch = ''
8561 sed -i -e '/^PYGTK_CODEGEN/s|=.*|="${self.pygtk}/bin/pygtk-codegen-2.0"|' \
8562 configure
8563 '';
8564
8565 buildInputs = with self; [ python pkgs.pkgconfig pkgs.libnotify pygobject pygtk pkgs.glib pkgs.gtk pkgs.dbus_glib ];
8566
8567 postInstall = "cd $out/lib/python*/site-packages && ln -s gtk-*/pynotify .";
8568
8569 meta = {
8570 description = "Python bindings for libnotify";
8571 homepage = http://www.galago-project.org/;
8572 };
8573 });
8574
8575 notmuch = buildPythonPackage rec {
8576 name = "python-${pkgs.notmuch.name}";
8577
8578 src = pkgs.notmuch.src;
8579
8580 sourceRoot = pkgs.notmuch.pythonSourceRoot;
8581
8582 buildInputs = with self; [ python pkgs.notmuch ];
8583
8584 meta = {
8585 description = "A Python wrapper around notmuch";
8586 homepage = http://notmuchmail.org/;
8587 maintainers = with maintainers; [ garbas ];
8588 };
8589 };
8590
8591 ntplib = buildPythonPackage rec {
8592 name = "ntplib-0.3.2";
8593 src = pkgs.fetchurl {
8594 url = https://pypi.python.org/packages/source/n/ntplib/ntplib-0.3.2.tar.gz;
8595 md5 = "0f386dc00c0056ac4d77af0b4c21bb8e";
8596 };
8597
8598 meta = {
8599 description = "Python NTP library";
8600 };
8601 };
8602
8603 numexpr = buildPythonPackage rec {
8604 version = "2.4.3";
8605 name = "numexpr-${version}";
8606
8607 src = pkgs.fetchurl {
8608 url = "https://pypi.python.org/packages/source/n/numexpr/${name}.tar.gz";
8609 sha256 = "3ae7191c89df40db6b0a8637a4dace7c5956bc910793a53225f985f3b443c722";
8610 };
8611
8612 # Tests fail with python 3. https://github.com/pydata/numexpr/issues/177
8613 doCheck = !isPy3k;
8614
8615 propagatedBuildInputs = with self; [ numpy ];
8616
8617 # Run the test suite.
8618 # It requires the build path to be in the python search path.
8619 checkPhase = ''
8620 ${python}/bin/${python.executable} <<EOF
8621 import sysconfig
8622 import sys
8623 import os
8624 f = "lib.{platform}-{version[0]}.{version[1]}"
8625 lib = f.format(platform=sysconfig.get_platform(),
8626 version=sys.version_info)
8627 build = os.path.join(os.getcwd(), 'build', lib)
8628 sys.path.insert(0, build)
8629 import numexpr
8630 r = numexpr.test()
8631 if not r.wasSuccessful():
8632 sys.exit(1)
8633 EOF
8634 '';
8635
8636 meta = {
8637 description = "Fast numerical array expression evaluator for NumPy";
8638 homepage = "https://github.com/pydata/numexpr";
8639 license = licenses.mit;
8640 };
8641 };
8642
8643 numpy = let
8644 support = import ../development/python-modules/numpy-scipy-support.nix {
8645 inherit python;
8646 openblas = pkgs.openblasCompat;
8647 pkgName = "numpy";
8648 };
8649 in buildPythonPackage ( rec {
8650 name = "numpy-1.9.2";
8651
8652 src = pkgs.fetchurl {
8653 url = "mirror://sourceforge/numpy/${name}.tar.gz";
8654 sha256 = "0apgmsk9jlaphb2dp1zaxqzdxkf69h1y3iw2d1pcnkj31cmmypij";
8655 };
8656
8657 disabled = isPyPy; # WIP
8658
8659 preConfigure = ''
8660 sed -i 's/-faltivec//' numpy/distutils/system_info.py
8661 sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
8662 '';
8663
8664 inherit (support) preBuild checkPhase;
8665
8666 setupPyBuildFlags = ["--fcompiler='gnu95'"];
8667
8668 buildInputs = [ pkgs.gfortran self.nose ];
8669 propagatedBuildInputs = [ support.openblas ];
8670
8671 meta = {
8672 description = "Scientific tools for Python";
8673 homepage = "http://numpy.scipy.org/";
8674 };
8675 });
8676
8677
8678 nwdiag = buildPythonPackage rec {
8679 name = "nwdiag-1.0.3";
8680
8681 src = pkgs.fetchurl {
8682 url = "https://pypi.python.org/packages/source/n/nwdiag/${name}.tar.gz";
8683 sha256 = "0n7ary1fngxk8bk15vabc8fhnmxlh098piciwaviwn7l4a5q1zys";
8684 };
8685
8686 buildInputs = with self; [ pep8 nose unittest2 docutils ];
8687
8688 propagatedBuildInputs = with self; [ blockdiag ];
8689
8690 # tests fail
8691 doCheck = false;
8692
8693 meta = {
8694 description = "Generate network-diagram image from spec-text file (similar to Graphviz)";
8695 homepage = http://blockdiag.com/;
8696 license = licenses.asl20;
8697 platforms = platforms.linux;
8698 maintainers = with maintainers; [ bjornfor ];
8699 };
8700 };
8701
8702 livestreamer = buildPythonPackage rec {
8703 version = "1.12.2";
8704 name = "livestreamer-${version}";
8705 disabled = isPyPy;
8706
8707 src = pkgs.fetchurl {
8708 url = "https://github.com/chrippa/livestreamer/archive/v${version}.tar.gz";
8709 sha256 = "1fp3d3z2grb1ls97smjkraazpxnvajda2d1g1378s6gzmda2jvjd";
8710 };
8711
8712 buildInputs = [ pkgs.makeWrapper ];
8713
8714 propagatedBuildInputs = with self; [ pkgs.rtmpdump pycrypto requests2 ]
8715 ++ optionals isPy26 [ singledispatch futures argparse ]
8716 ++ optionals isPy27 [ singledispatch futures ]
8717 ++ optionals isPy33 [ singledispatch ];
8718
8719 postInstall = ''
8720 wrapProgram $out/bin/livestreamer --prefix PATH : ${pkgs.rtmpdump}/bin
8721 '';
8722
8723 meta = {
8724 homepage = http://livestreamer.tanuki.se;
8725 description = ''
8726 Livestreamer is CLI program that extracts streams from various
8727 services and pipes them into a video player of choice.
8728 '';
8729 license = licenses.bsd2;
8730 maintainers = with maintainers; [ fuuzetsu ];
8731 };
8732 };
8733
8734 oauth = buildPythonPackage (rec {
8735 name = "oauth-1.0.1";
8736
8737 src = pkgs.fetchurl {
8738 url = "http://pypi.python.org/packages/source/o/oauth/oauth-1.0.1.tar.gz";
8739 sha256 = "0pdgi35hczsslil4890xqawnbpdazkgf2v1443847h5hy2gq2sg7";
8740 };
8741
8742 meta = {
8743 homepage = http://code.google.com/p/oauth;
8744 description = "Library for OAuth version 1.0a";
8745 license = licenses.mit;
8746 platforms = platforms.all;
8747 };
8748 });
8749
8750 oauth2 = buildPythonPackage (rec {
8751 name = "oauth2-1.5.211";
8752 disabled = isPy3k;
8753
8754 src = pkgs.fetchurl {
8755 url = "http://pypi.python.org/packages/source/o/oauth2/oauth2-1.5.211.tar.gz";
8756 sha256 = "82a38f674da1fa496c0fc4df714cbb058540bed72a30c50a2e344b0d984c4d21";
8757 };
8758
8759 propagatedBuildInputs = with self; [ httplib2 ];
8760
8761 buildInputs = with self; [ mock coverage ];
8762
8763 # ServerNotFoundError: Unable to find the server at oauth-sandbox.sevengoslings.net
8764 doCheck = false;
8765
8766 meta = {
8767 homepage = "https://github.com/simplegeo/python-oauth2";
8768 description = "library for OAuth version 1.0";
8769 license = licenses.mit;
8770 maintainers = with maintainers; [ garbas ];
8771 platforms = platforms.linux;
8772 };
8773 });
8774
8775 oauth2client = pythonPackages.buildPythonPackage rec {
8776 name = "oauth2client-1.4.7";
8777
8778 src = pkgs.fetchurl {
8779 url = "https://pypi.python.org/packages/source/o/oauth2client/oauth2client-1.4.7.tar.gz";
8780 md5 = "62747643d5af57e57b09e176eda1c1dd";
8781 };
8782
8783 propagatedBuildInputs = with pythonPackages; [ httplib2 pyasn1 pyasn1-modules rsa ];
8784 doCheck = false;
8785
8786 meta = {
8787 description = "A client library for OAuth 2.0";
8788 homepage = http://github.com/google/oauth2client/;
8789 license = licenses.bsd2;
8790 };
8791 };
8792
8793 oauthlib = buildPythonPackage rec {
8794 version = "0.7.2";
8795 name = "oauthlib-${version}";
8796
8797 src = pkgs.fetchurl {
8798 url = "https://github.com/idan/oauthlib/archive/${version}.tar.gz";
8799 sha256 = "08b7swyswhxh90k9mp54rk1qks2l2s2pdcjap6x118y27p7dhp4h";
8800 };
8801
8802 buildInputs = with self; [ mock nose unittest2 ];
8803
8804 propagatedBuildInputs = with self; [ pycrypto blinker pyjwt ];
8805
8806 meta = {
8807 homepage = https://github.com/idan/oauthlib;
8808 downloadPage = https://github.com/idan/oauthlib/releases;
8809 description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic";
8810 maintainers = with maintainers; [ prikhi ];
8811 };
8812 };
8813
8814
8815 obfsproxy = buildPythonPackage ( rec {
8816 name = "obfsproxy-${version}";
8817 version = "0.2.13";
8818
8819 src = pkgs.fetchgit {
8820 url = meta.repositories.git;
8821 rev = "refs/tags/${name}";
8822 sha256 = "16jb8x5hbs3g4dq10y6rqc1005bnffwnlws8x7j1d96n7k9mjn8h";
8823 };
8824
8825 propagatedBuildInputs = with self;
8826 [ pyptlib argparse twisted pycrypto pyyaml ];
8827
8828 meta = {
8829 description = "a pluggable transport proxy";
8830 homepage = https://www.torproject.org/projects/obfsproxy;
8831 repositories.git = https://git.torproject.org/pluggable-transports/obfsproxy.git;
8832 maintainers = with maintainers; [ phreedom thoughtpolice ];
8833 };
8834 });
8835
8836 odo = buildPythonPackage rec {
8837 name = "odo-${version}";
8838 version= "0.3.3";
8839
8840 src = pkgs.fetchurl {
8841 url = "https://pypi.python.org/packages/source/o/odo/${name}.tar.gz";
8842 sha256 = "2499ee86c26c74daa28f21ed235ca331911065950deea5169ebdb7d5dae6ebef";
8843 };
8844
8845 propagatedBuildInputs = with self; [ datashape numpy pandas toolz multipledispatch networkx ];
8846
8847 meta = {
8848 homepage = https://github.com/ContinuumIO/odo;
8849 description = "Data migration utilities";
8850 license = licenses.bsdOriginal;
8851 };
8852 };
8853
8854 offtrac = buildPythonPackage rec {
8855 name = "offtrac-0.1.0";
8856 meta.maintainers = with maintainers; [ mornfall ];
8857
8858 src = pkgs.fetchurl {
8859 url = "https://pypi.python.org/packages/source/o/offtrac/${name}.tar.gz";
8860 sha256 = "06vd010pa1z7lyfj1na30iqzffr4kzj2k2sba09spik7drlvvl56";
8861 };
8862 doCheck = false;
8863 };
8864
8865 openpyxl = buildPythonPackage rec {
8866 version = "2.2.4";
8867 name = "openpyxl-${version}";
8868
8869 src = pkgs.fetchhg {
8870 url = "https://bitbucket.org/openpyxl/openpyxl";
8871 rev = "${version}";
8872 sha256 = "1g9imbg4sjfyv5sqg2s7h4svhdmbnvq16hvc1a8jpaqq8nc2vjj2";
8873 };
8874
8875 propagatedBuildInputs = with self; [ jdcal ];
8876
8877 meta = {
8878 description = "A Python library to read/write Excel 2007 xlsx/xlsm files";
8879 homepage = "https://openpyxl.readthedocs.org";
8880 license = licenses.mit;
8881 maintainers = with maintainers; [ lihop ];
8882 platforms = platforms.all;
8883 };
8884 };
8885
8886 # optfunc = buildPythonPackage ( rec {
8887 # name = "optfunc-git";
8888 #
8889 # src = pkgs.fetchgit {
8890 # url = "https://github.com/simonw/optfunc.git";
8891 # rev = "e3fa034a545ed94ac5a039cf5b170c7d0ee21b7b";
8892 # };
8893 #
8894 # installCommand = ''
8895 # dest=$(toPythonPath $out)/optfunc
8896 # mkdir -p $dest
8897 # cp * $dest/
8898 # '';
8899 #
8900 # doCheck = false;
8901 #
8902 # meta = {
8903 # description = "A new experimental interface to optparse which works by introspecting a function definition";
8904 # homepage = "http://simonwillison.net/2009/May/28/optfunc/";
8905 # };
8906 # });
8907
8908 ordereddict = buildPythonPackage rec {
8909 name = "ordereddict-1.1";
8910 disabled = !isPy26;
8911
8912 src = pkgs.fetchurl {
8913 url = "http://pypi.python.org/packages/source/o/ordereddict/${name}.tar.gz";
8914 md5 = "a0ed854ee442051b249bfad0f638bbec";
8915 };
8916
8917 meta = {
8918 description = "A drop-in substitute for Py2.7's new collections.OrderedDict that works in Python 2.4-2.6.";
8919 license = licenses.bsd3;
8920 maintainers = with maintainers; [ garbas ];
8921 };
8922 };
8923
8924 ply = buildPythonPackage (rec {
8925 name = "ply-3.4";
8926
8927 src = pkgs.fetchurl {
8928 url = "http://www.dabeaz.com/ply/${name}.tar.gz";
8929 sha256 = "0sslnbpws847r1j1f41fjpn76w0asywfqgxwzyjrvmmxnw8myhxg";
8930 };
8931
8932 meta = {
8933 homepage = http://www.dabeaz.com/ply/;
8934
8935 description = "PLY (Python Lex-Yacc), an implementation of the lex and yacc parsing tools for Python";
8936
8937 longDescription = ''
8938 PLY is an implementation of lex and yacc parsing tools for Python.
8939 In a nutshell, PLY is nothing more than a straightforward lex/yacc
8940 implementation. Here is a list of its essential features: It's
8941 implemented entirely in Python; It uses LR-parsing which is
8942 reasonably efficient and well suited for larger grammars; PLY
8943 provides most of the standard lex/yacc features including support for
8944 empty productions, precedence rules, error recovery, and support for
8945 ambiguous grammars; PLY is straightforward to use and provides very
8946 extensive error checking; PLY doesn't try to do anything more or less
8947 than provide the basic lex/yacc functionality. In other words, it's
8948 not a large parsing framework or a component of some larger system.
8949 '';
8950
8951 license = licenses.bsd3;
8952
8953 maintainers = [ ];
8954 };
8955 });
8956
8957 osc = buildPythonPackage (rec {
8958 name = "osc-0.133+git";
8959 disabled = isPy3k;
8960
8961 src = pkgs.fetchgit {
8962 url = git://gitorious.org/opensuse/osc.git;
8963 rev = "6cd541967ee2fca0b89e81470f18b97a3ffc23ce";
8964 sha256 = "a39ce0e321e40e9758bf7b9128d316c71b35b80eabc84f13df492083bb6f1cc6";
8965 };
8966
8967 buildPhase = "${python}/bin/${python.executable} setup.py build";
8968 doCheck = false;
8969 postInstall = "ln -s $out/bin/osc-wrapper.py $out/bin/osc";
8970
8971 propagatedBuildInputs = with self; [ self.m2crypto ];
8972
8973 });
8974
8975 pagerduty = buildPythonPackage rec {
8976 name = "pagerduty-${version}";
8977 version = "0.2.1";
8978 disabled = isPy3k;
8979
8980 src = pkgs.fetchurl {
8981 url = "https://pypi.python.org/packages/source/p/pagerduty/pagerduty-${version}.tar.gz";
8982 md5 = "8109a330d16751a7f4041c0ccedec787";
8983 };
8984 };
8985
8986 pandas = buildPythonPackage rec {
8987 name = "pandas-0.16.2";
8988
8989 src = pkgs.fetchurl {
8990 url = "https://pypi.python.org/packages/source/p/pandas/${name}.tar.gz";
8991 sha256 = "10agmrkps8bi5948vwpipfxds5kj1d076m9i0nhaxwqiw7gm6670";
8992 };
8993
8994 buildInputs = [ self.nose ];
8995 propagatedBuildInputs = with self; [
8996 dateutil
8997 numpy
8998 scipy
8999 numexpr
9000 pytz
9001 xlrd
9002 bottleneck
9003 sqlalchemy9
9004 lxml
9005 html5lib
9006 modules.sqlite3
9007 beautifulsoup4
9008 ];
9009
9010 preCheck = ''
9011 # Broken test, probably https://github.com/pydata/pandas/issues/10312:
9012 rm pandas/io/tests/test_html.py
9013
9014 # Hitting https://github.com/pydata/pandas/pull/7362 on python
9015 # 3.3 and 3.4, not sure why:
9016 rm pandas/tseries/tests/test_daterange.py
9017
9018 # Need to skip this test; insert a line here... hacky but oh well.
9019 badtest=pandas/tseries/tests/test_timezones.py
9020 fixed=$TMPDIR/fixed_test_timezones.py
9021 touch $fixed
9022 head -n 602 $badtest > $fixed
9023 echo ' raise nose.SkipTest("Not working")' >> $fixed
9024 tail -n +603 $badtest >> $fixed
9025 mv $fixed $badtest
9026 '';
9027
9028 checkPhase = ''
9029 runHook preCheck
9030
9031 # The flag `-A 'not network'` will disable tests that use internet.
9032 # The `-e` flag disables a few problematic tests.
9033 ${python.executable} setup.py nosetests -A 'not network' --stop \
9034 -e 'test_clipboard|test_series' --verbosity=3
9035
9036 runHook postCheck
9037 '';
9038
9039 meta = {
9040 homepage = "http://pandas.pydata.org/";
9041 description = "Python Data Analysis Library";
9042 license = licenses.bsd3;
9043 maintainers = with maintainers; [ raskin ];
9044 platforms = platforms.unix;
9045 };
9046 };
9047
9048 xlrd = buildPythonPackage rec {
9049 name = "xlrd-${version}";
9050 version = "0.9.3";
9051 src = pkgs.fetchurl {
9052 url = "https://pypi.python.org/packages/source/x/xlrd/xlrd-${version}.tar.gz";
9053 sha256 = "174ks80h0g9p67ahnakf0y7di3gvbhxvb1jlk097gvd7gpi3aflk";
9054 };
9055 };
9056
9057 bottleneck = buildPythonPackage rec {
9058 name = "Bottleneck-${version}";
9059 version = "1.0.0";
9060 src = pkgs.fetchurl {
9061 url = "https://pypi.python.org/packages/source/B/Bottleneck/Bottleneck-${version}.tar.gz";
9062 sha256 = "15dl0ll5xmfzj2fsvajzwxsb9dbw5i9fx9i4r6n4i5nzzba7m6wd";
9063 };
9064 propagatedBuildInputs = [self.numpy];
9065 };
9066
9067 parsedatetime = buildPythonPackage rec {
9068 name = "parsedatetime-${version}";
9069 version = "1.4";
9070
9071 src = pkgs.fetchurl {
9072 url = "https://pypi.python.org/packages/source/p/parsedatetime/${name}.tar.gz";
9073 md5 = "3aca729761be5259a508ed184df73c68";
9074 };
9075 };
9076
9077 paramiko = buildPythonPackage rec {
9078 name = "paramiko-1.15.1";
9079
9080 src = pkgs.fetchurl {
9081 url = "http://pypi.python.org/packages/source/p/paramiko/${name}.tar.gz";
9082 md5 = "48c274c3f9b1282932567b21f6acf3b5";
9083 };
9084
9085 propagatedBuildInputs = with self; [ pycrypto ecdsa ];
9086
9087 # https://github.com/paramiko/paramiko/issues/449
9088 doCheck = !(isPyPy || isPy33);
9089 checkPhase = ''
9090 # test_util needs to resolve an hostname, thus failing when the fw blocks it
9091 sed '/UtilTest/d' -i test.py
9092
9093 ${python}/bin/${python.executable} test.py --no-sftp --no-big-file
9094 '';
9095
9096 meta = {
9097 homepage = "https://github.com/paramiko/paramiko/";
9098 description = "Native Python SSHv2 protocol library";
9099 license = licenses.lgpl21Plus;
9100 maintainers = with maintainers; [ aszlig ];
9101
9102 longDescription = ''
9103 This is a library for making SSH2 connections (client or server).
9104 Emphasis is on using SSH2 as an alternative to SSL for making secure
9105 connections between python scripts. All major ciphers and hash methods
9106 are supported. SFTP client and server mode are both supported too.
9107 '';
9108 };
9109 };
9110
9111 patsy = buildPythonPackage rec {
9112 name = "patsy-${version}";
9113 version = "0.3.0";
9114
9115 src = pkgs.fetchurl{
9116 url = "https://pypi.python.org/packages/source/p/patsy/${name}.zip";
9117 md5 = "7545518b413136ba8343dcebea07e5e2";
9118 };
9119
9120 propagatedBuildInputs = with self; [six numpy];
9121
9122 meta = {
9123 description = "A Python package for describing statistical models";
9124 homepage = "https://github.com/pydata/patsy";
9125 license = licenses.bsd2;
9126 };
9127 };
9128
9129 paste = buildPythonPackage rec {
9130 name = "paste-1.7.5.1";
9131 disabled = isPy3k;
9132
9133 src = pkgs.fetchurl {
9134 url = http://pypi.python.org/packages/source/P/Paste/Paste-1.7.5.1.tar.gz;
9135 md5 = "7ea5fabed7dca48eb46dc613c4b6c4ed";
9136 };
9137
9138 buildInputs = with self; [ nose ];
9139
9140 doCheck = false; # some files required by the test seem to be missing
9141
9142 meta = {
9143 description = "Tools for using a Web Server Gateway Interface stack";
9144 homepage = http://pythonpaste.org/;
9145 };
9146 };
9147
9148
9149 paste_deploy = buildPythonPackage rec {
9150 version = "1.5.2";
9151 name = "paste-deploy-${version}";
9152
9153 src = pkgs.fetchurl {
9154 url = "http://pypi.python.org/packages/source/P/PasteDeploy/PasteDeploy-${version}.tar.gz";
9155 md5 = "352b7205c78c8de4987578d19431af3b";
9156 };
9157
9158 buildInputs = with self; [ nose ];
9159
9160 meta = {
9161 description = "Load, configure, and compose WSGI applications and servers";
9162 homepage = http://pythonpaste.org/deploy/;
9163 platforms = platforms.all;
9164 };
9165 };
9166
9167 pasteScript = buildPythonPackage rec {
9168 version = "1.7.5";
9169 name = "PasterScript-${version}";
9170
9171 src = pkgs.fetchurl {
9172 url = "http://pypi.python.org/packages/source/P/PasteScript/${name}.tar.gz";
9173 sha256 = "2b685be69d6ac8bc0fe6f558f119660259db26a15e16a4943c515fbee8093539";
9174 };
9175
9176 doCheck = false;
9177 buildInputs = with self; [ nose ];
9178 propagatedBuildInputs = with self; [ paste paste_deploy cheetah argparse ];
9179
9180 meta = {
9181 description = "A pluggable command-line frontend, including commands to setup package file layouts";
9182 homepage = http://pythonpaste.org/script/;
9183 platforms = platforms.all;
9184 };
9185 };
9186
9187 pathlib = buildPythonPackage rec {
9188 name = "pathlib-${version}";
9189 version = "1.0.1";
9190 disabled = pythonAtLeast "3.4"; # Was added to std library in Python 3.4
9191
9192 src = pkgs.fetchurl {
9193 url = "https://pypi.python.org/packages/source/p/pathlib/${name}.tar.gz";
9194 sha256 = "17zajiw4mjbkkv6ahp3xf025qglkj0805m9s41c45zryzj6p2h39";
9195 };
9196
9197 meta = {
9198 description = "Object-oriented filesystem paths";
9199 homepage = "https://pathlib.readthedocs.org/";
9200 license = licenses.mit;
9201 };
9202 };
9203
9204 pathpy = buildPythonPackage rec {
9205 name = "path.py-5.2";
9206
9207 src = pkgs.fetchurl {
9208 url = "https://pypi.python.org/packages/source/p/path.py/${name}.zip";
9209 sha256 = "0n1kpbbm1dg5f484yzxr7gb3ak6vjp92j70nw3bgjzsj9fh26afq";
9210 };
9211
9212 meta = {
9213 description = "A module wrapper for os.path";
9214 homepage = http://github.com/jaraco/path.py;
9215 license = licenses.mit;
9216 platforms = platforms.linux;
9217 };
9218 };
9219
9220 paypalrestsdk = buildPythonPackage rec {
9221 name = "paypalrestsdk-0.7.0";
9222
9223 src = pkgs.fetchurl {
9224 url = "https://pypi.python.org/packages/source/p/paypalrestsdk/${name}.tar.gz";
9225 sha256 = "117kfipzfahf9ysv414bh1mmm5cc9ck5zb6rhpslx1f8gk3frvd6";
9226 };
9227
9228 propagatedBuildInputs = with self; [ httplib2 ];
9229
9230 meta = {
9231 homepage = https://developer.paypal.com/;
9232 description = "Python APIs to create, process and manage payment";
9233 license = "PayPal SDK License";
9234 };
9235 };
9236
9237 pbr = buildPythonPackage rec {
9238 name = "pbr-0.9.0";
9239
9240 src = pkgs.fetchurl {
9241 url = "https://pypi.python.org/packages/source/p/pbr/${name}.tar.gz";
9242 sha256 = "e5a57c434b1faa509a00bf458d2c7af965199d9cced3d05a547bff9880f7e8cb";
9243 };
9244
9245 # pip depend on $HOME setting
9246 preConfigure = "export HOME=$TMPDIR";
9247
9248 doCheck = false;
9249
9250 buildInputs = with self; [ pip ];
9251
9252 meta = {
9253 description = "Python Build Reasonableness";
9254 homepage = "http://docs.openstack.org/developer/pbr/";
9255 license = licenses.asl20;
9256 };
9257 };
9258
9259 pelican = buildPythonPackage rec {
9260 name = "pelican-${version}";
9261 version = "3.6.0";
9262 disabled = isPy26;
9263
9264 src = pkgs.fetchFromGitHub {
9265 owner = "getpelican";
9266 repo = "pelican";
9267 rev = version;
9268 sha256 = "0a9r90d85rn2cvl6yyk6q5i5kwz9igfj8fdwi37zsx4ijhmn2b5j";
9269 };
9270
9271 buildInputs = with self; [
9272 pkgs.glibcLocales
9273 pkgs.pandoc
9274 pkgs.git
9275 mock
9276 nose
9277 markdown
9278 beautifulsoup4
9279 lxml
9280 typogrify
9281 ];
9282
9283 propagatedBuildInputs = with self; [
9284 jinja2 pygments docutils pytz unidecode six dateutil feedgenerator
9285 blinker pillow beautifulsoup4 markupsafe
9286 ];
9287
9288 postPatch= ''
9289 sed -i -e "s|'git'|'${pkgs.git}/bin/git'|" pelican/tests/test_pelican.py
9290 '';
9291
9292 preConfigure = ''
9293 export LC_ALL="en_US.UTF-8"
9294 '';
9295
9296 meta = {
9297 description = "A tool to generate a static blog from reStructuredText or Markdown input files";
9298 homepage = "http://getpelican.com/";
9299 license = licenses.agpl3;
9300 maintainers = with maintainers; [ offline prikhi garbas ];
9301 };
9302 };
9303
9304 pep8 = buildPythonPackage rec {
9305 name = "pep8-${version}";
9306 version = "1.5.7";
9307
9308 src = pkgs.fetchurl {
9309 url = "http://pypi.python.org/packages/source/p/pep8/${name}.tar.gz";
9310 md5 = "f6adbdd69365ecca20513c709f9b7c93";
9311 };
9312
9313 meta = {
9314 homepage = "http://pep8.readthedocs.org/";
9315 description = "Python style guide checker";
9316 license = licenses.mit;
9317 maintainers = with maintainers; [ garbas ];
9318 };
9319 };
9320
9321 pep257 = buildPythonPackage rec {
9322 name = "pep257-${version}";
9323 version = "0.3.2";
9324
9325 src = pkgs.fetchurl {
9326 url = "https://github.com/GreenSteam/pep257/archive/${version}.tar.gz";
9327 sha256 = "0v8aq0xzsa7clazszxl42904c3jpq69lg8a5hg754bqcqf72hfrn";
9328 };
9329
9330 meta = {
9331 homepage = https://github.com/GreenSteam/pep257/;
9332 description = "Python docstring style checker";
9333 longDescription = "Static analysis tool for checking compliance with Python PEP 257.";
9334 lecense = licenses.mit;
9335 };
9336 };
9337
9338 percol = buildPythonPackage rec {
9339 name = "percol-${version}";
9340 version = "0.0.8";
9341 disabled = isPy3k;
9342
9343 src = pkgs.fetchurl {
9344 url = "https://pypi.python.org/packages/source/p/percol/${name}.tar.gz";
9345 sha256 = "169s5mhw1s60qbsd6pkf9bb2x6wfgx8hn8nw9d4qgc68qnnpp2cj";
9346 };
9347
9348 propagatedBuildInputs = with self; [ modules.curses ];
9349
9350 meta = {
9351 homepage = https://github.com/mooz/percol;
9352 description = "Adds flavor of interactive filtering to the traditional pipe concept of shell";
9353 license = licenses.mit;
9354 maintainers = with maintainers; [ koral ];
9355 };
9356 };
9357
9358
9359 pexpect = buildPythonPackage rec {
9360 version = "3.3";
9361 name = "pexpect-${version}";
9362
9363 src = pkgs.fetchurl {
9364 url = "https://pypi.python.org/packages/source/p/pexpect/${name}.tar.gz";
9365 sha256 = "dfea618d43e83cfff21504f18f98019ba520f330e4142e5185ef7c73527de5ba";
9366 };
9367
9368 meta = {
9369 homepage = http://www.noah.org/wiki/Pexpect;
9370 description = "Automate interactive console applications such as ssh, ftp, etc";
9371 license = licenses.mit;
9372
9373 longDescription = ''
9374 Pexpect is similar to the Don Libes "Expect" system, but Pexpect
9375 as a different interface that is easier to understand. Pexpect
9376 is basically a pattern matching system. It runs programs and
9377 watches output. When output matches a given pattern Pexpect can
9378 respond as if a human were typing responses. Pexpect can be used
9379 for automation, testing, and screen scraping. Pexpect can be
9380 used for automating interactive console applications such as
9381 ssh, ftp, passwd, telnet, etc. It can also be used to control
9382 web applications via "lynx", "w3m", or some other text-based web
9383 browser. Pexpect is pure Python. Unlike other Expect-like
9384 modules for Python Pexpect does not require TCL or Expect nor
9385 does it require C extensions to be compiled. It should work on
9386 any platform that supports the standard Python pty module.
9387 '';
9388 };
9389 };
9390
9391
9392 pg8000 = buildPythonPackage rec {
9393 name = "pg8000-1.10.1";
9394
9395 src = pkgs.fetchurl {
9396 url = "http://pypi.python.org/packages/source/p/pg8000/${name}.tar.gz";
9397 md5 = "173275fd76628b0e0cbed70ed9ce9eb9";
9398 };
9399
9400 propagatedBuildInputs = with self; [ pytz ];
9401
9402 meta = {
9403 maintainers = with maintainers; [ garbas iElectric ];
9404 platforms = platforms.linux;
9405 };
9406 };
9407
9408 pgcli = buildPythonPackage rec {
9409 name = "pgcli-${version}";
9410 version = "0.19.1";
9411
9412 src = pkgs.fetchFromGitHub {
9413 sha256 = "1r34bbqbd4h72cl0cxi9w6q2nwx806wpxq220mzyiy8g45xv0ghj";
9414 rev = "v${version}";
9415 repo = "pgcli";
9416 owner = "dbcli";
9417 };
9418
9419 propagatedBuildInputs = with self; [
9420 click configobj prompt_toolkit psycopg2 pygments sqlparse
9421 ];
9422
9423 postPatch = ''
9424 substituteInPlace setup.py --replace "==" ">="
9425 '';
9426
9427 meta = {
9428 inherit version;
9429 description = "Command-line interface for PostgreSQL";
9430 longDescription = ''
9431 Rich command-line interface for PostgreSQL with auto-completion and
9432 syntax highlighting.
9433 '';
9434 homepage = http://pgcli.com;
9435 license = licenses.bsd3;
9436 maintainers = with maintainers; [ nckx ];
9437 };
9438 };
9439
9440 mycli = buildPythonPackage rec {
9441 name = "mycli-${version}";
9442 version = "1.3.0";
9443
9444 src = pkgs.fetchFromGitHub {
9445 sha256 = "109jz84m29v4fjhk2ngsfc1b6zw4w6dbjlr2izvib63ylcz7b5nh";
9446 rev = "v${version}";
9447 repo = "mycli";
9448 owner = "dbcli";
9449 };
9450
9451 propagatedBuildInputs = with self; [
9452 pymysql configobj sqlparse prompt_toolkit0_45 pygments click
9453 ];
9454
9455 meta = {
9456 inherit version;
9457 description = "Command-line interface for MySQL";
9458 longDescription = ''
9459 Rich command-line interface for MySQL with auto-completion and
9460 syntax highlighting.
9461 '';
9462 homepage = http://mycli.net;
9463 license = licenses.bsd3;
9464 };
9465 };
9466
9467 pip = buildPythonPackage rec {
9468 version = "1.5.6";
9469 name = "pip-${version}";
9470 src = pkgs.fetchurl {
9471 url = "http://pypi.python.org/packages/source/p/pip/pip-${version}.tar.gz";
9472 md5 = "01026f87978932060cc86c1dc527903e";
9473 };
9474 buildInputs = with self; [ mock scripttest virtualenv pytest ];
9475 };
9476
9477
9478 pika = buildPythonPackage {
9479 name = "pika-0.9.12";
9480 disabled = isPy3k;
9481 src = pkgs.fetchurl {
9482 url = https://pypi.python.org/packages/source/p/pika/pika-0.9.12.tar.gz;
9483 md5 = "7174fc7cc5570314fa3cfaa729106482";
9484 };
9485 buildInputs = with self; [ nose mock pyyaml ];
9486
9487 propagatedBuildInputs = with self; [ unittest2 ];
9488 };
9489
9490 pysftp = buildPythonPackage rec {
9491 name = "pysftp-${version}";
9492 version = "0.2.8";
9493 disabled = isPyPy;
9494
9495 src = pkgs.fetchurl {
9496 url = "https://pypi.python.org/packages/source/p/pysftp/${name}.tar.gz";
9497 sha256 = "1d69z8yngciksch1i8rivy1xl8f6g6sb7c3kk5cm3pf8304q6hhm";
9498 };
9499
9500 propagatedBuildInputs = with self; [ paramiko ];
9501
9502 meta = {
9503 homepage = https://bitbucket.org/dundeemt/pysftp;
9504 description = "A friendly face on SFTP";
9505 license = licenses.mit;
9506 longDescription = ''
9507 A simple interface to SFTP. The module offers high level abstractions
9508 and task based routines to handle your SFTP needs. Checkout the Cook
9509 Book, in the docs, to see what pysftp can do for you.
9510 '';
9511 };
9512 };
9513
9514 python3pika = buildPythonPackage {
9515 name = "python3-pika-0.9.14";
9516 disabled = !isPy3k;
9517 src = pkgs.fetchurl {
9518 url = https://pypi.python.org/packages/source/p/python3-pika/python3-pika-0.9.14.tar.gz;
9519 md5 = "f3a3ee58afe0ae06f1fa553710e1aa28";
9520 };
9521 buildInputs = with self; [ nose mock pyyaml ];
9522
9523 propagatedBuildInputs = with self; [ unittest2 ];
9524 };
9525
9526
9527 python-jenkins = buildPythonPackage rec {
9528 name = "python-jenkins-${version}";
9529 version = "0.4.5";
9530 src = pkgs.fetchurl {
9531 url = "https://pypi.python.org/packages/source/p/python-jenkins/${name}.tar.gz";
9532 md5 = "10f1c24d45afe9cadd43f8d60b37d04c";
9533 };
9534
9535 buildInputs = with self; [ pbr pip ];
9536 pythonPath = with self; [ pyyaml six ];
9537 doCheck = false;
9538
9539 meta = {
9540 description = "Python bindings for the remote Jenkins API";
9541 homepage = https://pypi.python.org/pypi/python-jenkins;
9542 license = licenses.bsd3;
9543 };
9544 };
9545
9546
9547 pil = buildPythonPackage rec {
9548 name = "PIL-${version}";
9549 version = "1.1.7";
9550
9551 src = pkgs.fetchurl {
9552 url = "http://effbot.org/downloads/Imaging-${version}.tar.gz";
9553 sha256 = "04aj80jhfbmxqzvmq40zfi4z3cw6vi01m3wkk6diz3lc971cfnw9";
9554 };
9555
9556 buildInputs = with self; [ python pkgs.libjpeg pkgs.zlib pkgs.freetype ];
9557
9558 disabled = isPy3k;
9559 doCheck = true;
9560
9561 postInstall = "ln -s $out/lib/${python.libPrefix}/site-packages $out/lib/${python.libPrefix}/site-packages/PIL";
9562
9563 preConfigure = ''
9564 sed -i "setup.py" \
9565 -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = libinclude("${pkgs.freetype}")|g ;
9566 s|^JPEG_ROOT =.*$|JPEG_ROOT = libinclude("${pkgs.libjpeg}")|g ;
9567 s|^ZLIB_ROOT =.*$|ZLIB_ROOT = libinclude("${pkgs.zlib}")|g ;'
9568 ''
9569 # Remove impurities
9570 + stdenv.lib.optionalString stdenv.isDarwin ''
9571 substituteInPlace setup.py \
9572 --replace '"/Library/Frameworks",' "" \
9573 --replace '"/System/Library/Frameworks"' ""
9574 '';
9575
9576 checkPhase = "${python}/bin/${python.executable} selftest.py";
9577 buildPhase = "${python}/bin/${python.executable} setup.py build_ext -i";
9578
9579 meta = {
9580 homepage = http://www.pythonware.com/products/pil/;
9581 description = "The Python Imaging Library (PIL)";
9582 longDescription = ''
9583 The Python Imaging Library (PIL) adds image processing
9584 capabilities to your Python interpreter. This library
9585 supports many file formats, and provides powerful image
9586 processing and graphics capabilities.
9587 '';
9588 license = "http://www.pythonware.com/products/pil/license.htm";
9589 };
9590 };
9591
9592
9593 pillow = buildPythonPackage rec {
9594 name = "Pillow-2.3.0";
9595
9596 src = pkgs.fetchurl {
9597 url = "http://pypi.python.org/packages/source/P/Pillow/${name}.zip";
9598 md5 = "56b6614499aacb7d6b5983c4914daea7";
9599 };
9600
9601 buildInputs = with self; [
9602 pkgs.freetype pkgs.libjpeg pkgs.zlib pkgs.libtiff pkgs.libwebp pkgs.tcl ]
9603 ++ optionals (isPy26 || isPy27 || isPy33 || isPyPy) [ pkgs.lcms2 ]
9604 ++ optionals (isPyPy) [ pkgs.tk pkgs.xlibs.libX11 ];
9605
9606 # NOTE: we use LCMS_ROOT as WEBP root since there is not other setting for webp.
9607 preConfigure = ''
9608 sed -i "setup.py" \
9609 -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = _lib_include("${pkgs.freetype}")|g ;
9610 s|^JPEG_ROOT =.*$|JPEG_ROOT = _lib_include("${pkgs.libjpeg}")|g ;
9611 s|^ZLIB_ROOT =.*$|ZLIB_ROOT = _lib_include("${pkgs.zlib}")|g ;
9612 s|^LCMS_ROOT =.*$|LCMS_ROOT = _lib_include("${pkgs.libwebp}")|g ;
9613 s|^TIFF_ROOT =.*$|TIFF_ROOT = _lib_include("${pkgs.libtiff}")|g ;
9614 s|^TCL_ROOT=.*$|TCL_ROOT = _lib_include("${pkgs.tcl}")|g ;'
9615 ''
9616 # Remove impurities
9617 + stdenv.lib.optionalString stdenv.isDarwin ''
9618 substituteInPlace setup.py \
9619 --replace '"/Library/Frameworks",' "" \
9620 --replace '"/System/Library/Frameworks"' ""
9621 '';
9622
9623 meta = {
9624 homepage = "https://python-pillow.github.io/";
9625
9626 description = "Fork of The Python Imaging Library (PIL)";
9627
9628 longDescription = ''
9629 The Python Imaging Library (PIL) adds image processing
9630 capabilities to your Python interpreter. This library
9631 supports many file formats, and provides powerful image
9632 processing and graphics capabilities.
9633 '';
9634
9635 license = "http://www.pythonware.com/products/pil/license.htm";
9636
9637 maintainers = with maintainers; [ goibhniu prikhi ];
9638 };
9639 };
9640
9641 plumbum = buildPythonPackage rec {
9642 name = "plumbum-1.4.2";
9643
9644 buildInputs = with self; [ self.six ];
9645
9646 src = pkgs.fetchurl {
9647 url = "https://pypi.python.org/packages/source/p/plumbum/${name}.tar.gz";
9648 md5 = "38b526af9012a5282ae91dfe372cefd3";
9649 };
9650 };
9651
9652
9653 polib = buildPythonPackage rec {
9654 name = "polib-${version}";
9655 version = "1.0.4";
9656
9657 src = pkgs.fetchurl {
9658 url = "http://bitbucket.org/izi/polib/downloads/${name}.tar.gz";
9659 sha256 = "16klwlswfbgmkzrra80fgzhic9447pk3mnr75r2fkz72bkvpcclb";
9660 };
9661
9662 # error: invalid command 'test'
9663 doCheck = false;
9664
9665 meta = {
9666 description = "A library to manipulate gettext files (po and mo files)";
9667 homepage = "http://bitbucket.org/izi/polib/";
9668 license = licenses.mit;
9669 };
9670 };
9671
9672
9673 polylint = buildPythonPackage rec {
9674 name = "polylint-${version}";
9675 version = "158125c6ab";
9676
9677 src = pkgs.fetchgit {
9678 url = "https://github.com/bendavis78/polylint";
9679 rev = version;
9680 sha256 = "ea10c67e9ce6df0936d6e2015382acba4f9cc559e2d6a9471f474f6bda78a266";
9681 };
9682
9683 propagatedBuildInputs = with self; [ html5lib lxml cssselect ];
9684
9685 meta = {
9686 description = "Fast HTML linter for polymer";
9687 homepage = https://github.com/bendavis78/polylint;
9688 };
9689 };
9690
9691
9692 powerline = buildPythonPackage rec {
9693 rev = "2.1.4";
9694 name = "powerline-${rev}";
9695 src = pkgs.fetchurl {
9696 url = "https://github.com/powerline/powerline/archive/${rev}.tar.gz";
9697 name = "${name}.tar.gz";
9698 sha256 = "0gnh5yyackmqcphiympan48dm5lc834yzspss1lp4g1wq3vpyraf";
9699 };
9700
9701 propagatedBuildInputs = with self; [ pkgs.git pkgs.mercurial pkgs.bazaar self.psutil self.pygit2 ];
9702
9703 # error: This is still beta and some tests still fail
9704 doCheck = false;
9705
9706 postInstall = ''
9707 install -dm755 "$out/share/fonts/OTF/"
9708 install -dm755 "$out/etc/fonts/conf.d"
9709 install -m644 "font/PowerlineSymbols.otf" "$out/share/fonts/OTF/PowerlineSymbols.otf"
9710 install -m644 "font/10-powerline-symbols.conf" "$out/etc/fonts/conf.d/10-powerline-symbols.conf"
9711
9712 install -dm755 "$out/share/vim/vimfiles/plugin"
9713 install -m644 "powerline/bindings/vim/plugin/powerline.vim" "$out/share/vim/vimfiles/plugin/powerline.vim"
9714
9715 install -dm755 "$out/share/zsh/site-contrib"
9716 install -m644 "powerline/bindings/zsh/powerline.zsh" "$out/share/zsh/site-contrib/powerline.zsh"
9717
9718 install -dm755 "$out/share/tmux"
9719 install -m644 "powerline/bindings/tmux/powerline.conf" "$out/share/tmux/powerline.conf"
9720 '';
9721
9722 meta = {
9723 homepage = https://github.com/powerline/powerline;
9724 description = "The ultimate statusline/prompt utility";
9725 license = licenses.mit;
9726 maintainers = with maintainers; [ lovek323 ];
9727 platforms = platforms.all;
9728 };
9729 };
9730
9731
9732
9733 praw = buildPythonPackage rec {
9734 name = "praw-3.1.0";
9735
9736 src = pkgs.fetchurl {
9737 url = "https://pypi.python.org/packages/source/p/praw/${name}.zip";
9738 sha256 = "1dilb3vr5llqy344i6nh7gl07wcssb5dmqrhjwhfqi1mais7b953";
9739 };
9740
9741 propagatedBuildInputs = with self; [
9742 decorator
9743 flake8
9744 mock
9745 six
9746 update_checker
9747 ];
9748
9749 # can't find the tests module?
9750 doCheck = false;
9751
9752 meta = {
9753 description = "Python Reddit API wrapper";
9754 homepage = http://praw.readthedocs.org/;
9755 license = licenses.gpl3;
9756 platforms = platforms.all;
9757 maintainers = with maintainers; [ jgeerds ];
9758 };
9759 };
9760
9761 prettytable = buildPythonPackage rec {
9762 name = "prettytable-0.7.1";
9763
9764 src = pkgs.fetchurl {
9765 url = "http://pypi.python.org/packages/source/P/PrettyTable/${name}.tar.bz2";
9766 sha1 = "ad346a18d92c1d95f2295397c7a8a4f489e48851";
9767 };
9768
9769 buildInputs = [ pkgs.glibcLocales ];
9770
9771 preCheck = ''
9772 export LANG="en_US.UTF-8"
9773 '';
9774
9775 meta = {
9776 description = "Simple Python library for easily displaying tabular data in a visually appealing ASCII table format";
9777 homepage = http://code.google.com/p/prettytable/;
9778 };
9779 };
9780
9781
9782 prompt_toolkit = buildPythonPackage rec {
9783 name = "prompt_toolkit-${version}";
9784 version = "0.47";
9785
9786 src = pkgs.fetchurl {
9787 sha256 = "1xkrbz7d2mzd5r5a8aqbnhym57fkpri9x73cql5vb573glzwddla";
9788 url = "https://pypi.python.org/packages/source/p/prompt_toolkit/${name}.tar.gz";
9789 };
9790
9791 buildInputs = with self; [ jedi ipython pygments ];
9792 propagatedBuildInputs = with self; [ docopt six wcwidth ];
9793
9794 meta = {
9795 description = "Python library for building powerful interactive command lines";
9796 longDescription = ''
9797 prompt_toolkit could be a replacement for readline, but it can be
9798 much more than that. It is cross-platform, everything that you build
9799 with it should run fine on both Unix and Windows systems. Also ships
9800 with a nice interactive Python shell (called ptpython) built on top.
9801 '';
9802 homepage = https://github.com/jonathanslenders/python-prompt-toolkit;
9803 license = licenses.bsd3;
9804 maintainers = with maintainers; [ nckx ];
9805 };
9806 };
9807
9808 prompt_toolkit0_45 = buildPythonPackage rec {
9809 name = "prompt_toolkit-${version}";
9810 version = "0.45";
9811
9812 src = pkgs.fetchurl {
9813 sha256 = "19lp15rc0rq4jqaacg2a38cdgfy2avhf5v97yanasx4n2swx4gsm";
9814 url = "https://pypi.python.org/packages/source/p/prompt_toolkit/${name}.tar.gz";
9815 };
9816
9817 buildInputs = with self; [ jedi ipython pygments ];
9818 propagatedBuildInputs = with self; [ docopt six wcwidth ];
9819
9820 meta = {
9821 description = "Python library for building powerful interactive command lines";
9822 longDescription = ''
9823 prompt_toolkit could be a replacement for readline, but it can be
9824 much more than that. It is cross-platform, everything that you build
9825 with it should run fine on both Unix and Windows systems. Also ships
9826 with a nice interactive Python shell (called ptpython) built on top.
9827 '';
9828 homepage = https://github.com/jonathanslenders/python-prompt-toolkit;
9829 license = licenses.bsd3;
9830 maintainers = with maintainers; [ nckx ];
9831 };
9832 };
9833
9834 protobuf = self.protobuf2_6;
9835 protobuf2_6 = self.protobufBuild pkgs.protobuf2_6;
9836 protobuf2_5 = self.protobufBuild pkgs.protobuf2_5;
9837 protobufBuild = protobuf: buildPythonPackage rec {
9838 inherit (protobuf) name src;
9839 disabled = isPy3k;
9840
9841 propagatedBuildInputs = with self; [ protobuf google_apputils ];
9842
9843 prePatch = ''
9844 while [ ! -d python ]; do
9845 cd *
9846 done
9847 cd python
9848 '';
9849
9850 preConfigure = optionalString (versionAtLeast protobuf.version "2.6.0") ''
9851 PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp
9852 PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION=2
9853 '';
9854
9855 checkPhase = if versionAtLeast protobuf.version "2.6.0" then ''
9856 ${python.executable} setup.py google_test --cpp_implementation
9857 '' else ''
9858 ${python.executable} setup.py test
9859 '';
9860
9861 installFlags = optional (versionAtLeast protobuf.version "2.6.0") "--cpp_implementation";
9862
9863 doCheck = true;
9864
9865 meta = {
9866 description = "Protocol Buffers are Google's data interchange format";
9867 homepage = http://code.google.com/p/protobuf/;
9868 };
9869
9870 passthru.protobuf = protobuf;
9871 };
9872
9873
9874 psutil = buildPythonPackage rec {
9875 name = "psutil-${version}";
9876 version = "2.1.1";
9877
9878 src = pkgs.fetchurl {
9879 url = "https://pypi.python.org/packages/source/p/psutil/${name}.tar.gz";
9880 sha256 = "14smqj57yjrm6hjz5n2annkgv0kmxckdhqvfx784f4d4lr52m0dz";
9881 };
9882
9883 # failed tests: https://code.google.com/p/psutil/issues/detail?id=434
9884 doCheck = false;
9885
9886 meta = {
9887 description = "Process and system utilization information interface for python";
9888 homepage = http://code.google.com/p/psutil/;
9889 };
9890 };
9891
9892
9893 psycopg2 = buildPythonPackage rec {
9894 name = "psycopg2-2.5.4";
9895 disabled = isPyPy;
9896
9897 # error: invalid command 'test'
9898 doCheck = false;
9899
9900 src = pkgs.fetchurl {
9901 url = "https://pypi.python.org/packages/source/p/psycopg2/${name}.tar.gz";
9902 sha256 = "07ivzl7bq8bjcq5n90w4bsl29gjfm5l8yamw0paxh25si8r3zfi4";
9903 };
9904
9905 propagatedBuildInputs = with self; [ pkgs.postgresql ];
9906
9907 meta = {
9908 description = "PostgreSQL database adapter for the Python programming language";
9909 license = with licenses; [ gpl2 zpt20 ];
9910 };
9911 };
9912
9913
9914 publicsuffix = buildPythonPackage rec {
9915 name = "publicsuffix-${version}";
9916 version = "1.0.2";
9917
9918 src = pkgs.fetchurl {
9919 url = "http://pypi.python.org/packages/source/p/publicsuffix/${name}.tar.gz";
9920 md5 = "f86babf56f6e58b564d3853adebcf37a";
9921 };
9922
9923 meta = {
9924 description = "Allows to get the public suffix of a domain name";
9925 homepage = "http://pypi.python.org/pypi/publicsuffix/";
9926 license = licenses.mit;
9927 };
9928 };
9929
9930
9931 py = buildPythonPackage rec {
9932 name = "py-1.4.30";
9933
9934 src = pkgs.fetchurl {
9935 url = "https://pypi.python.org/packages/source/p/py/${name}.tar.gz";
9936 md5 = "a904aabfe4765cb754f2db84ec7bb03a";
9937 };
9938
9939 meta = {
9940 description = "Library with cross-python path, ini-parsing, io, code, log facilities";
9941 homepage = http://pylib.readthedocs.org/;
9942 license = licenses.mit;
9943 };
9944 };
9945
9946
9947 pyacoustid = buildPythonPackage rec {
9948 name = "pyacoustid-1.1.0";
9949
9950 src = pkgs.fetchurl {
9951 url = "https://pypi.python.org/packages/source/p/pyacoustid/${name}.tar.gz";
9952 md5 = "b27c714d530300b917eb869726334226";
9953 };
9954
9955 propagatedBuildInputs = with self; [ requests audioread ];
9956
9957 patches = [ ../development/python-modules/pyacoustid-py3.patch ];
9958
9959 postPatch = ''
9960 sed -i \
9961 -e '/^FPCALC_COMMAND *=/s|=.*|= "${pkgs.chromaprint}/bin/fpcalc"|' \
9962 acoustid.py
9963 '';
9964
9965 meta = {
9966 description = "Bindings for Chromaprint acoustic fingerprinting";
9967 homepage = "https://github.com/sampsyo/pyacoustid";
9968 license = licenses.mit;
9969 };
9970 };
9971
9972
9973 pyalgotrade = buildPythonPackage {
9974 name = "pyalogotrade-0.16";
9975
9976 src = pkgs.fetchurl {
9977 url = "https://pypi.python.org/packages/source/P/PyAlgoTrade/PyAlgoTrade-0.16.tar.gz";
9978 md5 = "01d70583ab15eb3bad21027bdeb30ae5";
9979 };
9980
9981 propagatedBuildInputs = with self; [ numpy scipy pytz ];
9982
9983 meta = {
9984 description = "Python Algorithmic Trading";
9985 homepage = http://gbeced.github.io/pyalgotrade/;
9986 license = licenses.asl20;
9987 };
9988 };
9989
9990
9991 pyasn1 = buildPythonPackage ({
9992 name = "pyasn1-0.1.8";
9993
9994 src = pkgs.fetchurl {
9995 url = "mirror://sourceforge/pyasn1/0.1.8/pyasn1-0.1.8.tar.gz";
9996 sha256 = "0iw31d9l0zwx35szkzq72hiw002wnqrlrsi9dpbrfngcl1ybwcsx";
9997 };
9998
9999 meta = {
10000 description = "ASN.1 tools for Python";
10001 homepage = http://pyasn1.sourceforge.net/;
10002 license = "mBSD";
10003 platforms = platforms.unix; # arbitrary choice
10004 };
10005 });
10006
10007 pyasn1-modules = buildPythonPackage rec {
10008 name = "pyasn1-modules-${version}";
10009 version = "0.0.5";
10010 disabled = isPyPy;
10011
10012 src = pkgs.fetchurl {
10013 url = "https://pypi.python.org/packages/source/p/pyasn1-modules/${name}.tar.gz";
10014 sha256 = "0hcr6klrzmw4d9j9s5wrhqva5014735pg4zk3rppac4fs87g0rdy";
10015 };
10016
10017 propagatedBuildInputs = with self; [ pyasn1 ];
10018
10019 meta = {
10020 description = "A collection of ASN.1-based protocols modules";
10021 homepage = https://pypi.python.org/pypi/pyasn1-modules;
10022 license = licenses.bsd3;
10023 platforms = platforms.unix; # same as pyasn1
10024 };
10025 };
10026
10027 pyaudio = pkgs.stdenv.mkDerivation rec {
10028 name = "python-pyaudio-${version}";
10029 version = "0.2.4";
10030
10031 src = pkgs.fetchurl {
10032 url = "http://people.csail.mit.edu/hubert/pyaudio/packages/pyaudio-${version}.tar.gz";
10033 md5 = "623809778f3d70254a25492bae63b575";
10034 };
10035
10036 buildInputs = with self; [ python pkgs.portaudio ];
10037
10038 buildPhase = if stdenv.isDarwin then ''
10039 PORTAUDIO_PATH="${pkgs.portaudio}" ${python}/bin/${python.executable} setup.py build --static-link
10040 '' else ''
10041 ${python}/bin/${python.executable} setup.py build
10042 '';
10043
10044 installPhase = "${python}/bin/${python.executable} setup.py install --prefix=$out";
10045
10046 meta = {
10047 description = "Python bindings for PortAudio";
10048 homepage = "http://people.csail.mit.edu/hubert/pyaudio/";
10049 license = licenses.mit;
10050 };
10051 };
10052
10053 vobject = buildPythonPackage rec {
10054 version = "0.8.1c";
10055 name = "vobject-${version}";
10056
10057 src = pkgs.fetchurl {
10058 url = "https://pypi.python.org/packages/source/v/vobject/vobject-${version}.tar.gz";
10059 sha256 = "1xanqn7rn96841s3lim5lnx5743gc4kyfg4ggj1ys5r0gw8i6har";
10060 };
10061
10062 disabled = isPy3k || isPyPy;
10063
10064 propagatedBuildInputs = with self; [ dateutil ];
10065
10066 meta = {
10067 description = "Module for reading vCard and vCalendar files";
10068 homepage = http://vobject.skyhouseconsulting.com/;
10069 license = licenses.asl20;
10070 maintainers = with maintainers; [ DamienCassou ];
10071 };
10072 };
10073
10074 pycarddav = buildPythonPackage rec {
10075 version = "0.7.0";
10076 name = "pycarddav-${version}";
10077
10078 src = pkgs.fetchurl {
10079 url = "https://pypi.python.org/packages/source/p/pyCardDAV/pyCardDAV-${version}.tar.gz";
10080 sha256 = "0avkrcpisfvhz103v7vmq2jd83hvmpqrb4mlbx6ikkk1wcvclsx8";
10081 };
10082
10083 disabled = isPy3k || isPyPy;
10084
10085 propagatedBuildInputs = with self; [ sqlite3 vobject lxml requests urwid pyxdg ];
10086
10087 meta = {
10088 description = "Command-line interface carddav client";
10089 homepage = http://lostpackets.de/pycarddav;
10090 license = licenses.mit;
10091 maintainers = with maintainers; [ DamienCassou ];
10092 };
10093 };
10094
10095 pycosat = pythonPackages.buildPythonPackage rec {
10096 name = "pycosat-0.6.0";
10097
10098 propagatedBuildInputs = with pythonPackages; [ ];
10099
10100 src = pkgs.fetchurl {
10101 url = "https://pypi.python.org/packages/source/p/pycosat/${name}.tar.gz";
10102 sha256 = "02sdn2998jlrm35smn1530hix3kzwyc1jv49cjdcnvfvrqqi3rww";
10103 };
10104
10105 meta = {
10106 description = "Python bindings for PicoSAT";
10107 longDescription = ''PicoSAT is a popular SAT solver written by Armin
10108 Biere in pure C. This package provides efficient Python bindings
10109 to picosat on the C level, i.e. when importing pycosat, the
10110 picosat solver becomes part of the Python process itself. For
10111 ease of deployment, the picosat source (namely picosat.c and
10112 picosat.h) is included in this project.'';
10113 homepage = https://github.com/ContinuumIO/pycosat;
10114 license = licenses.mit;
10115 };
10116 };
10117
10118 pygit2 = buildPythonPackage rec {
10119 name = "pygit2-0.21.2";
10120
10121 src = pkgs.fetchurl {
10122 url = "https://pypi.python.org/packages/source/p/pygit2/${name}.tar.gz";
10123 sha256 = "0lya4v91d4y5fwrb55n8m8avgmz0l81jml2spvx6r7j1czcx3zic";
10124 };
10125
10126 preConfigure = ( if stdenv.isDarwin then ''
10127 export DYLD_LIBRARY_PATH="${pkgs.libgit2}/lib"
10128 '' else "" );
10129
10130 propagatedBuildInputs = with self; [ pkgs.libgit2 ] ++ optionals (!isPyPy) [ cffi ];
10131
10132 preCheck = ''
10133 # disable tests that require networking
10134 rm test/test_repository.py
10135 rm test/test_credentials.py
10136 '';
10137
10138 meta = {
10139 homepage = https://pypi.python.org/pypi/pygit2;
10140 description = "A set of Python bindings to the libgit2 shared library";
10141 license = licenses.gpl2;
10142 platforms = with platforms; all;
10143 };
10144 };
10145
10146
10147 Babel = buildPythonPackage (rec {
10148 name = "Babel-1.3";
10149
10150 src = pkgs.fetchurl {
10151 url = "http://pypi.python.org/packages/source/B/Babel/${name}.tar.gz";
10152 sha256 = "0bnin777lc53nxd1hp3apq410jj5wx92n08h7h4izpl4f4sx00lz";
10153 };
10154
10155 propagatedBuildInputs = with self; [ pytz ];
10156
10157 meta = {
10158 homepage = http://babel.edgewall.org;
10159 description = "A collection of tools for internationalizing Python applications";
10160 license = "BSD";
10161 maintainers = with maintainers; [ garbas ];
10162 platforms = platforms.linux;
10163 };
10164 });
10165
10166 pybfd = buildPythonPackage rec {
10167 name = "pybfd-0.1.1";
10168
10169 disabled = isPyPy || isPy3k;
10170
10171 src = pkgs.fetchurl {
10172 url = "https://pypi.python.org/packages/source/p/pybfd/${name}.tar.gz";
10173 md5 = "79dd6e12c90ad0515d0ad7fb1bd2f571";
10174 };
10175
10176 preConfigure = ''
10177 substituteInPlace setup.py \
10178 --replace '"/usr/include"' '"${pkgs.gdb}/include"' \
10179 --replace '"/usr/lib"' '"${pkgs.binutils}/lib"'
10180 '';
10181
10182 # --old-and-unmanageable not supported by this setup.py
10183 installPhase = ''
10184 mkdir -p "$out/lib/${python.libPrefix}/site-packages"
10185
10186 export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
10187
10188 ${python}/bin/${python.executable} setup.py install \
10189 --install-lib=$out/lib/${python.libPrefix}/site-packages \
10190 --prefix="$out"
10191 '';
10192
10193 meta = {
10194 homepage = https://github.com/Groundworkstech/pybfd;
10195 description = "A Python interface to the GNU Binary File Descriptor (BFD) library";
10196 license = licenses.gpl2;
10197 platforms = platforms.linux;
10198 };
10199 };
10200
10201 pyblock = stdenv.mkDerivation rec {
10202 name = "pyblock-${version}";
10203 version = "0.53";
10204
10205 src = pkgs.fetchurl rec {
10206 url = "http://pkgs.fedoraproject.org/repo/pkgs/python-pyblock/"
10207 + "${name}.tar.bz2/${md5}/${name}.tar.bz2";
10208 md5 = "f6d33a8362dee358517d0a9e2ebdd044";
10209 };
10210
10211 postPatch = ''
10212 sed -i -e 's|/usr/include/python|${python}/include/python|' \
10213 -e 's/-Werror *//' -e 's|/usr/|'"$out"'/|' Makefile
10214 '';
10215
10216 buildInputs = with self; [ python pkgs.lvm2 pkgs.dmraid ];
10217
10218 makeFlags = [
10219 "USESELINUX=0"
10220 "SITELIB=$(out)/lib/${python.libPrefix}/site-packages"
10221 ];
10222
10223 meta = {
10224 description = "Interface for working with block devices";
10225 license = licenses.gpl2Plus;
10226 };
10227 };
10228
10229 pybcrypt = buildPythonPackage rec {
10230 name = "pybcrypt";
10231 version = "0.4";
10232
10233 src = pkgs.fetchurl {
10234 url = "https://pypi.python.org/packages/source/p/py-bcrypt/py-bcrypt-${version}.tar.gz";
10235 md5 = "dd8b367d6b716a2ea2e72392525f4e36";
10236 };
10237
10238 meta = {
10239 description = "bcrypt password hashing and key derivation";
10240 homepage = https://code.google.com/p/py-bcrypt2;
10241 license = "BSD";
10242 };
10243 };
10244
10245 pyblosxom = buildPythonPackage rec {
10246 name = "pyblosxom-${version}";
10247 disabled = isPy3k;
10248 version = "1.5.3";
10249 # FAIL:test_generate_entry and test_time
10250 # both tests fail due to time issue that doesn't seem to matter in practice
10251 doCheck = false;
10252 src = pkgs.fetchurl {
10253 url = "https://github.com/pyblosxom/pyblosxom/archive/v${version}.tar.gz";
10254 sha256 = "0de9a7418f4e6d1c45acecf1e77f61c8f96f036ce034493ac67124626fd0d885";
10255 };
10256
10257 propagatedBuildInputs = with self; [ pygments markdown ];
10258
10259 meta = {
10260 homepage = "http://pyblosxom.github.io";
10261 description = "File-based blogging engine";
10262 license = licenses.mit;
10263 };
10264 };
10265
10266
10267 pycapnp = buildPythonPackage rec {
10268 name = "pycapnp-0.5.1";
10269 disabled = isPyPy || isPy3k;
10270
10271 src = pkgs.fetchurl {
10272 url = "https://pypi.python.org/packages/source/p/pycapnp/${name}.tar.gz";
10273 sha256 = "1kp97il34419gcrhn866n6a10lvh8qr13bnllnnh9473n4cq0cvk";
10274 };
10275
10276 buildInputs = with pkgs; [ capnproto self.cython ];
10277
10278 # import setuptools as soon as possible, to minimize monkeypatching mayhem.
10279 postConfigure = ''
10280 sed -i '3iimport setuptools' setup.py
10281 '';
10282
10283 meta = {
10284 maintainers = with maintainers; [ cstrahan ];
10285 license = licenses.bsd2;
10286 platforms = platforms.all;
10287 homepage = "http://jparyani.github.io/pycapnp/index.html";
10288 };
10289 };
10290
10291
10292 pycdio = buildPythonPackage rec {
10293 name = "pycdio-0.20";
10294 disabled = !isPy27;
10295
10296 src = pkgs.fetchurl {
10297 url = "https://pypi.python.org/packages/source/p/pycdio/${name}.tar.gz";
10298 sha256 = "1mrh233pj584gf7la64d4xlmvdnfl4jwpxs95lnd3i4zd5drid14";
10299 };
10300
10301 preConfigure = ''
10302 patchShebangs .
10303 '';
10304
10305 buildInputs = [
10306 self.setuptools self.nose pkgs.pkgconfig pkgs.swig pkgs.libcdio
10307 ];
10308
10309 patches = [ ../development/python-modules/pycdio/add-cdtext-toc.patch ];
10310
10311 # Run tests using nosetests but first need to install the binaries
10312 # to the root source directory where they can be found.
10313 checkPhase = ''
10314 ./setup.py install_lib -d .
10315 nosetests
10316 '';
10317
10318 meta = {
10319 homepage = http://www.gnu.org/software/libcdio/;
10320 description = "Wrapper around libcdio (CD Input and Control library)";
10321 maintainers = with maintainers; [ rycee ];
10322 license = licenses.gpl3Plus;
10323 };
10324
10325 };
10326
10327
10328 pycryptopp = buildPythonPackage (rec {
10329 name = "pycryptopp-0.6.0.1206569328141510525648634803928199668821045408958";
10330 disabled = isPy3k || isPyPy; # see https://bitbucket.org/pypy/pypy/issue/1190/
10331
10332 src = pkgs.fetchurl {
10333 url = "http://pypi.python.org/packages/source/p/pycryptopp/${name}.tar.gz";
10334 sha256 = "0n90h1yg7bfvlbhnc54xb6dbqm286ykaksyg04kxlhyjgf8mhq8i";
10335 };
10336
10337 # Prefer crypto++ library from the Nix store over the one that's included
10338 # in the pycryptopp distribution.
10339 preConfigure = "export PYCRYPTOPP_DISABLE_EMBEDDED_CRYPTOPP=1";
10340
10341 buildInputs = with self; [ setuptoolsDarcs darcsver pkgs.cryptopp ];
10342
10343 meta = {
10344 homepage = http://allmydata.org/trac/pycryptopp;
10345
10346 description = "Python wrappers for the Crypto++ library";
10347
10348 license = licenses.gpl2Plus;
10349
10350 maintainers = [ ];
10351 platforms = platforms.linux;
10352 };
10353 });
10354
10355
10356 pycurl = buildPythonPackage (rec {
10357 name = "pycurl-7.19.5";
10358 disabled = isPyPy; # https://github.com/pycurl/pycurl/issues/208
10359
10360 src = pkgs.fetchurl {
10361 url = "http://pycurl.sourceforge.net/download/${name}.tar.gz";
10362 sha256 = "0hqsap82zklhi5fxhc69kxrwzb0g9566f7sdpz7f9gyxkmyam839";
10363 };
10364
10365 propagatedBuildInputs = with self; [ pkgs.curl pkgs.openssl ];
10366
10367 # error: invalid command 'test'
10368 doCheck = false;
10369
10370 preConfigure = ''
10371 substituteInPlace setup.py --replace '--static-libs' '--libs'
10372 export PYCURL_SSL_LIBRARY=openssl
10373 '';
10374
10375 meta = {
10376 homepage = http://pycurl.sourceforge.net/;
10377 description = "Python wrapper for libcurl";
10378 platforms = platforms.linux;
10379 };
10380 });
10381
10382
10383 pycurl2 = buildPythonPackage (rec {
10384 name = "pycurl2-7.20.0";
10385 disabled = isPy3k;
10386
10387 src = pkgs.fetchgit {
10388 url = "https://github.com/Lispython/pycurl.git";
10389 rev = "0f00109950b883d680bd85dc6e8a9c731a7d0d13";
10390 sha256 = "0mhg7f9y5zl0m2xgz3rf1yqjd6l8n0qhfk7bpf36r44jfnhj75ld";
10391 };
10392
10393 # error: (6, "Couldn't resolve host 'h.wrttn.me'")
10394 doCheck = false;
10395
10396 buildInputs = with self; [ pkgs.curl simplejson unittest2 nose ];
10397
10398 meta = {
10399 homepage = https://pypi.python.org/pypi/pycurl2;
10400 description = "A fork from original PycURL library that no maintained from 7.19.0";
10401 platforms = platforms.linux;
10402 };
10403 });
10404
10405
10406 pydot = buildPythonPackage rec {
10407 name = "pydot-1.0.2";
10408 disabled = isPy3k;
10409
10410 src = pkgs.fetchurl {
10411 url = "http://pypi.python.org/packages/source/p/pydot/${name}.tar.gz";
10412 md5 = "cd739651ae5e1063a89f7efd5a9ec72b";
10413 };
10414 propagatedBuildInputs = with self; [pyparsing pkgs.graphviz];
10415 meta = {
10416 homepage = http://code.google.com/p/pydot/;
10417 description = "Allows to easily create both directed and non directed graphs from Python";
10418 };
10419 };
10420
10421
10422 pyenchant = pythonPackages.buildPythonPackage rec {
10423 name = "pyenchant-1.6.6";
10424
10425 src = pkgs.fetchurl {
10426 url = "https://pypi.python.org/packages/source/p/pyenchant/pyenchant-1.6.6.tar.gz";
10427 md5 = "9f5acfd87d04432bf8df5f9710a17358";
10428 };
10429
10430 propagatedBuildInputs = with pythonPackages; [ pkgs.enchant ];
10431
10432 patchPhase = let
10433 path_hack_script = "s|LoadLibrary(e_path)|LoadLibrary('${pkgs.enchant}/lib/' + e_path)|";
10434 in ''
10435 sed -i "${path_hack_script}" enchant/_enchant.py
10436 '';
10437
10438 # dictionaries needed for tests
10439 doCheck = false;
10440
10441 meta = {
10442 description = "pyenchant: Python bindings for the Enchant spellchecker";
10443 homepage = https://pythonhosted.org/pyenchant/;
10444 license = licenses.lgpl21;
10445 };
10446 };
10447
10448
10449 pyev = buildPythonPackage rec {
10450 name = "pyev-0.9.0";
10451
10452 src = pkgs.fetchurl {
10453 url = "https://pypi.python.org/packages/source/p/pyev/${name}.tar.gz";
10454 sha256 = "0rf603lc0s6zpa1nb25vhd8g4y337wg2wyz56i0agsdh7jchl0sx";
10455 };
10456
10457 buildInputs = [ pkgs.libev ];
10458
10459 postPatch = ''
10460 libev_so=${pkgs.libev}/lib/libev.so.4
10461 test -f "$libev_so" || { echo "ERROR: File $libev_so does not exist, please fix nix expression for pyev"; exit 1; }
10462 sed -i -e "s|libev_dll_name = find_library(\"ev\")|libev_dll_name = \"$libev_so\"|" setup.py
10463 '';
10464
10465 meta = {
10466 description = "Python bindings for libev";
10467 homepage = https://code.google.com/p/pyev/;
10468 license = licenses.gpl3;
10469 maintainers = [ maintainers.bjornfor ];
10470 };
10471 };
10472
10473
10474 pyfeed = buildPythonPackage rec {
10475 url = "http://www.blarg.net/%7Esteveha/pyfeed-0.7.4.tar.gz";
10476 name = stdenv.lib.nameFromURL url ".tar";
10477 src = pkgs.fetchurl {
10478 inherit url;
10479 sha256 = "1h4msq573m7wm46h3cqlx4rsn99f0l11rhdqgf50lv17j8a8vvy1";
10480 };
10481 propagatedBuildInputs = with self; [xe];
10482
10483 # error: invalid command 'test'
10484 doCheck = false;
10485
10486 meta = {
10487 homepage = "http://home.blarg.net/~steveha/pyfeed.html";
10488 description = "Tools for syndication feeds";
10489 };
10490 };
10491
10492 pyfiglet = buildPythonPackage rec {
10493 name = "pyfiglet-${version}";
10494 version = "0.7.2";
10495
10496 src = pkgs.fetchurl {
10497 url = "https://pypi.python.org/packages/source/p/pyfiglet/${name}.tar.gz";
10498 sha256 = "0v8a18wvaqnb1jksyv5dc5n6zj0vrkyhz0ivmm8gfwpa0ky6n68y";
10499 };
10500
10501 doCheck = false;
10502
10503 meta = {
10504 description = "FIGlet in pure Python";
10505 license = licenses.gpl2Plus;
10506 maintainers = with maintainers; [ thoughtpolice ];
10507 };
10508 };
10509
10510 pyflakes = buildPythonPackage rec {
10511 name = "pyflakes-0.8.1";
10512
10513 src = pkgs.fetchurl {
10514 url = "http://pypi.python.org/packages/source/p/pyflakes/${name}.tar.gz";
10515 md5 = "905fe91ad14b912807e8fdc2ac2e2c23";
10516 };
10517
10518 buildInputs = with self; [ unittest2 ];
10519
10520 doCheck = !isPyPy;
10521
10522 meta = {
10523 homepage = https://launchpad.net/pyflakes;
10524 description = "A simple program which checks Python source files for errors";
10525 license = licenses.mit;
10526 maintainers = with maintainers; [ garbas ];
10527 };
10528 };
10529
10530
10531 pygeoip = pythonPackages.buildPythonPackage rec {
10532 name = "pygeoip-0.3.2";
10533
10534 src = pkgs.fetchurl {
10535 url = "https://pypi.python.org/packages/source/p/pygeoip/pygeoip-0.3.2.tar.gz";
10536 md5 = "861664f8be3bed44820356539f2ea5b6";
10537 };
10538
10539 propagatedBuildInputs = with pythonPackages; [ ];
10540
10541 meta = {
10542 description = "Pure Python GeoIP API";
10543 homepage = https://github.com/appliedsec/pygeoip;
10544 license = licenses.lgpl3Plus;
10545 };
10546 };
10547
10548 pyglet = buildPythonPackage rec {
10549 name = "pyglet-1.1.4";
10550
10551 src = pkgs.fetchurl {
10552 url = "http://pyglet.googlecode.com/files/${name}.tar.gz";
10553 sha256 = "048n20d606i3njnzhajadnznnfm8pwchs43hxs50da9p79g2m6qx";
10554 };
10555
10556 patchPhase = let
10557 libs = [ pkgs.mesa pkgs.xlibs.libX11 pkgs.freetype pkgs.fontconfig ];
10558 paths = concatStringsSep "," (map (l: "\"${l}/lib\"") libs);
10559 in "sed -i -e 's|directories\.extend.*lib[^]]*|&,${paths}|' pyglet/lib.py";
10560
10561 doCheck = false;
10562
10563 meta = {
10564 homepage = "http://www.pyglet.org/";
10565 description = "A cross-platform windowing and multimedia library";
10566 license = licenses.bsd3;
10567 platforms = platforms.mesaPlatforms;
10568 };
10569 };
10570
10571 pygments = buildPythonPackage rec {
10572 version = "2.0.2";
10573 name = "Pygments-${version}";
10574
10575 src = pkgs.fetchurl {
10576 url = "http://pypi.python.org/packages/source/P/Pygments/${name}.tar.gz";
10577 sha256 = "0lagrwifsgn0s8bzqahpr87p7gd38xja8f06akscinp6hj89283k";
10578 };
10579
10580 meta = {
10581 homepage = http://pygments.org/;
10582 description = "A generic syntax highlighter";
10583 license = licenses.bsd2;
10584 maintainers = with maintainers; [ nckx garbas ];
10585 };
10586 };
10587
10588
10589 pygpgme = buildPythonPackage rec {
10590 version = "0.3";
10591 name = "pygpgme-${version}";
10592 disabled = isPyPy;
10593
10594 src = pkgs.fetchurl {
10595 url = "https://launchpad.net/pygpgme/trunk/${version}/+download/${name}.tar.gz";
10596 sha256 = "5fd887c407015296a8fd3f4b867fe0fcca3179de97ccde90449853a3dfb802e1";
10597 };
10598
10599 # error: invalid command 'test'
10600 doCheck = false;
10601
10602 propagatedBuildInputs = with self; [ pkgs.gpgme ];
10603
10604 meta = {
10605 homepage = "https://launchpad.net/pygpgme";
10606 description = "A Python wrapper for the GPGME library";
10607 license = licenses.lgpl21;
10608 maintainers = with maintainers; [ garbas ];
10609 };
10610 };
10611
10612 mmpython = buildPythonPackage rec {
10613 version = "0.4.10";
10614 name = "mmpython-${version}";
10615
10616 src = pkgs.fetchurl {
10617 url = http://sourceforge.net/projects/mmpython/files/latest/download;
10618 sha256 = "1b7qfad3shgakj37gcj1b9h78j1hxlz6wp9k7h76pb4sq4bfyihy";
10619 name = "${name}.tar.gz";
10620 };
10621
10622 disabled = isPyPy || isPy3k;
10623
10624 meta = {
10625 description = "Media Meta Data retrieval framework";
10626 homepage = http://sourceforge.net/projects/mmpython/;
10627 license = licenses.gpl2;
10628 maintainers = with maintainers; [ DamienCassou ];
10629 };
10630 };
10631
10632 kaa-base = buildPythonPackage rec {
10633 version = "0.99.2dev-384-2b73caca";
10634 name = "kaa-base-${version}";
10635
10636 src = pkgs.fetchurl {
10637 url = "https://pypi.python.org/packages/source/k/kaa-base/kaa-base-0.99.2dev-384-2b73caca.tar.gz";
10638 sha256 = "0k3zzz84wzz9q1fl3vvqr2ys96z9pcf4viq9q6s2a63zaysmcfd2";
10639 };
10640
10641 doCheck = false;
10642
10643 disabled = isPyPy || isPy3k;
10644
10645 # Same as in buildPythonPackage except that it does not pass --old-and-unmanageable
10646 installPhase = ''
10647 runHook preInstall
10648
10649 mkdir -p "$out/lib/${python.libPrefix}/site-packages"
10650
10651 export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
10652
10653 ${python}/bin/${python.executable} setup.py install \
10654 --install-lib=$out/lib/${python.libPrefix}/site-packages \
10655 --prefix="$out"
10656
10657 eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth
10658 if [ -e "$eapth" ]; then
10659 mv "$eapth" $(dirname "$eapth")/${name}.pth
10660 fi
10661
10662 rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
10663
10664 runHook postInstall
10665 '';
10666
10667 meta = {
10668 description = "Generic application framework, providing the foundation for other modules";
10669 homepage = https://github.com/freevo/kaa-base;
10670 license = licenses.lgpl21;
10671 maintainers = with maintainers; [ DamienCassou ];
10672 };
10673 };
10674
10675 kaa-metadata = buildPythonPackage rec {
10676 version = "0.7.8dev-r4569-20111003";
10677 name = "kaa-metadata-${version}";
10678
10679 doCheck = false;
10680
10681 buildInputs = [ pkgs.libdvdread ];
10682
10683 disabled = isPyPy || isPy3k;
10684
10685 # Same as in buildPythonPackage except that it does not pass --old-and-unmanageable
10686 installPhase = ''
10687 runHook preInstall
10688
10689 mkdir -p "$out/lib/${python.libPrefix}/site-packages"
10690
10691 export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
10692
10693 ${python}/bin/${python.executable} setup.py install \
10694 --install-lib=$out/lib/${python.libPrefix}/site-packages \
10695 --prefix="$out"
10696
10697 eapth="$out/lib/${python.libPrefix}"/site-packages/easy-install.pth
10698 if [ -e "$eapth" ]; then
10699 mv "$eapth" $(dirname "$eapth")/${name}.pth
10700 fi
10701
10702 rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
10703
10704 runHook postInstall
10705 '';
10706
10707 src = pkgs.fetchurl {
10708 url = "https://pypi.python.org/packages/source/k/kaa-metadata/kaa-metadata-0.7.8dev-r4569-20111003.tar.gz";
10709 sha256 = "0bkbzfgxvmby8lvzkqjp86anxvv3vjd9nksv2g4l7shsk1n7y27a";
10710 };
10711
10712 propagatedBuildInputs = with self; [ kaa-base ];
10713
10714 meta = {
10715 description = "Python library for parsing media metadata, which can extract metadata (e.g., such as id3 tags) from a wide range of media files";
10716 homepage = https://github.com/freevo/kaa-metadata;
10717 license = licenses.gpl2;
10718 maintainers = with maintainers; [ DamienCassou ];
10719 };
10720 };
10721
10722 pyinotify = buildPythonPackage rec {
10723 name = "pyinotify";
10724 version = "0.9.5";
10725
10726 src = pkgs.fetchurl {
10727 url = "https://pypi.python.org/packages/source/p/${name}/${name}-${version}.tar.gz";
10728 sha256 = "06yblnif9v05xwsbs089n0bj60ndb4lzkv1i15fprqnf6sgjmig7";
10729 };
10730
10731 meta = {
10732 homepage = https://github.com/seb-m/pyinotify/wiki;
10733 description = "Monitor filesystems events on Linux platforms with inotify";
10734 license = licenses.mit;
10735 platforms = platforms.linux;
10736 };
10737 };
10738
10739 pyjwt = buildPythonPackage rec {
10740 version = "0.3.2";
10741 name = "pyjwt-${version}";
10742
10743 src = pkgs.fetchurl {
10744 url = "http://github.com/progrium/pyjwt/archive/${version}.tar.gz";
10745 sha256 = "118rzhpyvx1h4hslms4fdizyv6mnyd4g34fv089lvs116pj08k9c";
10746 };
10747
10748 propagatedBuildInputs = with self; [ pycrypto ecdsa ];
10749
10750 meta = {
10751 description = "JSON Web Token implementation in Python";
10752 longDescription = "A Python implementation of JSON Web Token draft 01";
10753 homepage = https://github.com/progrium/pyjwt;
10754 downloadPage = https://github.com/progrium/pyjwt/releases;
10755 license = licenses.mit;
10756 maintainers = with maintainers; [ prikhi ];
10757 platforms = platforms.linux;
10758 };
10759 };
10760
10761 pykickstart = buildPythonPackage rec {
10762 name = "pykickstart-${version}";
10763 version = "1.99.39";
10764
10765 src = pkgs.fetchurl rec {
10766 url = "http://pkgs.fedoraproject.org/repo/pkgs/pykickstart/"
10767 + "${name}.tar.gz/${md5}/${name}.tar.gz";
10768 md5 = "d249f60aa89b1b4facd63f776925116d";
10769 };
10770
10771 postPatch = ''
10772 sed -i -e "s/for tst in tstList/for tst in sorted(tstList, \
10773 key=lambda m: m.__name__)/" tests/baseclass.py
10774 '';
10775
10776 propagatedBuildInputs = with self; [ urlgrabber ];
10777
10778 checkPhase = ''
10779 export PYTHONPATH="$PYTHONPATH:."
10780 ${python}/bin/${python.executable} tests/baseclass.py -vv
10781 '';
10782
10783 meta = {
10784 homepage = "http://fedoraproject.org/wiki/Pykickstart";
10785 description = "Read and write Fedora kickstart files";
10786 license = licenses.gpl2Plus;
10787 };
10788 };
10789
10790
10791 pyodbc = buildPythonPackage rec {
10792 name = "pyodbc-3.0.7";
10793 disabled = isPyPy; # use pypypdbc instead
10794
10795 src = pkgs.fetchurl {
10796 url = "https://pyodbc.googlecode.com/files/${name}.zip";
10797 sha256 = "0ldkm8xws91j7zbvpqb413hvdz8r66bslr451q3qc0xi8cnmydfq";
10798 };
10799
10800 buildInputs = with self; [ pkgs.libiodbc ];
10801
10802 meta = {
10803 description = "Python ODBC module to connect to almost any database";
10804 homepage = https://code.google.com/p/pyodbc/;
10805 license = licenses.mit;
10806 platforms = platforms.linux;
10807 maintainers = with maintainers; [ bjornfor ];
10808 };
10809 };
10810
10811
10812 pyparsing = buildPythonPackage rec {
10813 name = "pyparsing-2.0.1";
10814
10815 src = pkgs.fetchurl {
10816 url = "http://pypi.python.org/packages/source/p/pyparsing/${name}.tar.gz";
10817 sha256 = "1r742rjbagf2i166k2w0r192adfw7l9lnsqz7wh4mflf00zws1q0";
10818 };
10819
10820 # error: invalid command 'test'
10821 doCheck = false;
10822
10823 meta = {
10824 homepage = http://pyparsing.wikispaces.com/;
10825 description = "An alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions";
10826 };
10827 };
10828
10829 pyparsing1 = buildPythonPackage rec {
10830 name = "pyparsing-1.5.7";
10831 disabled = isPy3k;
10832
10833 src = pkgs.fetchurl {
10834 url = "http://pypi.python.org/packages/source/p/pyparsing/${name}.tar.gz";
10835 md5 = "9be0fcdcc595199c646ab317c1d9a709";
10836 };
10837
10838 meta = {
10839 homepage = http://pyparsing.wikispaces.com/;
10840 description = "An alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions";
10841 };
10842 };
10843
10844
10845 pyparted = buildPythonPackage rec {
10846 name = "pyparted-${version}";
10847 version = "3.10";
10848 disabled = isPyPy;
10849
10850 src = pkgs.fetchurl {
10851 url = "https://fedorahosted.org/releases/p/y/pyparted/${name}.tar.gz";
10852 sha256 = "17wq4invmv1nfazaksf59ymqyvgv3i8h4q03ry2az0s9lldyg3dv";
10853 };
10854
10855 patches = singleton (pkgs.fetchurl {
10856 url = "https://www.redhat.com/archives/pyparted-devel/"
10857 + "2014-April/msg00000.html";
10858 postFetch = ''
10859 sed -i -ne '/<!--X-Body-of-Message-->/,/<!--X-Body-of-Message-End-->/ {
10860 s/^<[^>]*>//; /^$/!p
10861 }' "$downloadedFile"
10862 '';
10863 sha256 = "1lakhz3nvx0qacn90bj1nq13zqxphiw4d9dsc44gwa8nj24j2zws";
10864 });
10865
10866 postPatch = ''
10867 sed -i -e 's|/sbin/mke2fs|${pkgs.e2fsprogs}&|' tests/baseclass.py
10868 sed -i -e '
10869 s|e\.path\.startswith("/tmp/temp-device-")|"temp-device-" in e.path|
10870 ' tests/test__ped_ped.py
10871 '' + optionalString stdenv.isi686 ''
10872 # remove some integers in this test case which overflow on 32bit systems
10873 sed -i -r -e '/class *UnitGetSizeTestCase/,/^$/{/[0-9]{11}/d}' \
10874 tests/test__ped_ped.py
10875 '';
10876
10877 preConfigure = ''
10878 PATH="${pkgs.parted}/sbin:$PATH"
10879 '';
10880
10881 buildInputs = with self; [ pkgs.pkgconfig ];
10882
10883 propagatedBuildInputs = with self; [ pkgs.parted ];
10884
10885 checkPhase = ''
10886 patchShebangs Makefile
10887 make test PYTHON=${python.executable}
10888 '';
10889
10890 meta = {
10891 homepage = "https://fedorahosted.org/pyparted/";
10892 description = "Python interface for libparted";
10893 license = licenses.gpl2Plus;
10894 platforms = platforms.linux;
10895 };
10896 };
10897
10898
10899 pyptlib = buildPythonPackage (rec {
10900 name = "pyptlib-${version}";
10901 disabled = isPyPy || isPy3k;
10902 version = "0.0.6";
10903
10904 doCheck = false; # No such file or directory errors on 32bit
10905
10906 src = pkgs.fetchurl {
10907 url = "https://pypi.python.org/packages/source/p/pyptlib/pyptlib-${version}.tar.gz";
10908 sha256 = "01y6vbwncqb0hxlnin6whd9wrrm5my4qzjhk76fnix78v7ip515r";
10909 };
10910 meta = {
10911 description = "A python implementation of the Pluggable Transports for Circumvention specification for Tor";
10912 license = licenses.bsd2;
10913 };
10914 });
10915
10916 pyqtgraph = buildPythonPackage rec {
10917 name = "pyqtgraph-${version}";
10918 version = "0.9.10";
10919
10920 doCheck = false; # "PyQtGraph requires either PyQt4 or PySide; neither package could be imported."
10921
10922 src = pkgs.fetchurl {
10923 url = "https://pypi.python.org/packages/source/p/pyqtgraph/${name}.tar.gz";
10924 sha256 = "188pcxf3sxxjf0aipjn820lx2rf9f42zzp0sibmcl90955a3ipf1";
10925 };
10926
10927 propagatedBuildInputs = with self; [ scipy numpy pyqt4 pyopengl ];
10928
10929 meta = {
10930 description = "Scientific Graphics and GUI Library for Python";
10931 homepage = http://www.pyqtgraph.org/;
10932 license = licenses.mit;
10933 platforms = platforms.unix;
10934 maintainers = with maintainers; [ koral ];
10935 };
10936 };
10937
10938 pystache = buildPythonPackage rec {
10939 name = "pystache-${version}";
10940 version = "0.5.4";
10941
10942 src = pkgs.fetchurl {
10943 url = "https://pypi.python.org/packages/source/p/pystache/${name}.tar.gz";
10944 sha256 = "f7bbc265fb957b4d6c7c042b336563179444ab313fb93a719759111eabd3b85a";
10945 };
10946
10947 meta = {
10948 description = "A framework-agnostic, logic-free templating system inspired by ctemplate and et";
10949 homepage = https://github.com/defunkt/pystache;
10950 license = licenses.mit;
10951 };
10952 };
10953
10954 PyStemmer = buildPythonPackage (rec {
10955 name = "PyStemmer-1.3.0";
10956
10957 src = pkgs.fetchurl {
10958 url = "http://pypi.python.org/packages/source/P/PyStemmer/${name}.tar.gz";
10959 md5 = "46ee623eeeba5a7cc0d95cbfa7e18abd";
10960 };
10961
10962 meta = {
10963 description = "Snowball stemming algorithms, for information retrieval";
10964 homepage = http://snowball.tartarus.org/;
10965 license = licenses.mit;
10966 platforms = platforms.unix;
10967 };
10968 });
10969
10970 pyro3 = buildPythonPackage (rec {
10971 name = "Pyro-3.16";
10972 disabled = isPy3k;
10973
10974 src = pkgs.fetchurl {
10975 url = "http://pypi.python.org/packages/source/P/Pyro/${name}.tar.gz";
10976 md5 = "59d4d3f4a8786776c9d7f9051b8f1a69";
10977 };
10978
10979 meta = {
10980 description = "Distributed object middleware for Python (IPC/RPC)";
10981 homepage = http://pythonhosted.org/Pyro/;
10982 license = licenses.mit;
10983 platforms = platforms.unix;
10984 maintainers = with maintainers; [ bjornfor ];
10985 };
10986 });
10987
10988 pyrss2gen = buildPythonPackage (rec {
10989 name = "PyRSS2Gen-1.0.0";
10990
10991 src = pkgs.fetchurl {
10992 url = "http://pypi.python.org/packages/source/P/PyRSS2Gen/${name}.tar.gz";
10993 md5 = "eae2bc6412c5679c287ecc1a59588f75";
10994 };
10995
10996 meta = {
10997 homepage = http://www.dalkescientific.om/Python/PyRSS2Gen.html;
10998 description = "Library for generating RSS 2.0 feeds";
10999 license = licenses.bsd2;
11000 maintainers = with maintainers; [ iElectric ];
11001 };
11002 });
11003
11004 pysnmp = buildPythonPackage rec {
11005 version = "4.2.5";
11006 name = "pysnmp-${version}";
11007
11008 src = pkgs.fetchurl {
11009 url = "https://pypi.python.org/packages/source/p/pysnmp/${name}.tar.gz";
11010 sha256 = "0zq7yx8732ad9dxpxqgpqyixj7kfwbvf402q7l5njkv0kbcnavn4";
11011 };
11012
11013 propagatedBuildInputs = with self; [ pyasn1 pycrypto ];
11014
11015 meta = {
11016 homepage = http://pysnmp.sf.net;
11017 description = "A pure-Python SNMPv1/v2c/v3 library";
11018 license = licenses.bsd2;
11019 platforms = platforms.all;
11020 maintainers = with maintainers; [ koral ];
11021 };
11022 };
11023
11024 pysocks = buildPythonPackage rec {
11025 name = "pysocks-${version}";
11026 version = "1.5.0";
11027
11028 src = pkgs.fetchurl {
11029 url = "https://pypi.python.org/packages/source/P/PySocks/PySocks-${version}.tar.gz";
11030 sha256 = "10wq5311qrnk8rvzsh6gwzxi7h51pgvzw3d7s1mb39fsvf0vyjdk";
11031 };
11032
11033 doCheck = false;
11034
11035 meta = {
11036 description = "SOCKS module for Python";
11037 license = licenses.bsd3;
11038 maintainers = with maintainers; [ thoughtpolice ];
11039 };
11040 };
11041
11042 python_fedora = buildPythonPackage (rec {
11043 name = "python-fedora-0.3.33";
11044 meta.maintainers = with maintainers; [ mornfall ];
11045
11046 src = pkgs.fetchurl {
11047 url = "https://fedorahosted.org/releases/p/y/python-fedora/${name}.tar.gz";
11048 sha256 = "1g05bh7d5d0gzrlnhpnca7jpqbgs2rgnlzzbvzzxmdbmlkqi3mws";
11049 };
11050 propagatedBuildInputs = with self; [ kitchen requests bunch paver ];
11051 doCheck = false;
11052 });
11053
11054 python_simple_hipchat = buildPythonPackage rec {
11055 name = "python-simple-hipchat-${version}";
11056 version = "0.1";
11057
11058 src = pkgs.fetchurl {
11059 url = "https://pypi.python.org/packages/source/p/python-simple-hipchat/python-simple-hipchat-${version}.zip";
11060 md5 = "3806b3729a021511bac065360832f197";
11061 };
11062
11063 buildInputs = [ pkgs.unzip ];
11064 };
11065
11066 python_keyczar = buildPythonPackage rec {
11067 name = "python-keyczar-0.71c";
11068
11069 src = pkgs.fetchurl {
11070 url = "https://pypi.python.org/packages/source/p/python-keyczar/${name}.tar.gz";
11071 sha256 = "18mhiwqq6vp65ykmi8x3i5l3gvrvrrr8z2kv11z1rpixmyr7sw1p";
11072 };
11073
11074 meta = {
11075 description = "Toolkit for safe and simple cryptography";
11076 homepage = https://pypi.python.org/pypi/python-keyczar;
11077 license = licenses.asl20;
11078 maintainers = with maintainers; [ lovek323 ];
11079 platforms = platforms.unix;
11080 };
11081
11082 buildInputs = with self; [ pyasn1 pycrypto ];
11083 };
11084
11085 pyudev = buildPythonPackage rec {
11086 name = "pyudev-${version}";
11087 version = "0.16.1";
11088
11089 src = pkgs.fetchurl {
11090 url = "https://pypi.python.org/packages/source/p/pyudev/${name}.tar.gz";
11091 md5 = "4034de584b6d9efcbfc590a047c63285";
11092 };
11093
11094 postPatch = ''
11095 sed -i -e '/udev_library_name/,/^ *libudev/ {
11096 s|CDLL([^,]*|CDLL("${pkgs.udev}/lib/libudev.so.1"|p; d
11097 }' pyudev/_libudev.py
11098 '';
11099
11100 propagatedBuildInputs = with self; [ pkgs.udev ];
11101
11102 meta = {
11103 homepage = "http://pyudev.readthedocs.org/";
11104 description = "Pure Python libudev binding";
11105 license = licenses.lgpl21Plus;
11106 platforms = platforms.linux;
11107 };
11108 };
11109
11110
11111 pynzb = buildPythonPackage (rec {
11112 name = "pynzb-0.1.0";
11113
11114 src = pkgs.fetchurl {
11115 url = "http://pypi.python.org/packages/source/p/pynzb/${name}.tar.gz";
11116 md5 = "63c74a36348ac28aa99732dcb8be8c59";
11117 };
11118
11119 meta = {
11120 homepage = http://github.com/ericflo/pynzb;
11121 description = "Unified API for parsing NZB files";
11122 license = licenses.bsd3;
11123 maintainers = with maintainers; [ iElectric ];
11124 };
11125 });
11126
11127 progressbar = buildPythonPackage (rec {
11128 name = "progressbar-2.2";
11129
11130 src = pkgs.fetchurl {
11131 url = "http://pypi.python.org/packages/source/p/progressbar/${name}.tar.gz";
11132 md5 = "8ea4e2c17a8ec9e7d153767c5f2a7b28";
11133 };
11134
11135 # invalid command 'test'
11136 doCheck = false;
11137
11138 meta = {
11139 homepage = http://code.google.com/p/python-progressbar/;
11140 description = "Text progressbar library for python";
11141 license = licenses.lgpl3Plus;
11142 maintainers = with maintainers; [ iElectric ];
11143 };
11144 });
11145
11146 ldap = buildPythonPackage rec {
11147 name = "ldap-2.4.19";
11148 disabled = isPy3k;
11149
11150 src = pkgs.fetchurl {
11151 url = "http://pypi.python.org/packages/source/p/python-ldap/python-${name}.tar.gz";
11152 sha256 = "0j5hzaar4d0vhnrlpmkczgwm7ci2wibr99a7zx04xddzrhxdpz82";
11153 };
11154
11155 NIX_CFLAGS_COMPILE = "-I${pkgs.cyrus_sasl}/include/sasl";
11156 propagatedBuildInputs = with self; [pkgs.openldap pkgs.cyrus_sasl pkgs.openssl];
11157 };
11158
11159 ptyprocess = buildPythonPackage rec {
11160 name = "ptyprocess-${version}";
11161 version = "0.5";
11162
11163 src = pkgs.fetchurl {
11164 url = "https://pypi.python.org/packages/source/p/ptyprocess/${name}.tar.gz";
11165 sha256= "dcb78fb2197b49ca1b7b2f37b047bc89c0da7a90f90bd5bc17c3ce388bb6ef59";
11166 };
11167
11168 meta = {
11169 description = "Run a subprocess in a pseudo terminal";
11170 homepage = https://github.com/pexpect/ptyprocess;
11171 license = licenses.isc;
11172 };
11173 };
11174
11175 pylibacl = buildPythonPackage (rec {
11176 name = "pylibacl-0.5.1";
11177
11178 src = pkgs.fetchurl {
11179 url = "https://github.com/downloads/iustin/pylibacl/${name}.tar.gz";
11180 sha256 = "1idks7j9bn62xzsaxkvhl7bdq6ws8kv8aa0wahfh7724qlbbcf1k";
11181 };
11182
11183 # ERROR: testExtended (tests.test_acls.AclExtensions)
11184 # IOError: [Errno 0] Error
11185 doCheck = false;
11186
11187 buildInputs = with self; [ pkgs.acl ];
11188
11189 meta = {
11190 description = "A Python extension module for POSIX ACLs, it can be used to query, list, add, and remove ACLs from files and directories under operating systems that support them";
11191 license = licenses.lgpl21Plus;
11192 };
11193 });
11194
11195
11196 pymacs = buildPythonPackage rec {
11197 version = "0.25";
11198 name = "pymacs-${version}";
11199 disabled = isPy3k || isPyPy;
11200
11201 src = pkgs.fetchurl {
11202 url = "https://github.com/pinard/Pymacs/tarball/v${version}";
11203 name = "${name}.tar.gz";
11204 sha256 = "1hmy76c5igm95rqbld7gvk0az24smvc8hplfwx2f5rhn6frj3p2i";
11205 };
11206
11207 configurePhase = "make";
11208
11209 # Doesn't work with --old-and-unmanagable
11210 installPhase = ''
11211 ${python}/bin/${python.executable} setup.py install \
11212 --install-lib=$out/lib/${python.libPrefix}/site-packages \
11213 --prefix="$out"
11214 '';
11215
11216 doCheck = false;
11217
11218 meta = {
11219 description = "Emacs Lisp to Python interface";
11220 homepage = http://pymacs.progiciels-bpi.ca;
11221 license = licenses.gpl2;
11222 maintainers = with maintainers; [ goibhniu ];
11223 };
11224 };
11225
11226 pyPdf = buildPythonPackage rec {
11227 name = "pyPdf-1.13";
11228
11229 src = pkgs.fetchurl {
11230 url = "https://pypi.python.org/packages/source/p/pyPdf/${name}.tar.gz";
11231 md5 = "7a75ef56f227b78ae62d6e38d4b6b1da";
11232 };
11233
11234 buildInputs = with self; [ ];
11235
11236 meta = {
11237 description = "Pure-Python PDF toolkit";
11238 homepage = "http://pybrary.net/pyPdf/";
11239 license = licenses.bsd3;
11240 };
11241 };
11242
11243 pyopengl = buildPythonPackage rec {
11244 name = "pyopengl-${version}";
11245 version = "3.0.2";
11246
11247 src = pkgs.fetchurl {
11248 url = "http://pypi.python.org/packages/source/P/PyOpenGL/PyOpenGL-${version}.tar.gz";
11249 sha256 = "9ef93bbea2c193898341f574e281c3ca0dfe87c53aa25fbec4b03581f6d1ba03";
11250 };
11251 propagatedBuildInputs = [ pkgs.mesa pkgs.freeglut self.pillow ];
11252 patchPhase = ''
11253 sed -i "s|util.find_library( name )|name|" OpenGL/platform/ctypesloader.py
11254 sed -i "s|'GL',|'libGL.so',|" OpenGL/platform/glx.py
11255 sed -i "s|'GLU',|'${pkgs.mesa}/lib/libGLU.so',|" OpenGL/platform/glx.py
11256 sed -i "s|'glut',|'${pkgs.freeglut}/lib/libglut.so',|" OpenGL/platform/glx.py
11257 '';
11258 meta = {
11259 homepage = http://pyopengl.sourceforge.net/;
11260 description = "PyOpenGL, the Python OpenGL bindings";
11261 longDescription = ''
11262 PyOpenGL is the cross platform Python binding to OpenGL and
11263 related APIs. The binding is created using the standard (in
11264 Python 2.5) ctypes library, and is provided under an extremely
11265 liberal BSD-style Open-Source license.
11266 '';
11267 license = "BSD-style";
11268 platforms = platforms.mesaPlatforms;
11269 };
11270 };
11271
11272 pyopenssl = buildPythonPackage rec {
11273 name = "pyopenssl-${version}";
11274 version = "0.14";
11275
11276 src = pkgs.fetchurl {
11277 url = "https://pypi.python.org/packages/source/p/pyOpenSSL/pyOpenSSL-0.14.tar.gz";
11278 sha256 = "0vpfqhng4cky7chliknkxv910iabqbfcxvkjiankh08jkkjvi7d9";
11279 };
11280
11281 # 17 tests failing
11282 doCheck = false;
11283
11284 propagatedBuildInputs = [ self.cryptography self.pyasn1 self.idna ];
11285 };
11286
11287
11288 pyquery = buildPythonPackage rec {
11289 name = "pyquery-1.2.4";
11290
11291 src = pkgs.fetchurl {
11292 url = "http://pypi.python.org/packages/source/p/pyquery/${name}.tar.gz";
11293 md5 = "268f08258738d21bc1920d7522f2a63b";
11294 };
11295
11296 propagatedBuildInputs = with self; [ cssselect lxml ];
11297 };
11298
11299 pyrax = buildPythonPackage rec {
11300 name = "pyrax-1.8.2";
11301
11302 src = pkgs.fetchurl {
11303 url = "http://pypi.python.org/packages/source/p/pyrax/${name}.tar.gz";
11304 sha256 = "0hvim60bhgfj91m7pp8jfmb49f087xqlgkqa505zw28r7yl0hcfp";
11305 };
11306
11307 meta = {
11308 homepage = "https://github.com/rackspace/pyrax";
11309 license = licenses.mit;
11310 description = "Python API to interface with Rackspace";
11311 };
11312
11313 doCheck = false;
11314 };
11315
11316
11317 pyreport = buildPythonPackage (rec {
11318 name = "pyreport-0.3.4c";
11319 disabled = isPy3k;
11320
11321 src = pkgs.fetchurl {
11322 url = "http://pypi.python.org/packages/source/p/pyreport/${name}.tar.gz";
11323 md5 = "3076164a7079891d149a23f9435581db";
11324 };
11325
11326 # error: invalid command 'test'
11327 doCheck = false;
11328
11329 meta = {
11330 homepage = http://pypi.python.org/pypi/pyreport;
11331 license = "BSD";
11332 description = "Pyreport makes notes out of a python script";
11333 };
11334 });
11335
11336 pyscss = buildPythonPackage rec {
11337 name = "pyScss-${version}";
11338 version = "1.3.4";
11339
11340 src = pkgs.fetchurl {
11341 url = "https://pypi.python.org/packages/source/p/pyScss/${name}.tar.gz";
11342 sha256 = "03lcp853kgr66aqrw2jd1q9jhs9h049w7zlwp7bfmly7xh832cnh";
11343 };
11344
11345 propagatedBuildInputs = with self; [ six ]
11346 ++ (optionals (pythonOlder "3.4") [ enum34 pathlib ])
11347 ++ (optionals (pythonOlder "2.7") [ ordereddict ]);
11348
11349 meta = {
11350 description = "A Scss compiler for Python";
11351 homepage = http://pyscss.readthedocs.org/en/latest/;
11352 license = licenses.mit;
11353 };
11354 };
11355
11356 pyserial = buildPythonPackage rec {
11357 name = "pyserial-2.7";
11358
11359 src = pkgs.fetchurl {
11360 url = "http://pypi.python.org/packages/source/p/pyserial/${name}.tar.gz";
11361 sha256 = "3542ec0838793e61d6224e27ff05e8ce4ba5a5c5cc4ec5c6a3e8d49247985477";
11362 };
11363
11364 doCheck = false;
11365
11366 meta = {
11367 homepage = "http://pyserial.sourceforge.net/";
11368 license = licenses.psfl;
11369 description = "Python serial port extension";
11370 };
11371 };
11372
11373 pymongo = buildPythonPackage rec {
11374 name = "pymongo-2.8";
11375
11376 src = pkgs.fetchurl {
11377 url = "http://pypi.python.org/packages/source/p/pymongo/${name}.tar.gz";
11378 sha256 = "0d9rlxghqg9dqmcmrlf1lw9ap2g6npv6q4slp5agnm7vci9zchq5";
11379 };
11380
11381 doCheck = false;
11382
11383 meta = {
11384 homepage = "http://github.com/mongodb/mongo-python-driver";
11385 license = licenses.asl20;
11386 description = "Python driver for MongoDB ";
11387 };
11388 };
11389
11390 pysphere = buildPythonPackage rec {
11391 name = "pysphere-0.1.8";
11392
11393 src = pkgs.fetchurl {
11394 url = "http://pysphere.googlecode.com/files/${name}.zip";
11395 md5 = "c57cba33626ac4b1e3d1974923d59232";
11396 };
11397
11398 meta = {
11399 homepage = "https://code.google.com/p/pysphere/";
11400 license = "BSD";
11401 description = "Python API for interaction with the VMWare vSphere";
11402 };
11403 };
11404
11405 pysqlite = buildPythonPackage (rec {
11406 name = "pysqlite-2.6.3";
11407 disabled = isPy3k;
11408
11409 src = pkgs.fetchurl {
11410 url = "https://pypi.python.org/packages/source/p/pysqlite/${name}.tar.gz";
11411 sha256 = "13djzgnbi71znjjyaw4nybg6smilgszcid646j5qav7mdchkb77y";
11412 };
11413
11414 # Since the `.egg' file is zipped, the `NEEDED' of the `.so' files
11415 # it contains is not taken into account. Thus, we must explicitly make
11416 # it a propagated input.
11417 propagatedBuildInputs = with self; [ pkgs.sqlite ];
11418
11419 patchPhase = ''
11420 substituteInPlace "setup.cfg" \
11421 --replace "/usr/local/include" "${pkgs.sqlite}/include" \
11422 --replace "/usr/local/lib" "${pkgs.sqlite}/lib"
11423 '';
11424
11425 # error: invalid command 'test'
11426 doCheck = false;
11427
11428 meta = {
11429 homepage = http://pysqlite.org/;
11430
11431 description = "Python bindings for the SQLite embedded relational database engine";
11432
11433 longDescription = ''
11434 pysqlite is a DB-API 2.0-compliant database interface for SQLite.
11435
11436 SQLite is a relational database management system contained in
11437 a relatively small C library. It is a public domain project
11438 created by D. Richard Hipp. Unlike the usual client-server
11439 paradigm, the SQLite engine is not a standalone process with
11440 which the program communicates, but is linked in and thus
11441 becomes an integral part of the program. The library
11442 implements most of SQL-92 standard, including transactions,
11443 triggers and most of complex queries.
11444
11445 pysqlite makes this powerful embedded SQL engine available to
11446 Python programmers. It stays compatible with the Python
11447 database API specification 2.0 as much as possible, but also
11448 exposes most of SQLite's native API, so that it is for example
11449 possible to create user-defined SQL functions and aggregates
11450 in Python.
11451 '';
11452
11453 license = licenses.bsd3;
11454
11455 maintainers = [ ];
11456 };
11457 });
11458
11459
11460 pysvn = pkgs.stdenv.mkDerivation {
11461 name = "pysvn-1.7.8";
11462
11463 src = pkgs.fetchurl {
11464 url = "http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.8.tar.gz";
11465 sha256 = "1qk7af0laby1f79bd07l9p0dxn5xmcmfwlcb9l1hk29zwwq6x4v0";
11466 };
11467
11468 buildInputs = with self; [ python pkgs.subversion pkgs.apr pkgs.aprutil pkgs.expat pkgs.neon pkgs.openssl ]
11469 ++ (if stdenv.isLinux then [pkgs.e2fsprogs] else []);
11470
11471 # There seems to be no way to pass that path to configure.
11472 NIX_CFLAGS_COMPILE="-I${pkgs.aprutil}/include/apr-1";
11473
11474 preConfigure = ''
11475 cd Source
11476 python setup.py backport
11477 python setup.py configure \
11478 --apr-inc-dir=${pkgs.apr}/include/apr-1 \
11479 --apu-inc-dir=${pkgs.aprutil}/include/apr-1 \
11480 --apr-lib-dir=${pkgs.apr}/lib \
11481 --svn-root-dir=${pkgs.subversion}
11482 '' + (if !stdenv.isDarwin then "" else ''
11483 sed -i -e 's|libpython2.7.dylib|lib/libpython2.7.dylib|' Makefile
11484 '');
11485
11486 checkPhase = "make -C ../Tests";
11487
11488 installPhase = ''
11489 dest=$(toPythonPath $out)/pysvn
11490 mkdir -p $dest
11491 cp pysvn/__init__.py $dest/
11492 cp pysvn/_pysvn*.so $dest/
11493 mkdir -p $out/share/doc
11494 mv -v ../Docs $out/share/doc/pysvn-1.7.2
11495 rm -v $out/share/doc/pysvn-1.7.2/generate_cpp_docs_from_html_docs.py
11496 '';
11497
11498 meta = {
11499 description = "Python bindings for Subversion";
11500 homepage = "http://pysvn.tigris.org/";
11501 };
11502 };
11503
11504
11505 pytz = buildPythonPackage rec {
11506 name = "pytz-${version}";
11507 version = "2015.4";
11508
11509 src = pkgs.fetchurl {
11510 url = "http://pypi.python.org/packages/source/p/pytz/${name}.tar.bz2";
11511 md5 = "39f7375c4b1fa34cdcb4b4765d08f817";
11512 };
11513
11514 meta = {
11515 description = "World timezone definitions, modern and historical";
11516 homepage = "http://pythonhosted.org/pytz";
11517 license = licenses.mit;
11518 };
11519 };
11520
11521
11522 pyutil = buildPythonPackage (rec {
11523 name = "pyutil-2.0.0";
11524
11525 src = pkgs.fetchurl {
11526 url = "http://pypi.python.org/packages/source/p/pyutil/${name}.tar.gz";
11527 sha256 = "1fsg9yz5mi2sb0h6c1vvcqchx56i89nbvdb5gfgv1ia3b2w5ra8c";
11528 };
11529
11530 buildInputs = with self; [ setuptoolsDarcs setuptoolsTrial ] ++ (if doCheck then [ simplejson ] else []);
11531 propagatedBuildInputs = with self; [ zbase32 argparse twisted ];
11532 # Tests fail because they try to write new code into the twisted
11533 # package, apparently some kind of plugin.
11534 doCheck = false;
11535
11536 meta = {
11537 description = "Pyutil, a collection of mature utilities for Python programmers";
11538
11539 longDescription = ''
11540 These are a few data structures, classes and functions which
11541 we've needed over many years of Python programming and which
11542 seem to be of general use to other Python programmers. Many of
11543 the modules that have existed in pyutil over the years have
11544 subsequently been obsoleted by new features added to the
11545 Python language or its standard library, thus showing that
11546 we're not alone in wanting tools like these.
11547 '';
11548
11549 homepage = http://allmydata.org/trac/pyutil;
11550
11551 license = licenses.gpl2Plus;
11552 };
11553 });
11554
11555
11556 pywebkitgtk = stdenv.mkDerivation rec {
11557 name = "pywebkitgtk-${version}";
11558 version = "1.1.8";
11559
11560 src = pkgs.fetchurl {
11561 url = "http://pywebkitgtk.googlecode.com/files/${name}.tar.bz2";
11562 sha256 = "1svlwyl61rvbqbcbalkg6pbf38yjyv7qkq9sx4x35yk69lscaac2";
11563 };
11564
11565 buildInputs = [
11566 pkgs.pkgconfig pkgs.gtk2 self.pygtk pkgs.libxml2
11567 pkgs.libxslt pkgs.libsoup pkgs.webkitgtk2 pkgs.icu
11568 ];
11569
11570 meta = {
11571 homepage = "https://code.google.com/p/pywebkitgtk/";
11572 description = "Python bindings for the WebKit GTK+ port";
11573 license = licenses.lgpl2Plus;
11574 };
11575 };
11576
11577 pywinrm = buildPythonPackage (rec {
11578 name = "pywinrm";
11579
11580 src = pkgs.fetchgit {
11581 url = https://github.com/diyan/pywinrm.git;
11582 rev = "c9ce62d500007561ab31a8d0a5d417e779fb69d9";
11583 sha256 = "0n0qlcgin2g5lpby07qbdlnpq5v2qc2yns9zc4zm5prwh2mhs5za";
11584 };
11585
11586 propagatedBuildInputs = with self; [ xmltodict isodate ];
11587
11588 meta = {
11589 homepage = "http://github.com/diyan/pywinrm/";
11590 description = "Python library for Windows Remote Management";
11591 license = licenses.mit;
11592 };
11593 });
11594
11595
11596 pyxattr = buildPythonPackage (rec {
11597 name = "pyxattr-0.5.1";
11598
11599 src = pkgs.fetchurl {
11600 url = "https://github.com/downloads/iustin/pyxattr/${name}.tar.gz";
11601 sha256 = "0jmkffik6hdzs7ng8c65bggss2ai40nm59jykswdf5lpd36cxddq";
11602 };
11603
11604 # error: invalid command 'test'
11605 doCheck = false;
11606
11607 buildInputs = with self; [ pkgs.attr ];
11608
11609 meta = {
11610 description = "A Python extension module which gives access to the extended attributes for filesystem objects available in some operating systems";
11611 license = licenses.lgpl21Plus;
11612 };
11613 });
11614
11615
11616 pyaml = buildPythonPackage (rec {
11617 name = "pyaml-15.02.1";
11618 disabled = !isPy27;
11619
11620 src = pkgs.fetchurl {
11621 url = "https://pypi.python.org/packages/source/p/pyaml/${name}.tar.gz";
11622 md5 = "e98cf27f50b9ca291ca4937c135db1c9";
11623 };
11624
11625 buildInputs = with self; [ pyyaml ];
11626
11627 meta = {
11628 description = "PyYAML-based module to produce pretty and readable YAML-serialized data";
11629 homepage = https://github.com/mk-fg/pretty-yaml;
11630 };
11631 });
11632
11633
11634 pyyaml = buildPythonPackage (rec {
11635 name = "PyYAML-3.10";
11636
11637 src = pkgs.fetchurl {
11638 url = "http://pyyaml.org/download/pyyaml/${name}.zip";
11639 sha256 = "1r127fa354ppb667f4acxlzwxixap1jgzjrr790bw8mcpxv2hqaa";
11640 };
11641
11642 buildInputs = with self; [ pkgs.pyrex ];
11643 propagatedBuildInputs = with self; [ pkgs.libyaml ];
11644
11645 meta = {
11646 description = "The next generation YAML parser and emitter for Python";
11647 homepage = http://pyyaml.org;
11648 license = licenses.free; # !?
11649 };
11650 });
11651
11652
11653 recaptcha_client = buildPythonPackage rec {
11654 name = "recaptcha-client-1.0.6";
11655
11656 src = pkgs.fetchurl {
11657 url = "http://pypi.python.org/packages/source/r/recaptcha-client/${name}.tar.gz";
11658 md5 = "74228180f7e1fb76c4d7089160b0d919";
11659 };
11660
11661 meta = {
11662 description = "A CAPTCHA for Python using the reCAPTCHA service";
11663 homepage = http://recaptcha.net/;
11664 };
11665 };
11666
11667 rencode = buildPythonPackage rec {
11668 name = "rencode-${version}";
11669 version = "git20150810";
11670 disabled = isPy33;
11671
11672 src = pkgs.fetchgit {
11673 url = https://github.com/aresch/rencode;
11674 rev = "b45e04abdca0dea36e383a8199783269f186c99e";
11675 sha256 = "b4bd82852d4220e8a9493d3cfaecbc57b1325708a2d48c0f8acf262edb10dc40";
11676 };
11677
11678 buildInputs = with self; [ cython ];
11679
11680 meta = {
11681 homepage = https://github.com/aresch/rencode;
11682 description = "Fast (basic) object serialization similar to bencode";
11683 license = licenses.gpl3;
11684 };
11685 };
11686
11687
11688 reportlab =
11689 let freetype = overrideDerivation pkgs.freetype (args: { configureFlags = "--enable-static --enable-shared"; });
11690 in buildPythonPackage rec {
11691 name = "reportlab-3.1.8";
11692
11693 src = pkgs.fetchurl {
11694 url = "http://pypi.python.org/packages/source/r/reportlab/${name}.tar.gz";
11695 md5 = "820a9fda647078503597b85cdba7ed7f";
11696 };
11697
11698 buildInputs = with self; [freetype];
11699
11700 # error: invalid command 'test'
11701 doCheck = false;
11702
11703 meta = {
11704 description = "An Open Source Python library for generating PDFs and graphics";
11705 homepage = http://www.reportlab.com/;
11706 };
11707 };
11708
11709
11710 requests = buildPythonPackage rec {
11711 name = "requests-1.2.3";
11712
11713 src = pkgs.fetchurl {
11714 url = "http://pypi.python.org/packages/source/r/requests/${name}.tar.gz";
11715 md5 = "adbd3f18445f7fe5e77f65c502e264fb";
11716 };
11717
11718 meta = {
11719 description = "An Apache2 licensed HTTP library, written in Python, for human beings";
11720 homepage = http://docs.python-requests.org/en/latest/;
11721 };
11722 };
11723
11724
11725 requests2 = buildPythonPackage rec {
11726 name = "requests-${version}";
11727 version = "2.7.0";
11728
11729 src = pkgs.fetchurl {
11730 url = "http://pypi.python.org/packages/source/r/requests/${name}.tar.gz";
11731 sha256 = "0gdr9dxm24amxpbyqpbh3lbwxc2i42hnqv50sigx568qssv3v2ir";
11732 };
11733
11734 meta = {
11735 description = "An Apache2 licensed HTTP library, written in Python, for human beings";
11736 homepage = http://docs.python-requests.org/en/latest/;
11737 license = licenses.asl20;
11738 };
11739 };
11740
11741
11742 requests_oauthlib = buildPythonPackage rec {
11743 version = "v0.4.1";
11744 name = "requests-oauthlib-${version}";
11745
11746 src = pkgs.fetchurl {
11747 url = "http://github.com/requests/requests-oauthlib/archive/${version}.tar.gz";
11748 sha256 = "0vx252nzq5h9m9brwnw2ph8aj526y26jr2dqcafzzcdx6z4l8vj4";
11749 };
11750
11751 doCheck = false; # Internet tests fail when building in chroot
11752 propagatedBuildInputs = with self; [ oauthlib requests2 ];
11753
11754 meta = {
11755 description = "OAuthlib authentication support for Requests";
11756 homepage = https://github.com/requests/requests-oauthlib;
11757 maintainers = with maintainers; [ prikhi ];
11758 };
11759 };
11760
11761 requests_toolbelt = buildPythonPackage rec {
11762 version = "0.4.0";
11763 name = "requests-toolbelt-${version}";
11764
11765 src = pkgs.fetchurl {
11766 url = "https://github.com/sigmavirus24/requests-toolbelt/archive/${version}.tar.gz";
11767 sha256 = "0zvfz4c9lqiwh2qh51rba6ckpjl3pbp9fcm0ri58qhcjd8mh8k34";
11768 };
11769
11770 propagatedBuildInputs = with self; [ requests2 ];
11771
11772 meta = {
11773 description = "A toolbelt of useful classes and functions to be used with python-requests";
11774 homepage = http://toolbelt.rtfd.org;
11775 maintainers = with maintainers; [ matthiasbeyer jgeerds ];
11776 };
11777
11778 };
11779
11780 retry_decorator = buildPythonPackage rec {
11781 name = "retry_decorator-1.0.0";
11782 src = pkgs.fetchurl {
11783 url = https://pypi.python.org/packages/source/r/retry_decorator/retry_decorator-1.0.0.tar.gz;
11784 sha256 = "086zahyb6yn7ggpc58909c5r5h3jz321i1694l1c28bbpaxnlk88";
11785 };
11786 meta = {
11787 homepage = https://github.com/pnpnpn/retry-decorator;
11788 license = licenses.mit;
11789 };
11790 };
11791
11792 qscintilla = pkgs.stdenv.mkDerivation rec {
11793 # TODO: Qt5 support
11794 name = "qscintilla-${version}";
11795 version = pkgs.qscintilla.version;
11796 disabled = isPy3k || isPyPy;
11797
11798 src = pkgs.qscintilla.src;
11799
11800 buildInputs = with pkgs; [ xorg.lndir qt4 pyqt4 python ];
11801
11802 preConfigure = ''
11803 mkdir -p $out
11804 lndir ${pkgs.pyqt4} $out
11805 cd Python
11806 ${python.executable} ./configure-old.py \
11807 --destdir $out/lib/${python.libPrefix}/site-packages/PyQt4 \
11808 --apidir $out/api/${python.libPrefix} \
11809 -n ${pkgs.qscintilla}/include \
11810 -o ${pkgs.qscintilla}/lib \
11811 --sipdir $out/share/sip
11812 '';
11813
11814 meta = with stdenv.lib; {
11815 description = "A Python binding to QScintilla, Qt based text editing control";
11816 license = licenses.lgpl21Plus;
11817 maintainers = [ "abcz2.uprola@gmail.com" ];
11818 platforms = platforms.linux;
11819 };
11820 };
11821
11822
11823 qserve = buildPythonPackage rec {
11824 name = "qserve-0.2.8";
11825 disabled = isPy3k;
11826
11827 src = pkgs.fetchurl {
11828 url = "https://pypi.python.org/packages/source/q/qserve/${name}.zip";
11829 md5 = "d481f0dad66a93d0479022fe0487e8ee";
11830 };
11831
11832 buildInputs = with self; [ ];
11833
11834 meta = {
11835 description = "job queue server";
11836 homepage = "https://github.com/pediapress/qserve";
11837 license = licenses.bsd3;
11838 };
11839 };
11840
11841 quantities = buildPythonPackage rec {
11842 name = "quantities-0.10.1";
11843
11844 src = pkgs.fetchurl {
11845 url = "https://pypi.python.org/packages/source/q/quantities/quantities-0.10.1.tar.gz";
11846 md5 = "e924e21c0a5ddc9ebcdacbbe511b8ec7";
11847 };
11848
11849 meta = with pkgs.stdenv.lib; {
11850 description = "Quantities is designed to handle arithmetic and";
11851 homepage = http://packages.python.org/quantities;
11852 license = licenses.bsd2;
11853 };
11854 };
11855
11856 qutip = buildPythonPackage rec {
11857 name = "qutip-2.2.0";
11858
11859 src = pkgs.fetchurl {
11860 url = "https://qutip.googlecode.com/files/QuTiP-2.2.0.tar.gz";
11861 sha1 = "76ba4991322a991d580e78a197adc80d58bd5fb3";
11862 };
11863
11864 propagatedBuildInputs = with self; [ numpy scipy matplotlib pyqt4
11865 cython ];
11866
11867 buildInputs = [ pkgs.gcc pkgs.qt4 pkgs.blas self.nose ];
11868
11869 meta = {
11870 description = "QuTiP - Quantum Toolbox in Python";
11871 longDescription = ''
11872 QuTiP is open-source software for simulating the dynamics of
11873 open quantum systems. The QuTiP library depends on the
11874 excellent Numpy and Scipy numerical packages. In addition,
11875 graphical output is provided by Matplotlib. QuTiP aims to
11876 provide user-friendly and efficient numerical simulations of a
11877 wide variety of Hamiltonians, including those with arbitrary
11878 time-dependence, commonly found in a wide range of physics
11879 applications such as quantum optics, trapped ions,
11880 superconducting circuits, and quantum nanomechanical
11881 resonators.
11882 '';
11883 homepage = http://qutip.org/;
11884 };
11885 };
11886
11887 redis = buildPythonPackage rec {
11888 name = "redis-2.9.1";
11889
11890 src = pkgs.fetchurl {
11891 url = "https://pypi.python.org/packages/source/r/redis/${name}.tar.gz";
11892 sha256 = "1r7lrh4kxccyhr4pyp13ilymmvh22pi7aa9514dmnhi74zn4g5xg";
11893 };
11894
11895 doCheck = false;
11896
11897 meta = {
11898 description = "Python client for Redis key-value store";
11899 homepage = "https://pypi.python.org/pypi/redis/";
11900 };
11901 };
11902
11903 repocheck = buildPythonPackage rec {
11904 name = "repocheck-2015-08-05";
11905 disabled = isPy26 || isPy27;
11906
11907 src = pkgs.fetchFromGitHub {
11908 sha256 = "1jc4v5zy7z7xlfmbfzvyzkyz893f5x2k6kvb3ni3rn2df7jqhc81";
11909 rev = "ee48d0e88d3f5814d24a8d1f22d5d83732824688";
11910 repo = "repocheck";
11911 owner = "kynikos";
11912 };
11913
11914 meta = {
11915 inherit (src.meta) homepage;
11916 description = "Check the status of code repositories under a root directory";
11917 license = licenses.gpl3Plus;
11918 maintainers = with maintainers; [ nckx ];
11919 };
11920 };
11921
11922 requests_oauth2 = buildPythonPackage rec {
11923 name = "requests-oauth2-0.1.1";
11924
11925 src = pkgs.fetchurl {
11926 url = https://github.com/maraujop/requests-oauth2/archive/0.1.1.tar.gz;
11927 sha256 = "1aij66qg9j5j4vzyh64nbg72y7pcafgjddxsi865racsay43xfqg";
11928 };
11929
11930 propagatedBuildInputs = with self; [ requests_oauthlib ];
11931
11932 meta = {
11933 description = "Python's Requests OAuth2 (Open Authentication) plugin";
11934 homepage = https://github.com/maraujop/requests-oauth2;
11935 };
11936 };
11937
11938
11939 restview = buildPythonPackage rec {
11940 name = "restview-${version}";
11941 version = "2.2.1";
11942
11943 src = pkgs.fetchurl {
11944 url = "https://pypi.python.org/packages/source/r/restview/${name}.tar.gz";
11945 sha256 = "070qx694bpk2n67grm82jvvar4nqvvfmmibbnv8snl4qn41jw66s";
11946 };
11947
11948 propagatedBuildInputs = with self; [ docutils mock pygments ];
11949
11950 meta = {
11951 description = "ReStructuredText viewer";
11952 homepage = http://mg.pov.lt/restview/;
11953 license = licenses.gpl2;
11954 platforms = platforms.all;
11955 maintainers = with maintainers; [ koral ];
11956 };
11957 };
11958
11959
11960 reviewboard = buildPythonPackage rec {
11961 name = "ReviewBoard-1.6.16";
11962
11963 src = pkgs.fetchurl {
11964 url = "http://downloads.reviewboard.org/releases/ReviewBoard/1.6/${name}.tar.gz";
11965 sha256 = "0vg3ypm57m43bscv8vswjdllv3d2j8lxqwwvpd65cl7jd1in0yr1";
11966 };
11967
11968 propagatedBuildInputs = with self;
11969 [ django_1_3 recaptcha_client pytz memcached dateutil_1_5 paramiko flup pygments
11970 djblets django_evolution pycrypto modules.sqlite3
11971 pysvn pil psycopg2
11972 ];
11973 };
11974
11975
11976 rdflib = buildPythonPackage (rec {
11977 name = "rdflib-4.1.2";
11978
11979 src = pkgs.fetchurl {
11980 url = "https://pypi.python.org/packages/source/r/rdflib/${name}.tar.gz";
11981 sha256 = "0kvaf332cqbi47rqzlpdx4mbkvw12mkrzkj8n9l19wk713d4py9w";
11982 };
11983
11984 # error: invalid command 'test'
11985 doCheck = false;
11986
11987 propagatedBuildInputs = with self; [ isodate ];
11988
11989 meta = {
11990 description = "A Python library for working with RDF, a simple yet powerful language for representing information";
11991 homepage = http://www.rdflib.net/;
11992 };
11993 });
11994
11995 isodate = buildPythonPackage rec {
11996 name = "isodate-0.5.0";
11997
11998 src = pkgs.fetchurl {
11999 url = "https://pypi.python.org/packages/source/i/isodate/${name}.tar.gz";
12000 md5 = "9a267e9327feb3d021cae26002ba6e0e";
12001 };
12002
12003 meta = {
12004 description = "ISO 8601 date/time parser";
12005 homepage = http://cheeseshop.python.org/pypi/isodate;
12006 };
12007 };
12008
12009 robomachine = buildPythonPackage rec {
12010 name = "robomachine-0.6";
12011
12012 src = pkgs.fetchurl {
12013 url = "https://pypi.python.org/packages/source/R/RoboMachine/RoboMachine-0.6.tar.gz";
12014 md5 = "4e95eaa43afda0f363c78a88e9da7159";
12015 };
12016
12017 propagatedBuildInputs = with self; [ pyparsing argparse robotframework ];
12018
12019 # Remove Windows .bat files
12020 postInstall = ''
12021 rm "$out/bin/"*.bat
12022 '';
12023
12024 meta = {
12025 description = "Test data generator for Robot Framework";
12026 homepage = https://github.com/mkorpela/RoboMachine;
12027 license = licenses.asl20;
12028 maintainers = with maintainers; [ bjornfor ];
12029 };
12030 };
12031
12032 robotframework = buildPythonPackage rec {
12033 version = "2.8.7";
12034 name = "robotframework-${version}";
12035 disabled = isPy3k;
12036
12037 src = pkgs.fetchurl {
12038 url = "https://pypi.python.org/packages/source/r/robotframework/${name}.tar.gz";
12039 sha256 = "0mfd0s989j3jrpl8q0lb4wsjy1x280chfr9r74m2dyi9c7rxzc58";
12040 };
12041
12042 # error: invalid command 'test'
12043 doCheck = false;
12044
12045 meta = {
12046 description = "Generic test automation framework";
12047 homepage = http://robotframework.org/;
12048 license = licenses.asl20;
12049 platforms = platforms.linux;
12050 maintainers = with maintainers; [ bjornfor ];
12051 };
12052 };
12053
12054
12055 robotframework-selenium2library = buildPythonPackage rec {
12056 version = "1.6.0";
12057 name = "robotframework-selenium2library-${version}";
12058
12059 src = pkgs.fetchurl {
12060 url = "https://pypi.python.org/packages/source/r/robotframework-selenium2library/${name}.tar.gz";
12061 sha256 = "1asdwrpb4s7q08bx641yrh3yicgba14n3hxmsqs58mqf86ignwly";
12062 };
12063
12064 # error: invalid command 'test'
12065 #doCheck = false;
12066
12067 propagatedBuildInputs = with self; [ robotframework selenium docutils decorator ];
12068
12069 meta = {
12070 description = "";
12071 homepage = http://robotframework.org/;
12072 license = licenses.asl20;
12073 };
12074 };
12075
12076
12077 robotframework-tools = buildPythonPackage rec {
12078 version = "0.1a115";
12079 name = "robotframework-tools-${version}";
12080
12081 src = pkgs.fetchurl {
12082 url = "https://pypi.python.org/packages/source/r/robotframework-tools/${name}.tar.gz";
12083 sha256 = "04gkn1zpf3rsvbqdxrrjqqi8sa0md9gqwh6n5w2m03fdwjg4lc7q";
12084 };
12085
12086 propagatedBuildInputs = with self; [ robotframework moretools pathpy six setuptools ];
12087
12088 meta = {
12089 description = "Python Tools for Robot Framework and Test Libraries";
12090 homepage = http://bitbucket.org/userzimmermann/robotframework-tools;
12091 license = licenses.gpl3;
12092 platforms = platforms.linux;
12093 };
12094 };
12095
12096
12097 robotsuite = buildPythonPackage rec {
12098 version = "1.4.2";
12099 name = "robotsuite-${version}";
12100
12101 src = pkgs.fetchurl {
12102 url = "https://pypi.python.org/packages/source/r/robotsuite/${name}.zip";
12103 sha256 = "0sw09vrvwv3gzqb6jvhbrz09l6nzzj3i9av34qjddqfwq7cr1bla";
12104 };
12105
12106 # error: invalid command 'test'
12107 #doCheck = false;
12108
12109 buildInputs = with self; [ unittest2 ];
12110 propagatedBuildInputs = with self; [ robotframework lxml ];
12111
12112 meta = {
12113 description = "Python unittest test suite for Robot Framework";
12114 homepage = http://github.com/collective/robotsuite/;
12115 license = licenses.gpl3;
12116 };
12117 };
12118
12119
12120 robotframework-ride = buildPythonPackage rec {
12121 version = "1.2.3";
12122 name = "robotframework-ride-${version}";
12123 disabled = isPy3k;
12124
12125 src = pkgs.fetchurl {
12126 url = "https://robotframework-ride.googlecode.com/files/${name}.tar.gz";
12127 sha256 = "1lf5f4x80f7d983bmkx12sxcizzii21kghs8kf63a1mj022a5x5j";
12128 };
12129
12130 propagatedBuildInputs = with self; [ pygments wxPython modules.sqlite3 ];
12131
12132 # ride_postinstall.py checks that needed deps are installed and creates a
12133 # desktop shortcut. We don't really need it and it clutters up bin/ so
12134 # remove it.
12135 postInstall = ''
12136 rm -f "$out/bin/ride_postinstall.py"
12137 '';
12138
12139 # error: invalid command 'test'
12140 doCheck = false;
12141
12142 meta = {
12143 description = "Light-weight and intuitive editor for Robot Framework test case files";
12144 homepage = https://code.google.com/p/robotframework-ride/;
12145 license = licenses.asl20;
12146 platforms = platforms.linux;
12147 maintainers = with maintainers; [ bjornfor ];
12148 };
12149 };
12150
12151
12152 rope = buildPythonPackage rec {
12153 version = "0.10.2";
12154 name = "rope-${version}";
12155
12156 disabled = isPy3k;
12157
12158 src = pkgs.fetchurl {
12159 url = "http://pypi.python.org/packages/source/r/rope/${name}.tar.gz";
12160 sha256 = "0rdlvp8h74qs49wz1hx6qy8mgp2ddwlfs7z13h9139ynq04a3z7z";
12161 };
12162
12163 meta = {
12164 description = "python refactoring library";
12165 homepage = http://rope.sf.net;
12166 maintainers = with maintainers; [ goibhniu ];
12167 license = licenses.gpl2;
12168 };
12169 };
12170
12171 ropemacs = buildPythonPackage rec {
12172 version = "0.7";
12173 name = "ropemacs-${version}";
12174
12175 src = pkgs.fetchurl {
12176 url = "http://pypi.python.org/packages/source/r/ropemacs/${name}.tar.gz";
12177 sha256 = "1x5qf1drcdz9jfiiakc60kzqkb3ahsg9j902c5byf3gjfacdrmqj";
12178 };
12179
12180 propagatedBuildInputs = with self; [ ropemode ];
12181
12182 meta = {
12183 description = "a plugin for performing python refactorings in emacs";
12184 homepage = http://rope.sf.net/ropemacs.html;
12185 maintainers = with maintainers; [ goibhniu ];
12186 license = licenses.gpl2;
12187 };
12188 };
12189
12190 ropemode = buildPythonPackage rec {
12191 version = "0.2";
12192 name = "ropemode-${version}";
12193
12194 src = pkgs.fetchurl {
12195 url = "http://pypi.python.org/packages/source/r/ropemode/${name}.tar.gz";
12196 sha256 = "0jw6h1wvk6wk0wknqdf7s9pw76m8472jv546lqdd88jbl2scgcjl";
12197 };
12198
12199 propagatedBuildInputs = with self; [ rope ];
12200
12201 meta = {
12202 description = "a plugin for performing python refactorings in emacs";
12203 homepage = http://rope.sf.net;
12204 maintainers = with maintainers; [ goibhniu ];
12205 license = licenses.gpl2;
12206 };
12207 };
12208
12209
12210
12211 routes = buildPythonPackage rec {
12212 name = "routes-1.12.3";
12213
12214 src = pkgs.fetchurl {
12215 url = http://pypi.python.org/packages/source/R/Routes/Routes-1.12.3.tar.gz;
12216 md5 = "9740ff424ff6b841632c784a38fb2be3";
12217 };
12218
12219 propagatedBuildInputs = with self; [ paste webtest ];
12220
12221 meta = {
12222 description = "A Python re-implementation of the Rails routes system for mapping URLs to application actions";
12223 homepage = http://routes.groovie.org/;
12224 };
12225 };
12226
12227 rpkg = buildPythonPackage (rec {
12228 name = "rpkg-1.14";
12229 meta.maintainers = with maintainers; [ mornfall ];
12230
12231 src = pkgs.fetchurl {
12232 url = "https://fedorahosted.org/releases/r/p/rpkg/rpkg-1.14.tar.gz";
12233 sha256 = "0d053hdjz87aym1sfm6c4cxmzmy5g0gkrmrczly86skj957r77a7";
12234 };
12235
12236 patches = [ ../development/python-modules/rpkg-buildfix.diff ];
12237
12238 # buildPhase = "python setup.py build";
12239 # doCheck = false;
12240 propagatedBuildInputs = with self; [ pycurl pkgs.koji GitPython pkgs.git
12241 pkgs.rpm pkgs.pyopenssl ];
12242
12243 });
12244
12245 rpy2 = buildPythonPackage rec {
12246 name = "rpy2-2.5.6";
12247 disabled = isPyPy;
12248 src = pkgs.fetchurl {
12249 url = "https://pypi.python.org/packages/source/r/rpy2/${name}.tar.gz";
12250 md5 = "a36e758b633ce6aec6a5f450bfee980f";
12251 };
12252 buildInputs = with pkgs; [ readline R pcre lzma bzip2 zlib icu ];
12253 propagatedBuildInputs = [ self.singledispatch ];
12254 meta = {
12255 homepage = http://rpy.sourceforge.net/rpy2;
12256 description = "Python interface to R";
12257 license = licenses.gpl2Plus;
12258 maintainers = with maintainers; [ joelmo ];
12259 };
12260 };
12261
12262 rpyc = buildPythonPackage rec {
12263 name = "rpyc-${version}";
12264 version = "3.3.0";
12265
12266 src = pkgs.fetchurl {
12267 url = "https://pypi.python.org/packages/source/r/rpyc/${name}.tar.gz";
12268 md5 = "6931cb92c41f547591b525142ccaeef1";
12269 };
12270
12271 propagatedBuildInputs = with self; [ nose plumbum ];
12272
12273 meta = {
12274 description = "Remote Python Call (RPyC), a transparent and symmetric RPC library";
12275 homepage = http://rpyc.readthedocs.org;
12276 license = licenses.mit;
12277 };
12278 };
12279
12280 rsa = buildPythonPackage rec {
12281 name = "rsa-3.1.2";
12282
12283 src = pkgs.fetchurl {
12284 url = "https://bitbucket.org/sybren/python-rsa/get/version-3.1.2.tar.bz2";
12285 sha256 = "0ag2q4gaapi74x47q74xhcjzs4b7r2bb6zrj2an4sz5d3yd06cgf";
12286 };
12287
12288 buildInputs = with self; [ self.pyasn1 ];
12289
12290 meta = {
12291 homepage = http://stuvel.eu/rsa;
12292 license = licenses.asl20;
12293 description = "A pure-Python RSA implementation";
12294 };
12295 };
12296
12297 squaremap = buildPythonPackage rec {
12298 name = "squaremap-1.0.4";
12299 disabled = isPy3k;
12300
12301 src = pkgs.fetchurl {
12302 url = "https://pypi.python.org/packages/source/S/SquareMap/SquareMap-1.0.4.tar.gz";
12303 md5 = "e36a453baddb97c19af6f79d5ba51f38";
12304 };
12305
12306 meta = {
12307 description = "Hierarchic visualization control for wxPython";
12308 homepage = https://launchpad.net/squaremap;
12309 license = licenses.bsd3;
12310 };
12311 };
12312
12313 runsnakerun = buildPythonPackage rec {
12314 name = "runsnakerun-2.0.4";
12315
12316
12317 src = pkgs.fetchurl {
12318 url = "https://pypi.python.org/packages/source/R/RunSnakeRun/RunSnakeRun-2.0.4.tar.gz";
12319 md5 = "3220b5b89994baee70b1c24d7e42a306";
12320 };
12321
12322 propagatedBuildInputs = [ self.squaremap self.wxPython28 ];
12323
12324 meta = {
12325 description = "GUI Viewer for Python profiling runs";
12326 homepage = http://www.vrplumber.com/programming/runsnakerun/;
12327 license = licenses.bsd3;
12328 };
12329 };
12330
12331 rtslib_fb = buildPythonPackage rec {
12332 version = "2.1.fb43";
12333 name = "rtslib-fb-${version}";
12334
12335 src = pkgs.fetchurl {
12336 url = "https://github.com/agrover/rtslib-fb/archive/v${version}.tar.gz";
12337 sha256 = "1b59vyy12g6rix9l2fxx0hjiq33shkb79v57gwffs57vh74wc53v";
12338 };
12339
12340 meta = {
12341 description = "A Python object API for managing the Linux LIO kernel target";
12342 homepage = "https://github.com/agrover/rtslib-fb";
12343 platforms = platforms.linux;
12344 };
12345 };
12346
12347 seqdiag = buildPythonPackage rec {
12348 name = "seqdiag-0.9.4";
12349
12350 src = pkgs.fetchurl {
12351 url = "https://pypi.python.org/packages/source/s/seqdiag/${name}.tar.gz";
12352 sha256 = "1qa7d0m1wahvmrj95rxkb6128cbwd4w3gy8gbzncls66h46bifiz";
12353 };
12354
12355 buildInputs = with self; [ pep8 nose unittest2 docutils ];
12356
12357 propagatedBuildInputs = with self; [ blockdiag ];
12358
12359 # Tests fail:
12360 # ...
12361 # ERROR: Failure: OSError ([Errno 2] No such file or directory: '/tmp/nix-build-python2.7-seqdiag-0.9.0.drv-0/seqdiag-0.9.0/src/seqdiag/tests/diagrams/')
12362 doCheck = false;
12363
12364 meta = {
12365 description = "Generate sequence-diagram image from spec-text file (similar to Graphviz)";
12366 homepage = http://blockdiag.com/;
12367 license = licenses.asl20;
12368 platforms = platforms.linux;
12369 maintainers = with maintainers; [ bjornfor ];
12370 };
12371 };
12372
12373
12374 scapy = buildPythonPackage rec {
12375 name = "scapy-2.2.0";
12376
12377 disabled = isPy3k || isPyPy;
12378
12379 src = pkgs.fetchurl {
12380 url = "http://www.secdev.org/projects/scapy/files/${name}.tar.gz";
12381 sha256 = "1bqmp0xglkndrqgmybpwmzkv462mir8qlkfwsxwbvvzh9li3ndn5";
12382 };
12383
12384 propagatedBuildInputs = [ modules.readline ];
12385
12386 meta = {
12387 description = "Powerful interactive network packet manipulation program";
12388 homepage = http://www.secdev.org/projects/scapy/;
12389 license = licenses.gpl2;
12390 platforms = platforms.linux;
12391 maintainers = with maintainers; [ bjornfor ];
12392 };
12393 };
12394
12395
12396 scipy = let
12397 support = import ../development/python-modules/numpy-scipy-support.nix {
12398 inherit python;
12399 openblas = pkgs.openblasCompat;
12400 pkgName = "numpy";
12401 };
12402 in buildPythonPackage rec {
12403 name = "scipy-0.15.1";
12404
12405 src = pkgs.fetchurl {
12406 url = "http://pypi.python.org/packages/source/s/scipy/${name}.tar.gz";
12407 sha256 = "16i5iksaas3m0hgbxrxpgsyri4a9ncbwbiazlhx5d6lynz1wn4m2";
12408 };
12409
12410 buildInputs = [ pkgs.gfortran self.nose ];
12411 propagatedBuildInputs = [ self.numpy ];
12412
12413 preConfigure = ''
12414 sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
12415 '';
12416
12417 inherit (support) preBuild checkPhase;
12418
12419 setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
12420
12421 meta = {
12422 description = "SciPy (pronounced 'Sigh Pie') is open-source software for mathematics, science, and engineering. ";
12423 homepage = http://www.scipy.org/;
12424 };
12425 };
12426
12427
12428 scikitlearn = buildPythonPackage rec {
12429 name = "scikit-learn-0.16.1";
12430
12431 src = pkgs.fetchurl {
12432 url = "https://pypi.python.org/packages/source/s/scikit-learn/${name}.tar.gz";
12433 sha256 = "1r761qmsq2mnl8sapplbx0ipj6i7ppr2cmz009q5rjana0liwwn0";
12434 };
12435
12436 buildInputs = with self; [ nose pillow pkgs.gfortran pkgs.glibcLocales ];
12437 propagatedBuildInputs = with self; [ numpy scipy pkgs.openblas ];
12438
12439 buildPhase = ''
12440 ${self.python.executable} setup.py build_ext -i --fcompiler='gnu95'
12441 '';
12442
12443 checkPhase = ''
12444 LC_ALL="en_US.UTF-8" HOME=$TMPDIR OMP_NUM_THREADS=1 nosetests
12445 '';
12446
12447 meta = {
12448 description = "A set of python modules for machine learning and data mining";
12449 homepage = http://scikit-learn.org;
12450 license = licenses.bsd3;
12451 };
12452 };
12453
12454
12455 scripttest = buildPythonPackage rec {
12456 version = "1.3";
12457 name = "scripttest-${version}";
12458
12459 src = pkgs.fetchurl {
12460 url = "http://pypi.python.org/packages/source/s/scripttest/scripttest-${version}.tar.gz";
12461 md5 = "1d1c5117ccfc7b5961cae6c1020c0848";
12462 };
12463
12464 buildInputs = with self; [ nose pytest ];
12465
12466 meta = {
12467 description = "A library for testing interactive command-line applications";
12468 homepage = http://pypi.python.org/pypi/ScriptTest/;
12469 };
12470 };
12471
12472 seaborn= buildPythonPackage rec {
12473 name = "seaborn-0.6.0";
12474 src = pkgs.fetchurl {
12475 url = "http://pypi.python.org/packages/source/s/seaborn/${name}.tar.gz";
12476 md5 = "bc518f1f45dadb9deb2bb57ca3af3cad";
12477 };
12478
12479 propagatedBuildInputs = with self; [ pandas matplotlib ];
12480
12481 meta = {
12482 description = "statisitical data visualization";
12483 homepage = "http://stanford.edu/~mwaskom/software/seaborn/";
12484 license = "BSD";
12485 };
12486 };
12487
12488 selenium = buildPythonPackage rec {
12489 name = "selenium-2.44.0";
12490 src = pkgs.fetchurl {
12491 url = "http://pypi.python.org/packages/source/s/selenium/${name}.tar.gz";
12492 sha256 = "0l70pqwg88imbylcd831vg8nj8ipy4zr331f6qjccss7vn56i2h5";
12493 };
12494
12495 buildInputs = with self; [pkgs.xlibs.libX11];
12496
12497 # Recompiling x_ignore_nofocus.so as the original one dlopen's libX11.so.6 by some
12498 # absolute paths. Replaced by relative path so it is found when used in nix.
12499 x_ignore_nofocus =
12500 pkgs.fetchFromGitHub {
12501 owner = "SeleniumHQ";
12502 repo = "selenium";
12503 rev = "selenium-2.44.0";
12504 sha256 = "13aqm0dwy17ghimy7m2mxjwlyc1k7zk5icxzrs1sa896056f1dyy";
12505 };
12506
12507 patchPhase = ''
12508 cp "${x_ignore_nofocus}/cpp/linux-specific/"* .
12509 substituteInPlace x_ignore_nofocus.c --replace "/usr/lib/libX11.so.6" "${pkgs.xlibs.libX11}/lib/libX11.so.6"
12510 gcc -c -fPIC x_ignore_nofocus.c -o x_ignore_nofocus.o
12511 gcc -shared \
12512 -Wl,${if stdenv.isDarwin then "-install_name" else "-soname"},x_ignore_nofocus.so \
12513 -o x_ignore_nofocus.so \
12514 x_ignore_nofocus.o
12515 cp -v x_ignore_nofocus.so py/selenium/webdriver/firefox/${if pkgs.stdenv.is64bit then "amd64" else "x86"}/
12516 '';
12517 };
12518
12519 setuptools_scm = buildPythonPackage rec {
12520 name = "setuptools_scm-${version}";
12521 version = "1.7.0";
12522
12523 src = pkgs.fetchurl {
12524 url = "https://pypi.python.org/packages/source/s/setuptools_scm/${name}.tar.gz";
12525 sha256 = "f2f69c782b4f549003edf5b75b356b37f40a4e880b615996c5d9c117913d6f9c";
12526 };
12527
12528 buildInputs = with self; [ pip ];
12529
12530 preBuild = ''
12531 ${python.interpreter} setup.py egg_info
12532 '';
12533
12534 meta = with stdenv.lib; {
12535 homepage = https://bitbucket.org/pypa/setuptools_scm/;
12536 description = "Handles managing your python package versions in scm metadata";
12537 license = licenses.mit;
12538 maintainers = with maintainers; [ jgeerds ];
12539 };
12540 };
12541
12542 setuptoolsDarcs = buildPythonPackage {
12543 name = "setuptools-darcs-1.2.9";
12544
12545 src = pkgs.fetchurl {
12546 url = "http://pypi.python.org/packages/source/s/setuptools_darcs/setuptools_darcs-1.2.9.tar.gz";
12547 sha256 = "d37ce11030addbd729284c441facd0869cdc6e5c888dc5fa0a6f1edfe3c3e617";
12548 };
12549
12550 # In order to break the dependency on darcs -> ghc, we don't add
12551 # darcs as a propagated build input.
12552 propagatedBuildInputs = with self; [ darcsver ];
12553
12554 meta = {
12555 description = "setuptools plugin for the Darcs version control system";
12556
12557 homepage = http://allmydata.org/trac/setuptools_darcs;
12558
12559 license = "BSD";
12560 };
12561 };
12562
12563
12564 setuptoolsTrial = buildPythonPackage {
12565 name = "setuptools-trial-0.5.12";
12566
12567 src = pkgs.fetchurl {
12568 url = "http://pypi.python.org/packages/source/s/setuptools_trial/setuptools_trial-0.5.12.tar.gz";
12569 md5 = "f16f4237c9ee483a0cd13208849d96ad";
12570 };
12571
12572 propagatedBuildInputs = with self; [ twisted ];
12573
12574 meta = {
12575 description = "setuptools plug-in that helps run unit tests built with the \"Trial\" framework (from Twisted)";
12576
12577 homepage = http://allmydata.org/trac/setuptools_trial;
12578
12579 license = "unspecified"; # !
12580 };
12581 };
12582
12583
12584 simplejson = buildPythonPackage (rec {
12585 name = "simplejson-3.3.0";
12586
12587 src = pkgs.fetchurl {
12588 url = "http://pypi.python.org/packages/source/s/simplejson/${name}.tar.gz";
12589 md5 = "0e29b393bceac8081fa4e93ff9f6a001";
12590 };
12591
12592 meta = {
12593 description = "A simple, fast, extensible JSON encoder/decoder for Python";
12594
12595 longDescription = ''
12596 simplejson is compatible with Python 2.4 and later with no
12597 external dependencies. It covers the full JSON specification
12598 for both encoding and decoding, with unicode support. By
12599 default, encoding is done in an encoding neutral fashion (plain
12600 ASCII with \uXXXX escapes for unicode characters).
12601 '';
12602
12603 homepage = http://code.google.com/p/simplejson/;
12604
12605 license = licenses.mit;
12606 };
12607 });
12608
12609 simpleparse = buildPythonPackage rec {
12610 version = "2.1.1";
12611 name = "simpleparse-${version}";
12612
12613 disabled = isPy3k || isPyPy;
12614
12615 src = pkgs.fetchurl {
12616 url = "https://pypi.python.org/packages/source/S/SimpleParse/SimpleParse-${version}.tar.gz";
12617 sha256 = "1n8msk71lpl3kv086xr2sv68ppgz6228575xfnbszc6p1mwr64rg";
12618 };
12619
12620 meta = {
12621 description = "A Parser Generator for Python";
12622 homepage = https://pypi.python.org/pypi/SimpleParse;
12623 platforms = platforms.all;
12624 maintainers = with maintainers; [ DamienCassou ];
12625 };
12626 };
12627
12628 sigal = buildPythonPackage rec {
12629 name = "sigal-0.9.2";
12630
12631 src = pkgs.fetchurl {
12632 url = "http://pypi.python.org/packages/source/s/sigal/${name}.tar.gz";
12633 sha256 = "0mk3bzaxn9snx9lc0pj9zvgdgdyhkza6b8z5x91772mlv84sfw6c";
12634 };
12635
12636 propagatedBuildInputs = with self; [ jinja2 markdown pillow pilkit clint click pytest blinker ];
12637
12638 meta = {
12639 description = "Yet another simple static gallery generator";
12640 homepage = http://sigal.saimon.org/en/latest/index.html;
12641 license = licenses.mit;
12642 maintainers = with maintainers; [ iElectric ];
12643 };
12644 };
12645
12646 snowballstemmer = buildPythonPackage rec {
12647 name = "snowballstemmer-1.2.0";
12648
12649 src = pkgs.fetchurl {
12650 url = "http://pypi.python.org/packages/source/s/snowballstemmer/${name}.tar.gz";
12651 md5 = "51f2ef829db8129dd0f2354f0b209970";
12652 };
12653
12654 propagatedBuildInputs = with self; [ PyStemmer ];
12655
12656 meta = {
12657 description = "16 stemmer algorithms (15 + Poerter English stemmer) generated from Snowball algorithms";
12658 homepage = http://sigal.saimon.org/en/latest/index.html;
12659 license = licenses.bsd3;
12660 platforms = platforms.unix;
12661 };
12662 };
12663
12664 sqlite3dbm = buildPythonPackage rec {
12665 name = "sqlite3dbm-0.1.4";
12666 disabled = isPy3k;
12667
12668 src = pkgs.fetchurl {
12669 url = "http://pypi.python.org/packages/source/s/sqlite3dbm/${name}.tar.gz";
12670 md5 = "fc2f8fb09a4bbc0260b97e835b369184";
12671 };
12672
12673 buildInputs = with self; [ modules.sqlite3 ];
12674
12675 meta = {
12676 description = "sqlite-backed dictionary";
12677 homepage = "http://github.com/Yelp/sqlite3dbm";
12678 license = licenses.asl20;
12679 };
12680 };
12681
12682 pgpdump = self.buildPythonPackage rec {
12683 name = "pgpdump-1.5";
12684
12685 src = pkgs.fetchurl {
12686 url = "https://pypi.python.org/packages/source/p/pgpdump/pgpdump-1.5.tar.gz";
12687 md5 = "040a451c8e63de3e61fc5b66efa7fca5";
12688 };
12689
12690 meta = {
12691 description = "Python library for parsing PGP packets";
12692 homepage = https://github.com/toofishes/python-pgpdump;
12693 license = licenses.bsd3;
12694 };
12695 };
12696
12697 spambayes = buildPythonPackage rec {
12698 name = "spambayes-1.1b1";
12699
12700 src = pkgs.fetchurl {
12701 url = "mirror://sourceforge/spambayes/${name}.tar.gz";
12702 sha256 = "0kqvjb89b02wp41p650ydfspi1s8d7akx1igcrw62diidqbxp04n";
12703 };
12704
12705 propagatedBuildInputs = with self; [ pydns lockfile ];
12706
12707 meta = {
12708 description = "Statistical anti-spam filter, initially based on the work of Paul Graham";
12709 homepage = http://spambayes.sourceforge.net/;
12710 };
12711 };
12712
12713 shapely = buildPythonPackage rec {
12714 name = "Shapely-1.3.1";
12715
12716 src = pkgs.fetchurl {
12717 url = "http://pypi.python.org/packages/source/S/Shapely/${name}.tar.gz";
12718 sha256 = "099sc7ajpp6hbgrx3c0bl6hhkz1mhnr0ahvc7s4i3f3b7q1zfn7l";
12719 };
12720
12721 buildInputs = with self; [ pkgs.geos pkgs.glibcLocales ];
12722
12723 preConfigure = ''
12724 export LANG="en_US.UTF-8";
12725 '';
12726
12727 patchPhase = ''
12728 sed -i "s|_lgeos = load_dll('geos_c', fallbacks=.*)|_lgeos = load_dll('geos_c', fallbacks=['${pkgs.geos}/lib/libgeos_c.so'])|" shapely/geos.py
12729 '';
12730
12731 doCheck = false; # won't suceed for unknown reasons that look harmless, though
12732
12733 meta = {
12734 description = "Geometric objects, predicates, and operations";
12735 homepage = "https://pypi.python.org/pypi/Shapely/";
12736 };
12737 };
12738
12739 stevedore = buildPythonPackage rec {
12740 name = "stevedore-0.15";
12741
12742 src = pkgs.fetchurl {
12743 url = "http://pypi.python.org/packages/source/s/stevedore/${name}.tar.gz";
12744 sha256 = "bec9269cbfa58de4f0849ec79bb7d54eeeed9df8b5fbfa1637fbc68062822847";
12745 };
12746
12747 buildInputs = with self; [ pbr pip ] ++ optional isPy26 argparse;
12748
12749 propagatedBuildInputs = with self; [ setuptools ];
12750
12751 meta = {
12752 description = "Manage dynamic plugins for Python applications";
12753 homepage = "https://pypi.python.org/pypi/stevedore";
12754 license = licenses.asl20;
12755 };
12756 };
12757
12758 timelib = buildPythonPackage rec {
12759 name = "timelib-0.2.4";
12760
12761 src = pkgs.fetchurl {
12762 url = "https://pypi.python.org/packages/source/t/timelib/${name}.zip";
12763 md5 = "400e316f81001ec0842fa9b2cef5ade9";
12764 };
12765
12766 buildInputs = with self; [ ];
12767
12768 meta = {
12769 description = "parse english textual date descriptions";
12770 homepage = "https://github.com/pediapress/timelib/";
12771 license = licenses.zlib;
12772 };
12773 };
12774
12775 pydns = buildPythonPackage rec {
12776 name = "pydns-2.3.6";
12777 disabled = isPy3k;
12778
12779 src = pkgs.fetchurl {
12780 url = "https://pypi.python.org/packages/source/p/pydns/${name}.tar.gz";
12781 sha256 = "0qnv7i9824nb5h9psj0rwzjyprwgfiwh5s5raa9avbqazy5hv5pi";
12782 };
12783
12784 doCheck = false;
12785
12786 };
12787
12788 sympy = buildPythonPackage rec {
12789 name = "sympy-0.7.6";
12790 disabled = isPy34 || isPyPy; # some tests fail
12791
12792 src = pkgs.fetchurl {
12793 url = "https://pypi.python.org/packages/source/s/sympy/${name}.tar.gz";
12794 sha256 = "19yp0gy4i7p4g6l3b8vaqkj9qj7yqb5kqy0qgbdagpzgkdz958yz";
12795 };
12796
12797 buildInputs = [ pkgs.glibcLocales ];
12798
12799 preCheck = ''
12800 export LANG="en_US.UTF-8"
12801 '';
12802
12803 meta = {
12804 description = "A Python library for symbolic mathematics";
12805 homepage = http://www.sympy.org/;
12806 license = licenses.bsd3;
12807 maintainers = with maintainers; [ lovek323 ];
12808 platforms = platforms.unix;
12809 };
12810 };
12811
12812 pilkit = buildPythonPackage rec {
12813 name = "pilkit-1.1.4";
12814
12815 src = pkgs.fetchurl {
12816 url = "http://pypi.python.org/packages/source/p/pilkit/${name}.tar.gz";
12817 md5 = "659dd67440f4b576889f2cd350f43d7b";
12818 };
12819
12820 preConfigure = ''
12821 substituteInPlace setup.py --replace 'nose==1.2.1' 'nose'
12822 '';
12823
12824 # tests fail, see https://github.com/matthewwithanm/pilkit/issues/9
12825 doCheck = false;
12826
12827 buildInputs = with self; [ pillow nose_progressive nose mock blessings ];
12828
12829 meta = {
12830 maintainers = with maintainers; [ iElectric ];
12831 };
12832 };
12833
12834 clint = buildPythonPackage rec {
12835 name = "clint-0.4.1";
12836
12837 src = pkgs.fetchurl {
12838 url = "http://pypi.python.org/packages/source/c/clint/${name}.tar.gz";
12839 md5 = "d0a0952bfcc5f4c5e03c36854665b298";
12840 };
12841
12842 checkPhase = ''
12843 nosetests
12844 '';
12845
12846 buildInputs = with self; [ pillow nose_progressive nose mock blessings nose ];
12847
12848 meta = {
12849 maintainers = with maintainers; [ iElectric ];
12850 };
12851 };
12852
12853 argh = buildPythonPackage rec {
12854 name = "argh-0.26.1";
12855
12856 src = pkgs.fetchurl {
12857 url = "http://pypi.python.org/packages/source/a/argh/${name}.tar.gz";
12858 sha256 = "1nqham81ihffc9xmw85dz3rg3v90rw7h0dp3dy0bh3qkp4n499q6";
12859 };
12860
12861 checkPhase = ''
12862 export LANG="en_US.UTF-8"
12863 py.test
12864 '';
12865
12866 buildInputs = with self; [ pytest py mock pkgs.glibcLocales ];
12867
12868 meta = {
12869 maintainers = with maintainers; [ iElectric ];
12870 };
12871 };
12872
12873 nose_progressive = buildPythonPackage rec {
12874 name = "nose-progressive-1.3";
12875
12876 src = pkgs.fetchurl {
12877 url = "http://pypi.python.org/packages/source/n/nose-progressive/${name}.tar.gz";
12878 md5 = "180be93929c5962044a35489f193259d";
12879 };
12880
12881 buildInputs = with self; [ pillow blessings nose ];
12882 propagatedBuildInputs = with self; [ modules.curses ];
12883
12884 meta = {
12885 maintainers = with maintainers; [ iElectric ];
12886 };
12887 };
12888
12889 blessings = buildPythonPackage rec {
12890 name = "blessings-1.5.1";
12891
12892 src = pkgs.fetchurl {
12893 url = "http://pypi.python.org/packages/source/b/blessings/${name}.tar.gz";
12894 md5 = "fbbddbf20b1f9a13e3fa612b1e086fd8";
12895 };
12896
12897 # 4 failing tests
12898 doCheck = false;
12899
12900 buildInputs = with self; [ nose modules.curses ];
12901
12902 meta = {
12903 maintainers = with maintainers; [ iElectric ];
12904 };
12905 };
12906
12907 semantic = buildPythonPackage rec {
12908 name = "semantic-1.0.3";
12909
12910 disabled = isPy3k;
12911
12912 propagatedBuildInputs = with self; [ quantities numpy ];
12913
12914 src = pkgs.fetchurl {
12915 url = "https://pypi.python.org/packages/source/s/semantic/semantic-1.0.3.tar.gz";
12916 md5 = "78a150190e3e7d0f6f357b4c828e5f0d";
12917 };
12918
12919 # strange setuptools error (can not import semantic.test)
12920 doCheck = false;
12921
12922 meta = with pkgs.stdenv.lib; {
12923 description = "Common Natural Language Processing Tasks for Python";
12924 homepage = https://github.com/crm416/semantic;
12925 license = licenses.mit;
12926 };
12927 };
12928
12929 sexpdata = buildPythonPackage rec {
12930 name = "sexpdata-0.0.2";
12931 src = pkgs.fetchurl {
12932 url = "http://pypi.python.org/packages/source/s/sexpdata/${name}.tar.gz";
12933 md5 = "efc44265bc27cb3d6ffed4fbf5733fc1";
12934 };
12935
12936 doCheck = false;
12937
12938 meta = {
12939 description = "S-expression parser for Python";
12940 homepage = "https://github.com/tkf/sexpdata";
12941 };
12942 };
12943
12944
12945 sh = buildPythonPackage rec {
12946 name = "sh-1.08";
12947
12948 src = pkgs.fetchurl {
12949 url = "http://pypi.python.org/packages/source/s/sh/${name}.tar.gz";
12950 md5 = "4028bcba85daa0aef579ed24261e88a3";
12951 };
12952
12953 doCheck = false;
12954
12955 meta = {
12956 description = "Python subprocess interface";
12957 homepage = http://pypi.python.org/pypi/sh/;
12958 };
12959 };
12960
12961
12962 sipsimple = buildPythonPackage rec {
12963 name = "sipsimple-${version}";
12964 version = "2.5.0";
12965 disabled = isPy3k;
12966
12967 configurePhase = "find -name 'configure' -exec chmod a+x {} \\; ; find -name 'aconfigure' -exec chmod a+x {} \\; ; ${python}/bin/${python.executable} setup.py build_ext --pjsip-clean-compile";
12968
12969 src = pkgs.fetchurl {
12970 url = "http://download.ag-projects.com/SipClient/python-${name}.tar.gz";
12971 sha256 = "1k97pdpqjs5dw7v73082jpqhv6xhlrdy987qbdb9a9zvfiz7q8sj";
12972 };
12973
12974 propagatedBuildInputs = with self; [ cython pkgs.openssl dns dateutil xcaplib msrplib lxml ];
12975
12976 buildInputs = with pkgs; [ alsaLib ffmpeg libv4l pkgconfig sqlite libvpx ];
12977
12978 installPhase = "${python}/bin/${python.executable} setup.py install --prefix=$out";
12979
12980 doCheck = false;
12981 };
12982
12983
12984 six = buildPythonPackage rec {
12985 name = "six-1.9.0";
12986
12987 src = pkgs.fetchurl {
12988 url = "http://pypi.python.org/packages/source/s/six/${name}.tar.gz";
12989 sha256 = "1mci5i8mjqmljmv33h0q3d4djc13zk1kfmb3fbvd3yy43x0m4h72";
12990 };
12991
12992 # error: invalid command 'test'
12993 doCheck = false;
12994
12995 meta = {
12996 description = "A Python 2 and 3 compatibility library";
12997 homepage = http://pypi.python.org/pypi/six/;
12998 };
12999 };
13000
13001
13002 skype4py = buildPythonPackage (rec {
13003 name = "Skype4Py-1.0.32.0";
13004 disabled = isPy3k || isPyPy;
13005
13006 src = pkgs.fetchurl {
13007 url = mirror://sourceforge/skype4py/Skype4Py-1.0.32.0.tar.gz;
13008 sha256 = "0cmkrv450wa8v50bng5dflpwkl5c1p9pzysjkb2956w5kvwh6f5b";
13009 };
13010
13011 unpackPhase = ''
13012 tar xf $src
13013 find . -type d -exec chmod +rx {} \;
13014 sourceRoot=`pwd`/`ls -d S*`
13015 '';
13016
13017 # error: invalid command 'test'
13018 doCheck = false;
13019
13020 propagatedBuildInputs = with self; [ pkgs.xlibs.libX11 pkgs.pythonDBus pygobject ];
13021
13022 meta = {
13023 description = "High-level, platform independent Skype API wrapper for Python";
13024
13025 # The advertisement says https://developer.skype.com/wiki/Skype4Py
13026 # but that url does not work. This following web page points to the
13027 # download link and has some information about the package.
13028 homepage = http://pypi.python.org/pypi/Skype4Py/1.0.32.0;
13029
13030 license = "BSD";
13031 };
13032 });
13033
13034 smartdc = buildPythonPackage rec {
13035 name = "smartdc-0.1.12";
13036
13037 src = pkgs.fetchurl {
13038 url = https://pypi.python.org/packages/source/s/smartdc/smartdc-0.1.12.tar.gz;
13039 md5 = "b960f61facafc879142b699050f6d8b4";
13040 };
13041
13042 propagatedBuildInputs = with self; [ requests http_signature ];
13043
13044 meta = {
13045 description = "Joyent SmartDataCenter CloudAPI connector using http-signature authentication via Requests";
13046 homepage = https://github.com/atl/py-smartdc;
13047 license = licenses.mit;
13048 };
13049 };
13050
13051 socksipy-branch = buildPythonPackage rec {
13052 name = "SocksiPy-branch-1.01";
13053 src = pkgs.fetchurl {
13054 url = https://pypi.python.org/packages/source/S/SocksiPy-branch/SocksiPy-branch-1.01.tar.gz;
13055 sha256 = "01l41v4g7fy9fzvinmjxy6zcbhgqaif8dhdqm4w90fwcw9h51a8p";
13056 };
13057 meta = {
13058 homepage = http://code.google.com/p/socksipy-branch/;
13059 description = "This Python module allows you to create TCP connections through a SOCKS proxy without any special effort";
13060 license = licenses.bsd3;
13061 };
13062 };
13063
13064 sorl_thumbnail = buildPythonPackage rec {
13065 name = "sorl-thumbnail-11.12";
13066
13067 src = pkgs.fetchurl {
13068 url = "https://pypi.python.org/packages/source/s/sorl-thumbnail/${name}.tar.gz";
13069 sha256 = "050b9kzbx7jvs3qwfxxshhis090hk128maasy8pi5wss6nx5kyw4";
13070 };
13071
13072 # Disabled due to an improper configuration error when tested against django. This looks like something broken in the test cases for sorl.
13073 doCheck = false;
13074
13075 meta = {
13076 homepage = http://sorl-thumbnail.readthedocs.org/en/latest/;
13077 description = "Thumbnails for Django";
13078 license = licenses.bsd3;
13079 };
13080 };
13081
13082 supervisor = buildPythonPackage rec {
13083 name = "supervisor-3.1.1";
13084
13085 disabled = isPy3k;
13086
13087 src = pkgs.fetchurl {
13088 url = "https://pypi.python.org/packages/source/s/supervisor/${name}.tar.gz";
13089 md5 = "8c9714feaa63902f03871317e3ebf62e";
13090 };
13091
13092 buildInputs = with self; [ mock ];
13093 propagatedBuildInputs = with self; [ meld3 ];
13094
13095 # failing tests when building under chroot as root user doesn't exist
13096 doCheck = false;
13097
13098 meta = {
13099 description = "A system for controlling process state under UNIX";
13100 homepage = http://supervisord.org/;
13101 };
13102 };
13103
13104 subprocess32 = buildPythonPackage rec {
13105 name = "subprocess32-3.2.6";
13106 disabled = isPy3k;
13107
13108 src = pkgs.fetchurl {
13109 url = "https://pypi.python.org/packages/source/s/subprocess32/${name}.tar.gz";
13110 md5 = "754c5ab9f533e764f931136974b618f1";
13111 };
13112
13113 buildInputs = [ pkgs.bash ];
13114
13115 doCheck = !isPyPy;
13116
13117 preConfigure = ''
13118 substituteInPlace test_subprocess32.py \
13119 --replace '/usr/' '${pkgs.bash}/'
13120 '';
13121
13122 checkPhase = ''
13123 TMP_PREFIX=`pwd`/tmp/$name
13124 TMP_INSTALL_DIR=$TMP_PREFIX/lib/${pythonPackages.python.libPrefix}/site-packages
13125 PYTHONPATH="$TMP_INSTALL_DIR:$PYTHONPATH"
13126 mkdir -p $TMP_INSTALL_DIR
13127 python setup.py develop --prefix $TMP_PREFIX
13128 python test_subprocess32.py
13129 '';
13130
13131 meta = {
13132 homepage = https://pypi.python.org/pypi/subprocess32;
13133 description = "Backport of the subprocess module from Python 3.2.5 for use on 2.x";
13134 maintainers = with maintainers; [ garbas ];
13135 };
13136 };
13137
13138
13139 sphinx = buildPythonPackage (rec {
13140 name = "Sphinx-1.3.1";
13141
13142 src = pkgs.fetchurl {
13143 url = "http://pypi.python.org/packages/source/S/Sphinx/${name}.tar.gz";
13144 md5 = "8786a194acf9673464c5455b11fd4332";
13145 };
13146
13147 propagatedBuildInputs = with self; [ docutils jinja2 pygments sphinx_rtd_theme alabaster Babel snowballstemmer six ];
13148
13149 meta = {
13150 description = "A tool that makes it easy to create intelligent and beautiful documentation for Python projects";
13151 homepage = http://sphinx.pocoo.org/;
13152 license = licenses.bsd3;
13153 platforms = platforms.unix;
13154 };
13155 });
13156
13157
13158 sphinx_rtd_theme = buildPythonPackage (rec {
13159 name = "sphinx_rtd_theme-0.1.7";
13160
13161 src = pkgs.fetchurl {
13162 url = "http://pypi.python.org/packages/source/s/sphinx_rtd_theme/${name}.tar.gz";
13163 md5 = "3ffe014445195705968d899c38b305fd";
13164 };
13165
13166 postPatch = ''
13167 rm requirements.txt
13168 touch requirements.txt
13169 '';
13170
13171 meta = {
13172 description = "ReadTheDocs.org theme for Sphinx, 2013 version";
13173 homepage = https://github.com/snide/sphinx_rtd_theme/;
13174 license = licenses.bsd3;
13175 platforms = platforms.unix;
13176 };
13177 });
13178
13179
13180 sphinxcontrib_httpdomain = buildPythonPackage (rec {
13181 name = "sphinxcontrib-httpdomain-1.3.0";
13182
13183 # Check is disabled due to this issue:
13184 # https://bitbucket.org/pypa/setuptools/issue/137/typeerror-unorderable-types-str-nonetype
13185 doCheck = false;
13186
13187 src = pkgs.fetchurl {
13188 url = "https://pypi.python.org/packages/source/s/sphinxcontrib-httpdomain/${name}.tar.gz";
13189 md5 = "ad7ea42bd4c7c0ee57b1cb25bbf24aab";
13190 };
13191
13192 propagatedBuildInputs = with self; [sphinx];
13193
13194 meta = {
13195 description = "Provides a Sphinx domain for describing RESTful HTTP APIs";
13196
13197 homepage = http://bitbucket.org/birkenfeld/sphinx-contrib;
13198
13199 license = "BSD";
13200 };
13201 });
13202
13203
13204 sphinxcontrib_plantuml = buildPythonPackage (rec {
13205 name = "sphinxcontrib-plantuml-0.5";
13206
13207 src = pkgs.fetchurl {
13208 url = "https://pypi.python.org/packages/source/s/sphinxcontrib-plantuml/${name}.tar.gz";
13209 md5 = "4a8840fe3475a19c2af3fa877ab9d296";
13210 };
13211
13212 propagatedBuildInputs = with self; [sphinx plantuml];
13213
13214 meta = {
13215 description = "Provides a Sphinx domain for embedding UML diagram with PlantUML";
13216
13217 homepage = http://bitbucket.org/birkenfeld/sphinx-contrib;
13218
13219 license = "BSD";
13220 };
13221 });
13222
13223
13224 sphinx_pypi_upload = buildPythonPackage (rec {
13225 name = "Sphinx-PyPI-upload-0.2.1";
13226
13227 src = pkgs.fetchurl {
13228 url = "https://pypi.python.org/packages/source/S/Sphinx-PyPI-upload/${name}.tar.gz";
13229 md5 = "b9f1df5c8443197e4d49abbba1cfddc4";
13230 };
13231
13232 meta = {
13233 description = "Setuptools command for uploading Sphinx documentation to PyPI";
13234
13235 homepage = http://bitbucket.org/jezdez/sphinx-pypi-upload/;
13236
13237 license = "BSD";
13238 };
13239 });
13240
13241 sqlalchemy = self.sqlalchemy9.override rec {
13242 name = "SQLAlchemy-0.7.10";
13243 disabled = isPy34;
13244 doCheck = !isPyPy;
13245
13246 src = pkgs.fetchurl {
13247 url = "http://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
13248 sha256 = "0rhxgr85xdhjn467qfs0dkyj8x46zxcv6ad3dfx3w14xbkb3kakp";
13249 };
13250 patches = [
13251 # see https://groups.google.com/forum/#!searchin/sqlalchemy/module$20logging$20handlers/sqlalchemy/ukuGhmQ2p6g/2_dOpBEYdDYJ
13252 # waiting for 0.7.11 release
13253 ../development/python-modules/sqlalchemy-0.7.10-test-failures.patch
13254 ];
13255 preConfigure = optionalString isPy3k ''
13256 python3 sa2to3.py --no-diffs -w lib test examples
13257 '';
13258 };
13259
13260 sqlalchemy8 = self.sqlalchemy9.override rec {
13261 name = "SQLAlchemy-0.8.7";
13262 disabled = isPy34;
13263 doCheck = !isPyPy;
13264
13265 src = pkgs.fetchurl {
13266 url = "https://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
13267 md5 = "4f3377306309e46739696721b1785335";
13268 };
13269 preConfigure = optionalString isPy3k ''
13270 python3 sa2to3.py --no-diffs -w lib test examples
13271 '';
13272 };
13273
13274 sqlalchemy9 = buildPythonPackage rec {
13275 name = "SQLAlchemy-0.9.9";
13276
13277 disabled = isPyPy;
13278
13279 src = pkgs.fetchurl {
13280 url = "https://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
13281 sha256 = "14az6hhrz4bgnicz4q373z119zmaf7j5zxl1jfbfl5lix5m1z9bj";
13282 };
13283
13284 buildInputs = with self; [ nose mock ]
13285 ++ stdenv.lib.optional doCheck pysqlite;
13286 propagatedBuildInputs = with self; [ modules.sqlite3 ];
13287
13288 # Test-only dependency pysqlite doesn't build on Python 3. This isn't an
13289 # acceptable reason to make all dependents unavailable on Python 3 as well
13290 doCheck = !isPy3k;
13291
13292 checkPhase = ''
13293 ${python.executable} sqla_nose.py
13294 '';
13295
13296 meta = {
13297 homepage = http://www.sqlalchemy.org/;
13298 description = "A Python SQL toolkit and Object Relational Mapper";
13299 };
13300 };
13301
13302 sqlalchemy_1_0 = self.sqlalchemy9.override rec {
13303 name = "SQLAlchemy-1.0.6";
13304
13305 src = pkgs.fetchurl {
13306 url = "https://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
13307 sha256 = "1wv5kjf142m8g1dnbvgpbqxb8v8rm9lzgsafql2gg229xi5sba4r";
13308 };
13309 };
13310
13311 sqlalchemy_imageattach = buildPythonPackage rec {
13312 name = "SQLAlchemy-ImageAttach-${version}";
13313 version = "0.8.2";
13314 disabled = isPy33;
13315
13316 src = pkgs.fetchgit {
13317 url = https://github.com/crosspop/sqlalchemy-imageattach.git;
13318 rev = "refs/tags/${version}";
13319 md5 = "cffdcde30952176e35fccf385f579dda";
13320 };
13321
13322 buildInputs = with self; [ pytest webob pkgs.imagemagick nose ];
13323 propagatedBuildInputs = with self; [ sqlalchemy8 wand ];
13324
13325 checkPhase = ''
13326 cd tests
13327 export MAGICK_HOME="${pkgs.imagemagick}"
13328 export PYTHONPATH=$PYTHONPATH:../
13329 py.test
13330 cd ..
13331 '';
13332 doCheck = !isPyPy; # failures due to sqla version mismatch
13333
13334 meta = {
13335 homepage = https://github.com/crosspop/sqlalchemy-imageattach;
13336 description = "SQLAlchemy extension for attaching images to entity objects";
13337 license = licenses.mit;
13338 };
13339 };
13340
13341
13342 sqlalchemy_migrate = buildPythonPackage rec {
13343 name = "sqlalchemy-migrate-0.6.1";
13344
13345 src = pkgs.fetchurl {
13346 url = "http://sqlalchemy-migrate.googlecode.com/files/${name}.tar.gz";
13347 sha1 = "17168b5fa066bd56fd93f26345525377e8a83d8a";
13348 };
13349
13350 buildInputs = with self; [ nose unittest2 scripttest ];
13351
13352 propagatedBuildInputs = with self; [ tempita decorator sqlalchemy ];
13353
13354 preCheck =
13355 ''
13356 echo sqlite:///__tmp__ > test_db.cfg
13357 '';
13358
13359 # Some tests fail with "unexpected keyword argument 'script_path'".
13360 doCheck = false;
13361
13362 meta = {
13363 homepage = http://code.google.com/p/sqlalchemy-migrate/;
13364 description = "Schema migration tools for SQLAlchemy";
13365 };
13366 };
13367
13368
13369 sqlparse = buildPythonPackage rec {
13370 name = "sqlparse-${version}";
13371 version = "0.1.14";
13372
13373 src = pkgs.fetchurl {
13374 url = "https://pypi.python.org/packages/source/s/sqlparse/${name}.tar.gz";
13375 sha256 = "1w6shyh7n139cp636sym0frdyiwybw1m7gd2l4s3d7xbaccf6qg5";
13376 };
13377
13378 meta = {
13379 description = "Non-validating SQL parser for Python";
13380 longDescription = ''
13381 Provides support for parsing, splitting and formatting SQL statements.
13382 '';
13383 homepage = https://github.com/andialbrecht/sqlparse;
13384 license = licenses.bsd3;
13385 maintainers = with maintainers; [ nckx ];
13386 };
13387 };
13388
13389 python_statsd = buildPythonPackage rec {
13390 name = "python-statsd-${version}";
13391 version = "1.6.0";
13392 disabled = isPy3k; # next release will be py3k compatible
13393
13394 src = pkgs.fetchurl {
13395 url = "https://pypi.python.org/packages/source/p/python-statsd/${name}.tar.gz";
13396 md5 = "3a0c71a160b504b843703c3041c7d7fb";
13397 };
13398
13399 buildInputs = with self; [ mock nose coverage ];
13400
13401 meta = {
13402 description = "A client for Etsy's node-js statsd server";
13403 homepage = https://github.com/WoLpH/python-statsd;
13404 license = licenses.bsd3;
13405 };
13406 };
13407
13408
13409 stompclient = buildPythonPackage (rec {
13410 name = "stompclient-0.3.2";
13411 disabled = isPy3k;
13412
13413 src = pkgs.fetchurl {
13414 url = "http://pypi.python.org/packages/source/s/stompclient/${name}.tar.gz";
13415 md5 = "af0a314b6106dd80da24a918c24a1eab";
13416 };
13417
13418 buildInputs = with self; [ mock nose ];
13419
13420 # XXX: Ran 0 tests in 0.217s
13421
13422 meta = {
13423 description = "Lightweight and extensible STOMP messaging client";
13424 homepage = http://bitbucket.org/hozn/stompclient;
13425 license = licenses.asl20;
13426 };
13427 });
13428
13429 subdownloader = buildPythonPackage rec {
13430 version = "2.0.18";
13431 name = "subdownloader-${version}";
13432
13433 src = pkgs.fetchurl {
13434 url = "https://launchpad.net/subdownloader/trunk/2.0.18/+download/subdownloader_2.0.18.orig.tar.gz";
13435 sha256 = "0manlfdpb585niw23ibb8n21mindd1bazp0pnxvmdjrp2mnw97ig";
13436 };
13437
13438 propagatedBuildInputs = with self; [ mmpython pyqt4 ];
13439
13440 setup = ''
13441 import os
13442 import sys
13443
13444 try:
13445 if os.environ.get("NO_SETUPTOOLS"):
13446 raise ImportError()
13447 from setuptools import setup, Extension
13448 SETUPTOOLS = True
13449 except ImportError:
13450 SETUPTOOLS = False
13451 # Use distutils.core as a fallback.
13452 # We won t be able to build the Wheel file on Windows.
13453 from distutils.core import setup, Extension
13454
13455 with open("README") as fp:
13456 long_description = fp.read()
13457
13458 requirements = [ ]
13459
13460 install_options = {
13461 "name": "subdownloader",
13462 "version": "2.0.18",
13463 "description": "Tool for automatic download/upload subtitles for videofiles using fast hashing",
13464 "long_description": long_description,
13465 "url": "http://www.subdownloader.net",
13466
13467 "scripts": ["run.py"],
13468 "packages": ["cli", "FileManagement", "gui", "languages", "modules"],
13469
13470 }
13471 if SETUPTOOLS:
13472 install_options["install_requires"] = requirements
13473
13474 setup(**install_options)
13475 '';
13476
13477 postUnpack = ''
13478 echo '${setup}' > $sourceRoot/setup.py
13479 '';
13480
13481 meta = {
13482 description = "Tool for automatic download/upload subtitles for videofiles using fast hashing";
13483 homepage = http://www.subdownloader.net;
13484 license = licenses.gpl3;
13485 maintainers = with maintainers; [ DamienCassou ];
13486 };
13487 };
13488
13489 subunit = buildPythonPackage rec {
13490 name = pkgs.subunit.name;
13491 src = pkgs.subunit.src;
13492
13493 propagatedBuildInputs = with self; [ testtools testscenarios ];
13494
13495 meta = pkgs.subunit.meta;
13496 };
13497
13498
13499 sure = buildPythonPackage rec {
13500 name = "sure-${version}";
13501 version = "1.2.8";
13502
13503 preBuild = ''
13504 export LC_ALL="en_US.UTF-8"
13505 '';
13506
13507 # https://github.com/gabrielfalcao/sure/issues/71
13508 doCheck = !isPy3k;
13509 disabled = isPyPy;
13510
13511 src = pkgs.fetchurl {
13512 url = "http://pypi.python.org/packages/source/s/sure/${name}.tar.gz";
13513 sha256 = "0pgi9xg00wcw0m1pv5qp7jv53q38yffcmkf2fj1zlfi2b9c3njid";
13514 };
13515
13516 buildInputs = with self; [ nose pkgs.glibcLocales ];
13517
13518 propagatedBuildInputs = with self; [ six mock ];
13519
13520 meta = {
13521 description = "Utility belt for automated testing";
13522 homepage = "http://falcao.it/sure/";
13523 license = licenses.gpl3Plus;
13524 };
13525 };
13526
13527
13528 structlog = buildPythonPackage rec {
13529 name = "structlog-0.4.2";
13530
13531 src = pkgs.fetchurl {
13532 url = "https://pypi.python.org/packages/source/s/structlog/${name}.tar.gz";
13533 md5 = "062cda36069e8573e00c265f451f899e";
13534 };
13535
13536 meta = {
13537 description = "Painless structural logging";
13538 homepage = http://www.structlog.org/;
13539 license = licenses.asl20;
13540 };
13541 };
13542
13543
13544 # XXX: ValueError: ZIP does not support timestamps before 1980
13545 # svneverever = buildPythonPackage rec {
13546 # name = "svneverever-778489a8";
13547 #
13548 # src = pkgs.fetchgit {
13549 # url = git://git.goodpoint.de/svneverever.git;
13550 # rev = "778489a8c6f07825fb18c9da3892a781c3d659ac";
13551 # sha256 = "41c9da1dab2be7b60bff87e618befdf5da37c0a56287385cb0cbd3f91e452bb6";
13552 # };
13553 #
13554 # propagatedBuildInputs = with self; [ pysvn argparse ];
13555 #
13556 # doCheck = false;
13557 # };
13558
13559 targetcli_fb = buildPythonPackage rec {
13560 version = "2.1.fb33";
13561 name = "targetcli-fb-${version}";
13562
13563 src = pkgs.fetchurl {
13564 url = "https://github.com/agrover/targetcli-fb/archive/v${version}.tar.gz";
13565 sha256 = "1zcm0agdpf866020b43fl8zyyyzz6r74mn1sz4xpaa0pinpwjk42";
13566 };
13567
13568 propagatedBuildInputs = with self; [
13569 configshell_fb
13570 rtslib_fb
13571 ];
13572
13573 meta = {
13574 description = "A command shell for managing the Linux LIO kernel target";
13575 homepage = "https://github.com/agrover/targetcli-fb";
13576 platforms = platforms.linux;
13577 };
13578 };
13579
13580 syncthing-gtk = buildPythonPackage rec {
13581 version = "0.6.3";
13582 name = "syncthing-gtk-${version}";
13583 src = pkgs.fetchFromGitHub {
13584 owner = "syncthing";
13585 repo = "syncthing-gtk";
13586 rev = "v${version}";
13587 sha256 = "1qa5bw2qizjiqvkms8i31wsjf8cw9p0ciamxgfgq6n37wcalv6ms";
13588 };
13589
13590 disabled = isPy3k;
13591
13592 propagatedBuildInputs = with self; [ pkgs.syncthing pygobject3 dateutil pkgs.gtk3 pyinotify pkgs.libnotify pkgs.psmisc ];
13593
13594 patchPhase = ''
13595 substituteInPlace "scripts/syncthing-gtk" \
13596 --replace "/usr/share" "$out/share" \
13597 '';
13598
13599
13600 meta = {
13601 description = " GTK3 & python based GUI for Syncthing ";
13602 maintainers = with maintainers; [ DamienCassou ];
13603 platforms = pkgs.syncthing.meta.platforms;
13604 homepage = "https://github.com/syncthing/syncthing-gtk";
13605 license = licenses.gpl2;
13606 };
13607 };
13608
13609 tarsnapper = buildPythonPackage rec {
13610 name = "tarsnapper-0.2.1";
13611 disabled = isPy3k;
13612
13613 src = pkgs.fetchgit {
13614 url = https://github.com/miracle2k/tarsnapper.git;
13615 rev = "620439bca68892f2ffaba1079a34b18496cc6596";
13616 sha256 = "06pp499qm2dxpja2jgmmq2jrcx3m4nq52x5hhil9r1jxvyiq962p";
13617 };
13618
13619 propagatedBuildInputs = with self; [ argparse pyyaml ];
13620
13621 patches = [ ../development/python-modules/tarsnapper-path.patch ];
13622
13623 preConfigure = ''
13624 substituteInPlace src/tarsnapper/script.py \
13625 --replace '@NIXTARSNAPPATH@' '${pkgs.tarsnap}/bin/tarsnap'
13626 '';
13627 };
13628
13629 taskcoach = buildPythonPackage rec {
13630 name = "TaskCoach-1.3.22";
13631 disabled = isPy3k;
13632
13633 src = pkgs.fetchurl {
13634 url = "mirror://sourceforge/taskcoach/${name}.tar.gz";
13635 sha256 = "1ddx56bqmh347synhgjq625ijv5hqflr0apxg0nl4jqdsqk1zmxh";
13636 };
13637
13638 propagatedBuildInputs = with self; [ wxPython ];
13639
13640 # I don't know why I need to add these libraries. Shouldn't they
13641 # be part of wxPython?
13642 postInstall = ''
13643 libspaths=${pkgs.xlibs.libSM}/lib:${pkgs.xlibs.libXScrnSaver}/lib
13644 wrapProgram $out/bin/taskcoach.py \
13645 --prefix LD_LIBRARY_PATH : $libspaths
13646 '';
13647
13648 # error: invalid command 'test'
13649 doCheck = false;
13650
13651 meta = {
13652 homepage = http://taskcoach.org/;
13653 description = "Todo manager to keep track of personal tasks and todo lists";
13654 license = licenses.gpl3Plus;
13655 };
13656 };
13657
13658 taskw = buildPythonPackage rec {
13659 version = "1.0.2";
13660 name = "taskw-${version}";
13661
13662 src = pkgs.fetchurl {
13663 url = "https://pypi.python.org/packages/source/t/taskw/${name}.tar.gz";
13664 sha256 = "0wa2hwplss2r56jrwib6j9sxxm02dz78878975jk9fj10p84w5kr";
13665 };
13666
13667 patches = [ ../development/python-modules/taskw/use-template-for-taskwarrior-install-path.patch ];
13668 postPatch = ''
13669 substituteInPlace taskw/warrior.py \
13670 --replace '@@taskwarrior@@' '${pkgs.taskwarrior}'
13671 '';
13672
13673 buildInputs = with self; [ nose pkgs.taskwarrior tox ];
13674 propagatedBuildInputs = with self; [ six dateutil pytz ];
13675
13676 meta = {
13677 homepage = http://github.com/ralphbean/taskw;
13678 description = "Python bindings for your taskwarrior database";
13679 license = licenses.gpl3Plus;
13680 platforms = platforms.all;
13681 maintainers = with maintainers; [ pierron ];
13682 };
13683 };
13684
13685 tempita = buildPythonPackage rec {
13686 version = "0.5.2";
13687 name = "tempita-${version}";
13688
13689 src = pkgs.fetchurl {
13690 url = "http://pypi.python.org/packages/source/T/Tempita/Tempita-${version}.tar.gz";
13691 md5 = "4c2f17bb9d481821c41b6fbee904cea1";
13692 };
13693
13694 disabled = isPy3k;
13695
13696 buildInputs = with self; [ nose ];
13697
13698 meta = {
13699 homepage = http://pythonpaste.org/tempita/;
13700 description = "A very small text templating language";
13701 };
13702 };
13703
13704 terminado = buildPythonPackage rec {
13705 name = "terminado-${version}";
13706 version = "0.5";
13707
13708 src = pkgs.fetchurl {
13709 url = "https://pypi.python.org/packages/source/t/terminado/${name}.tar.gz";
13710 sha256 = "63e893eff1ba84f1ee7c4bfcca7676ba1de6394538bb9aa80cbbc8866cb875b6";
13711 };
13712
13713 propagatedBuildInputs = with self; [ ptyprocess tornado ];
13714
13715 meta = {
13716 description = "Terminals served to term.js using Tornado websockets";
13717 homepage = https://github.com/takluyver/terminado;
13718 license = licenses.bsd2;
13719 };
13720 };
13721
13722 testscenarios = buildPythonPackage rec {
13723 name = "testscenarios-${version}";
13724 version = "0.4";
13725
13726 src = pkgs.fetchurl {
13727 url = "https://pypi.python.org/packages/source/t/testscenarios/${name}.tar.gz";
13728 sha256 = "1671jvrvqlmbnc42j7pc5y6vc37q44aiwrq0zic652pxyy2fxvjg";
13729 };
13730
13731 propagatedBuildInputs = with self; [ testtools ];
13732
13733 meta = {
13734 description = "a pyunit extension for dependency injection";
13735 homepage = https://pypi.python.org/pypi/testscenarios;
13736 license = licenses.asl20;
13737 };
13738 };
13739
13740
13741 testtools = buildPythonPackage rec {
13742 name = "testtools-${version}";
13743 version = "0.9.34";
13744
13745 src = pkgs.fetchurl {
13746 url = "https://pypi.python.org/packages/source/t/testtools/${name}.tar.gz";
13747 sha256 = "0s6sn9h26dif2c9sayf875x622kq8jb2f4qbc6if7gwh2sssgicn";
13748 };
13749
13750 propagatedBuildInputs = with self; [ self.python_mimeparse self.extras lxml ];
13751
13752 meta = {
13753 description = "A set of extensions to the Python standard library's unit testing framework";
13754 homepage = http://pypi.python.org/pypi/testtools;
13755 license = licenses.mit;
13756 };
13757 };
13758
13759
13760 python_mimeparse = buildPythonPackage rec {
13761 name = "python-mimeparse-${version}";
13762 version = "0.1.4";
13763
13764 src = pkgs.fetchurl {
13765 url = "https://pypi.python.org/packages/source/p/python-mimeparse/${name}.tar.gz";
13766 sha256 = "1hyxg09kaj02ri0rmwjqi86wk4nd1akvv7n0dx77azz76wga4s9w";
13767 };
13768
13769 # error: invalid command 'test'
13770 doCheck = false;
13771
13772 meta = {
13773 description = "A module provides basic functions for parsing mime-type names and matching them against a list of media-ranges";
13774 homepage = https://code.google.com/p/mimeparse/;
13775 license = licenses.mit;
13776 };
13777 };
13778
13779
13780 extras = buildPythonPackage rec {
13781 name = "extras-${version}";
13782 version = "0.0.3";
13783
13784 src = pkgs.fetchurl {
13785 url = "https://pypi.python.org/packages/source/e/extras/extras-${version}.tar.gz";
13786 sha256 = "1h7zx4dfyclalg0fqnfjijpn0f793a9mx8sy3b27gd31nr6dhq3s";
13787 };
13788
13789 # error: invalid command 'test'
13790 doCheck = false;
13791
13792 meta = {
13793 description = "A module provides basic functions for parsing mime-type names and matching them against a list of media-ranges";
13794 homepage = https://code.google.com/p/mimeparse/;
13795 license = licenses.mit;
13796 };
13797 };
13798
13799 texttable = self.buildPythonPackage rec {
13800 name = "texttable-0.8.1";
13801
13802 src = pkgs.fetchurl {
13803 url = "https://pypi.python.org/packages/source/t/texttable/${name}.tar.gz";
13804 md5 = "4fe37704f16ecf424b91e122defedd7e";
13805 };
13806
13807 meta = {
13808 description = "A module to generate a formatted text table, using ASCII characters";
13809 homepage = http://foutaise.org/code/;
13810 license = licenses.lgpl2;
13811 };
13812 };
13813
13814 tlslite = buildPythonPackage rec {
13815 name = "tlslite-${version}";
13816 version = "0.4.8";
13817
13818 src = pkgs.fetchurl {
13819 url = "https://pypi.python.org/packages/source/t/tlslite/${name}.tar.gz";
13820 sha256 = "1fxx6d3nw5r1hqna1h2jvqhcygn9fyshlm0gh3gp0b1ji824gd6r";
13821 };
13822
13823 meta = {
13824 description = "A pure Python implementation of SSL and TLS";
13825 homepage = https://pypi.python.org/pypi/tlslite;
13826 license = licenses.bsd3;
13827 };
13828 };
13829
13830 qrcode = buildPythonPackage rec {
13831 name = "qrcode-${version}";
13832 version = "5.1";
13833
13834 src = pkgs.fetchurl {
13835 url = "https://pypi.python.org/packages/source/q/qrcode/${name}.tar.gz";
13836 sha256 = "0skzrvhjnnacrz52jml4i050vdx5lfcd3np172srxjaghdgfxg9k";
13837 };
13838
13839 propagatedBuildInputs = with self; [ six ];
13840
13841 meta = {
13842 description = "Quick Response code generation for Python";
13843 home = "https://pypi.python.org/pypi/qrcode";
13844 license = licenses.bsd3;
13845 };
13846 };
13847
13848 tmdb3 = buildPythonPackage rec {
13849 name = "tmdb3-${version}";
13850 version = "0.6.17";
13851
13852 src = pkgs.fetchurl {
13853 url = "https://pypi.python.org/packages/source/t/tmdb3/${name}.zip";
13854 md5 = "cd259427454472164c9a2479504c9cbb";
13855 };
13856
13857 meta = {
13858 description = "Python implementation of the v3 API for TheMovieDB.org, allowing access to movie and cast information";
13859 homepage = http://pypi.python.org/pypi/tmdb3;
13860 license = licenses.bsd3;
13861 };
13862 };
13863
13864 toolz = buildPythonPackage rec{
13865 name = "toolz-${version}";
13866 version = "0.7.2";
13867
13868 src = pkgs.fetchurl{
13869 url = "https://pypi.python.org/packages/source/t/toolz/toolz-${version}.tar.gz";
13870 md5 = "6f045541a9e7ee755b7b00fced4a7fde";
13871 };
13872
13873 meta = {
13874 homepage = "http://github.com/pytoolz/toolz/";
13875 description = "List processing tools and functional utilities";
13876 license = "licenses.bsd3";
13877 };
13878 };
13879
13880 tox = buildPythonPackage rec {
13881 name = "tox-1.8.1";
13882
13883 propagatedBuildInputs = with self; [ py virtualenv ];
13884
13885 doCheck = false;
13886
13887 src = pkgs.fetchurl {
13888 url = "https://pypi.python.org/packages/source/t/tox/${name}.tar.gz";
13889 md5 = "c4423cc6512932b37e5b0d1faa87bef2";
13890 };
13891 };
13892
13893 smmap = buildPythonPackage rec {
13894 name = "smmap-0.8.2";
13895 disabled = isPy3k || isPyPy; # next release will have py3k/pypy support
13896 meta.maintainers = with maintainers; [ mornfall ];
13897
13898 src = pkgs.fetchurl {
13899 url = "https://pypi.python.org/packages/source/s/smmap/${name}.tar.gz";
13900 sha256 = "0vrdgr6npmajrv658fv8bij7zgm5jmz2yxkbv8kmbv25q1f9b8ny";
13901 };
13902 };
13903
13904 trac = buildPythonPackage {
13905 name = "trac-1.0.1";
13906 disabled = isPy3k;
13907
13908 src = pkgs.fetchurl {
13909 url = http://ftp.edgewall.com/pub/trac/Trac-1.0.1.tar.gz;
13910 sha256 = "1nqa95fcnkpyq4jk6az7l7sqgm3b3pjq3bx1n7y4v3bad5jr1m4x";
13911 };
13912
13913 # couple of failing tests
13914 doCheck = false;
13915
13916 PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
13917
13918 propagatedBuildInputs = with self; [ genshi pkgs.setuptools modules.sqlite3 ];
13919
13920 meta = {
13921 description = "Enhanced wiki and issue tracking system for software development projects";
13922
13923 license = "BSD";
13924 };
13925 };
13926
13927 traits = buildPythonPackage rec {
13928 name = "traits-${version}";
13929 version = "4.5.0";
13930
13931 src = pkgs.fetchurl {
13932 url = "http://pypi.python.org/packages/source/t/traits/${name}.tar.gz";
13933 md5 = "3ad558eebaedc63c29c80183c0371d2f";
13934 };
13935
13936 propagatedBuildInputs = with self; [ numpy ];
13937
13938 meta = {
13939 description = "explicitly typed attributes for Python";
13940 homepage = http://pypi.python.org/pypi/traits;
13941 license = "BSD";
13942 };
13943 };
13944
13945
13946 transaction = buildPythonPackage rec {
13947 name = "transaction-${version}";
13948 version = "1.4.3";
13949
13950 src = pkgs.fetchurl {
13951 url = "http://pypi.python.org/packages/source/t/transaction/${name}.tar.gz";
13952 md5 = "b4ca5983c9e3a0808ff5ff7648092c76";
13953 };
13954
13955 propagatedBuildInputs = with self; [ zope_interface ];
13956
13957 meta = {
13958 description = "Transaction management";
13959 homepage = http://pypi.python.org/pypi/transaction;
13960 license = licenses.zpt20;
13961 };
13962 };
13963
13964 transmissionrpc = buildPythonPackage rec {
13965 name = "transmissionrpc-${version}";
13966 version = "0.11";
13967
13968 src = pkgs.fetchurl {
13969 url = "https://pypi.python.org/packages/source/t/transmissionrpc/${name}.tar.gz";
13970 md5 = "b2f918593e509f0e66e2e643291b436d";
13971 };
13972
13973 propagatedBuildInputs = with self; [ six ];
13974
13975 meta = {
13976 description = "Python implementation of the Transmission bittorent client RPC protocol";
13977 homepage = http://pypi.python.org/pypi/transmissionrpc/;
13978 license = licenses.mit;
13979 };
13980 };
13981
13982 eggdeps = buildPythonPackage rec {
13983 name = "eggdeps-${version}";
13984 version = "0.4";
13985
13986 src = pkgs.fetchurl {
13987 url = "http://pypi.python.org/packages/source/t/tl.eggdeps/tl.${name}.tar.gz";
13988 md5 = "2472204a2abd0d8cd4d11ff0fbf36ae7";
13989 };
13990
13991 # tests fail, see http://hydra.nixos.org/build/4316603/log/raw
13992 doCheck = false;
13993
13994 propagatedBuildInputs = with self; [ zope_interface zope_testing ];
13995 meta = {
13996 description = "A tool which computes a dependency graph between active Python eggs";
13997 homepage = http://thomas-lotze.de/en/software/eggdeps/;
13998 license = licenses.zpt20;
13999 };
14000 };
14001
14002
14003 turses = buildPythonPackage (rec {
14004 name = "turses-0.2.23";
14005
14006 src = pkgs.fetchurl {
14007 url = "http://pypi.python.org/packages/source/t/turses/${name}.tar.gz";
14008 md5 = "71b9e3ab12d9186798e739b5273d1438";
14009 };
14010
14011 propagatedBuildInputs = with self; [ oauth2 urwid tweepy ] ++ optional isPy26 argparse;
14012
14013 #buildInputs = [ tox ];
14014 # needs tox
14015 doCheck = false;
14016
14017 meta = {
14018 homepage = https://github.com/alejandrogomez/turses;
14019 description = "A Twitter client for the console";
14020 license = licenses.gpl3;
14021 maintainers = with maintainers; [ garbas ];
14022 platforms = platforms.linux;
14023 };
14024 });
14025
14026 tweepy = buildPythonPackage (rec {
14027 name = "tweepy-2.3.0";
14028 disabled = isPy3k;
14029
14030 src = pkgs.fetchurl {
14031 url = "http://pypi.python.org/packages/source/t/tweepy/${name}.tar.gz";
14032 md5 = "065c80d244360988c61d64b5dfb7e229";
14033 };
14034
14035 meta = {
14036 homepage = "https://github.com/tweepy/tweepy";
14037 description = "Twitter library for python";
14038 license = licenses.mit;
14039 maintainers = with maintainers; [ garbas ];
14040 platforms = platforms.linux;
14041 };
14042 });
14043
14044 twiggy = buildPythonPackage rec {
14045 name = "Twiggy-${version}";
14046 version = "0.4.5";
14047
14048 src = pkgs.fetchurl {
14049 url = "https://pypi.python.org/packages/source/T/Twiggy/Twiggy-0.4.5.tar.gz";
14050 # md5 = "b0dfbbb7f56342e448af4d22a47a339c"; # provided by pypi website.
14051 sha256 = "4e8f1894e5aee522db6cb245ccbfde3c5d1aa08d31330c7e3af783b0e66eec23";
14052 };
14053
14054 doCheck = false;
14055
14056 meta = {
14057 homepage = http://twiggy.wearpants.org;
14058 # Taken from http://i.wearpants.org/blog/meet-twiggy/
14059 description = "Twiggy is the first totally new design for a logger since log4j";
14060 license = licenses.bsd3;
14061 platforms = platforms.all;
14062 maintainers = with maintainers; [ pierron ];
14063 };
14064 };
14065
14066 twitter = buildPythonPackage rec {
14067 name = "twitter-${version}";
14068 version = "1.15.0";
14069
14070 src = pkgs.fetchurl {
14071 url = "https://pypi.python.org/packages/source/t/twitter/${name}.tar.gz";
14072 sha256 = "1m6b17irb9klc345k8174pni724jzy2973z2x2jg69h83hipjw2c";
14073 };
14074
14075 doCheck = false;
14076
14077 meta = {
14078 description = "Twitter API library";
14079 license = licenses.mit;
14080 maintainers = with maintainers; [ thoughtpolice ];
14081 };
14082 };
14083
14084 twisted = buildPythonPackage rec {
14085 # NOTE: When updating please check if new versions still cause issues
14086 # to packages like carbon (http://stackoverflow.com/questions/19894708/cant-start-carbon-12-04-python-error-importerror-cannot-import-name-daem)
14087 disabled = isPy3k;
14088
14089 name = "Twisted-11.1.0";
14090 src = pkgs.fetchurl {
14091 url = "https://pypi.python.org/packages/source/T/Twisted/${name}.tar.bz2";
14092 sha256 = "05agfp17cndhv2w0p559lvknl7nv0xqkg10apc47fm53m8llbfvz";
14093 };
14094
14095 propagatedBuildInputs = with self; [ zope_interface ];
14096
14097 # Generate Twisted's plug-in cache. Twited users must do it as well. See
14098 # http://twistedmatrix.com/documents/current/core/howto/plugin.html#auto3
14099 # and http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477103 for
14100 # details.
14101 postInstall = "$out/bin/twistd --help > /dev/null";
14102
14103 meta = {
14104 homepage = http://twistedmatrix.com/;
14105
14106 description = "Twisted, an event-driven networking engine written in Python";
14107
14108 longDescription = ''
14109 Twisted is an event-driven networking engine written in Python
14110 and licensed under the MIT license.
14111 '';
14112
14113 license = licenses.mit;
14114
14115 maintainers = [ ];
14116 };
14117 };
14118
14119 tzlocal = buildPythonPackage rec {
14120 name = "tzlocal-1.1.1";
14121
14122 propagatedBuildInputs = with self; [ pytz ];
14123
14124 src = pkgs.fetchurl {
14125 url = "https://pypi.python.org/packages/source/t/tzlocal/tzlocal-1.1.1.zip";
14126 md5 = "56c2a04501b98f2a1188d003fd6d3dba";
14127 };
14128
14129 # test fail (timezone test fail)
14130 doCheck = false;
14131
14132 meta = with pkgs.stdenv.lib; {
14133 description = "Tzinfo object for the local timezone";
14134 homepage = https://github.com/regebro/tzlocal;
14135 license = licenses.cddl;
14136 };
14137 };
14138
14139 umemcache = buildPythonPackage rec {
14140 name = "umemcache-${version}";
14141 version = "1.6.3";
14142 disabled = isPy3k;
14143
14144 src = pkgs.fetchurl {
14145 url = "https://pypi.python.org/packages/source/u/umemcache/${name}.zip";
14146 sha256 = "211031a03576b7796bf277dbc9c9e3e754ba066bbb7fb601ab5c6291b8ec1918";
14147 };
14148
14149 meta = {
14150 description = "Ultra fast memcache client written in highly optimized C++ with Python bindings";
14151 homepage = https://github.com/esnme/ultramemcache;
14152 license = licenses.bsdOriginal;
14153 };
14154 };
14155
14156 unicodecsv = buildPythonPackage rec {
14157 version = "0.12.0";
14158 name = "unicodecsv-${version}";
14159 disabled = isPy3k;
14160
14161 src = pkgs.fetchurl {
14162 url = "https://pypi.python.org/packages/source/u/unicodecsv/${name}.tar.gz";
14163 sha256 = "012yvwza38bq84z9p8xzlxn7bkz0gf5y2nm5js7cyn766cy53dxh";
14164 };
14165
14166 # ImportError: No module named runtests
14167 #buildInputs = with self; [ unittest2 ];
14168 doCheck = false;
14169
14170 meta = {
14171 description = "Drop-in replacement for Python2's stdlib csv module, with unicode support";
14172 homepage = https://github.com/jdunck/python-unicodecsv;
14173 maintainers = with maintainers; [ koral ];
14174 };
14175 };
14176
14177 unittest2 = buildPythonPackage rec {
14178 version = "0.5.1";
14179 name = "unittest2-${version}";
14180
14181 src = if python.is_py3k or false
14182 then pkgs.fetchurl {
14183 url = "http://pypi.python.org/packages/source/u/unittest2py3k/unittest2py3k-${version}.tar.gz";
14184 sha256 = "00yl6lskygcrddx5zspkhr0ibgvpknl4678kkm6s626539grq93q";
14185 }
14186 else pkgs.fetchurl {
14187 url = "http://pypi.python.org/packages/source/u/unittest2/unittest2-${version}.tar.gz";
14188 md5 = "a0af5cac92bbbfa0c3b0e99571390e0f";
14189 };
14190
14191 preConfigure = ''
14192 sed -i 's/unittest2py3k/unittest2/' setup.py
14193 '';
14194
14195 meta = {
14196 description = "A backport of the new features added to the unittest testing framework in Python 2.7";
14197 homepage = http://pypi.python.org/pypi/unittest2;
14198 };
14199 };
14200
14201
14202
14203 update_checker = pythonPackages.buildPythonPackage rec {
14204 name = "update_checker-0.11";
14205
14206 src = pkgs.fetchurl {
14207 url = "https://pypi.python.org/packages/source/u/update_checker/update_checker-0.11.tar.gz";
14208 md5 = "1daa54bac316be6624d7ee77373144bb";
14209 };
14210
14211 propagatedBuildInputs = with pythonPackages; [ requests2 ];
14212
14213 doCheck = false;
14214
14215 meta = {
14216 description = "A python module that will check for package updates";
14217 homepage = https://github.com/bboe/update_checker;
14218 license = licenses.bsd2;
14219 };
14220 };
14221
14222 urlgrabber = buildPythonPackage rec {
14223 name = "urlgrabber-3.9.1";
14224 disabled = isPy3k;
14225
14226 src = pkgs.fetchurl {
14227 url = "http://urlgrabber.baseurl.org/download/${name}.tar.gz";
14228 sha256 = "4437076c8708e5754ea04540e46c7f4f233734ee3590bb8a96389264fb0650d0";
14229 };
14230
14231 # error: invalid command 'test'
14232 doCheck = false;
14233
14234 propagatedBuildInputs = with self; [ pycurl ];
14235
14236 meta = {
14237 homepage = "urlgrabber.baseurl.org";
14238 license = licenses.lgpl2Plus;
14239 description = "Python module for downloading files";
14240 maintainers = with maintainers; [ qknight ];
14241 };
14242 };
14243
14244
14245 urwid = buildPythonPackage (rec {
14246 name = "urwid-1.3.0";
14247
14248 # multiple: NameError: name 'evl' is not defined
14249 doCheck = false;
14250
14251 src = pkgs.fetchurl {
14252 url = "https://pypi.python.org/packages/source/u/urwid/${name}.tar.gz";
14253 md5 = "a989acd54f4ff1a554add464803a9175";
14254 };
14255
14256 meta = {
14257 description = "A full-featured console (xterm et al.) user interface library";
14258 homepage = http://excess.org/urwid;
14259 repositories.git = git://github.com/wardi/urwid.git;
14260 license = licenses.lgpl21;
14261 maintainers = with maintainers; [ garbas ];
14262 };
14263 });
14264
14265 pyuv = buildPythonPackage rec {
14266 name = "pyuv-0.11.5";
14267 disabled = isPyPy; # see https://github.com/saghul/pyuv/issues/49
14268
14269 src = pkgs.fetchurl {
14270 url = "https://github.com/saghul/pyuv/archive/${name}.tar.gz";
14271 sha256 = "c251952cb4e54c92ab0e871decd13cf73d11ca5dba9f92962de51d12e3a310a9";
14272 };
14273
14274 patches = [ ../development/python-modules/pyuv-external-libuv.patch ];
14275
14276 buildInputs = with self; [ pkgs.libuvVersions.v0_11_29 ];
14277
14278 meta = {
14279 description = "Python interface for libuv";
14280 homepage = https://github.com/saghul/pyuv;
14281 repositories.git = git://github.com/saghul/pyuv.git;
14282 license = licenses.mit;
14283 };
14284 };
14285
14286 virtualenv = buildPythonPackage rec {
14287 name = "virtualenv-1.11.6";
14288 src = pkgs.fetchurl {
14289 url = "http://pypi.python.org/packages/source/v/virtualenv/${name}.tar.gz";
14290 md5 = "f61cdd983d2c4e6aeabb70b1060d6f49";
14291 };
14292
14293 pythonPath = [ self.recursivePthLoader ];
14294
14295 patches = [ ../development/python-modules/virtualenv-change-prefix.patch ];
14296
14297 propagatedBuildInputs = with self; [ modules.readline modules.sqlite3 modules.curses ];
14298
14299 buildInputs = with self; [ mock nose ];
14300
14301 # XXX: Ran 0 tests in 0.003s
14302
14303 meta = {
14304 description = "a tool to create isolated Python environments";
14305 homepage = http://www.virtualenv.org;
14306 license = licenses.mit;
14307 maintainers = with maintainers; [ goibhniu ];
14308 };
14309 };
14310
14311 virtualenv-clone = buildPythonPackage rec {
14312 name = "virtualenv-clone-0.2.5";
14313
14314 src = pkgs.fetchurl {
14315 url = "https://pypi.python.org/packages/source/v/virtualenv-clone/${name}.tar.gz";
14316 md5 = "23e71d255058b2543d839af7f4ce3208";
14317 };
14318
14319 buildInputs = with self; [pytest];
14320 propagatedBuildInputs = with self; [virtualenv];
14321
14322 # needs tox to run the tests
14323 doCheck = false;
14324
14325 meta = {
14326 description = "Script to clone virtualenvs";
14327 license = licenses.mit;
14328 platforms = platforms.all;
14329 };
14330 };
14331
14332 virtualenvwrapper = buildPythonPackage (rec {
14333 name = "virtualenvwrapper-4.3";
14334
14335 src = pkgs.fetchurl {
14336 url = "https://pypi.python.org/packages/source/v/virtualenvwrapper/${name}.tar.gz";
14337 sha256 = "514cbc22218347bf7b54bdbe49e1a5f550d2d53b1ad2491c10e91ddf48fb528f";
14338 };
14339
14340 # pip depend on $HOME setting
14341 preConfigure = "export HOME=$TMPDIR";
14342
14343 buildInputs = with self; [ pbr pip pkgs.which ];
14344 propagatedBuildInputs = with self; [
14345 stevedore
14346 virtualenv
14347 virtualenv-clone
14348 ] ++ optional isPy26 argparse;
14349
14350 patchPhase = ''
14351 for file in "virtualenvwrapper.sh" "virtualenvwrapper_lazy.sh"; do
14352 substituteInPlace "$file" --replace "which" "${pkgs.which}/bin/which"
14353
14354 # We can't set PYTHONPATH in a normal way (like exporting in a wrapper
14355 # script) because the user has to evaluate the script and we don't want
14356 # modify the global PYTHONPATH which would affect the user's
14357 # environment.
14358 # Furthermore it isn't possible to just use VIRTUALENVWRAPPER_PYTHON
14359 # for this workaround, because this variable is well quoted inside the
14360 # shell script.
14361 # (the trailing " -" is required to only replace things like these one:
14362 # "$VIRTUALENVWRAPPER_PYTHON" -c "import os,[...] and not in
14363 # if-statements or anything like that.
14364 # ...and yes, this "patch" is hacky :)
14365 substituteInPlace "$file" --replace '"$VIRTUALENVWRAPPER_PYTHON" -' 'env PYTHONPATH="$VIRTUALENVWRAPPER_PYTHONPATH" "$VIRTUALENVWRAPPER_PYTHON" -'
14366 done
14367 '';
14368
14369 postInstall = ''
14370 # This might look like a dirty hack but we can't use the makeWrapper function because
14371 # the wrapped file were then called via "exec". The virtualenvwrapper shell scripts
14372 # aren't normal executables. Instead, the user has to evaluate them.
14373
14374 for file in "virtualenvwrapper.sh" "virtualenvwrapper_lazy.sh"; do
14375 local wrapper="$out/bin/$file"
14376 local wrapped="$out/bin/.$file-wrapped"
14377 mv "$wrapper" "$wrapped"
14378
14379 cat > "$wrapper" <<- EOF
14380 export PATH="$PATH:\$PATH"
14381 export VIRTUALENVWRAPPER_PYTHONPATH="$PYTHONPATH:$(toPythonPath $out)"
14382 source "$wrapped"
14383 EOF
14384
14385 chmod -x "$wrapped"
14386 chmod +x "$wrapper"
14387 done
14388 '';
14389
14390 meta = {
14391 description = "Enhancements to virtualenv";
14392 homepage = "https://pypi.python.org/pypi/virtualenvwrapper";
14393 license = licenses.mit;
14394 };
14395 });
14396
14397 vultr = buildPythonPackage rec {
14398 version = "0.1.2";
14399 name = "vultr-${version}";
14400
14401 src = pkgs.fetchFromGitHub {
14402 owner = "spry-group";
14403 repo = "python-vultr";
14404 rev = "${version}";
14405 sha256 = "1qjvvr2v9gfnwskdl0ayazpcmiyw9zlgnijnhgq9mcri5gq9jw5h";
14406 };
14407
14408 propagatedBuildInputs = with self; [ requests2 ];
14409
14410 # Tests disabled. They fail because they try to access the network
14411 doCheck = false;
14412
14413 meta = {
14414 description = "Vultr.com API Client";
14415 homepage = "https://github.com/spry-group/python-vultr";
14416 license = licenses.mit;
14417 maintainers = with maintainers; [ lihop ];
14418 platforms = platforms.all;
14419 };
14420 };
14421
14422 waitress = buildPythonPackage rec {
14423 name = "waitress-0.8.9";
14424
14425 src = pkgs.fetchurl {
14426 url = "http://pypi.python.org/packages/source/w/waitress/${name}.tar.gz";
14427 md5 = "da3f2e62b3676be5dd630703a68e2a04";
14428 };
14429
14430 doCheck = false;
14431
14432 meta = {
14433 maintainers = with maintainers; [ garbas iElectric ];
14434 platforms = platforms.all;
14435 };
14436 };
14437
14438
14439 webcolors = buildPythonPackage rec {
14440 name = "webcolors-1.4";
14441
14442 src = pkgs.fetchurl {
14443 url = "https://pypi.python.org/packages/source/w/webcolors/${name}.tar.gz";
14444 md5 = "35de9d785b5c04a9cc66a2eae0519254";
14445 };
14446
14447 # error: invalid command 'test'
14448 doCheck = false;
14449
14450 meta = {
14451 description = "Library for working with color names/values defined by the HTML and CSS specifications";
14452 homepage = https://bitbucket.org/ubernostrum/webcolors/overview/;
14453 license = licenses.bsd3;
14454 platforms = platforms.linux;
14455 };
14456 };
14457
14458
14459 wand = buildPythonPackage rec {
14460 name = "Wand-0.3.5";
14461
14462 src = pkgs.fetchurl {
14463 url = "https://pypi.python.org/packages/source/W/Wand/${name}.tar.gz";
14464 md5 = "10bab03bf86ce8da2a95a3b15197ae2e";
14465 };
14466
14467 buildInputs = with self; [ pkgs.imagemagick pytest psutil memory_profiler pytest_xdist ];
14468
14469 meta = {
14470 description = "Ctypes-based simple MagickWand API binding for Python";
14471 homepage = http://wand-py.org/;
14472 platforms = platforms.all;
14473 };
14474 };
14475
14476
14477 wcwidth = buildPythonPackage rec {
14478 name = "wcwidth-${version}";
14479 version = "0.1.4";
14480
14481 src = pkgs.fetchurl {
14482 url = "https://pypi.python.org/packages/source/w/wcwidth/${name}.tar.gz";
14483 sha256 = "0awx28xi938nv55qlmai3b5ddqd1w5c294gy95xh4xsx0hik2vch";
14484 };
14485
14486 # Checks fail due to missing tox.ini file:
14487 doCheck = false;
14488
14489 meta = {
14490 description = "Measures number of Terminal column cells of wide-character codes";
14491 longDescription = ''
14492 This API is mainly for Terminal Emulator implementors -- any Python
14493 program that attempts to determine the printable width of a string on
14494 a Terminal. It is implemented in python (no C library calls) and has
14495 no 3rd-party dependencies.
14496 '';
14497 homepage = https://github.com/jquast/wcwidth;
14498 license = licenses.mit;
14499 maintainers = with maintainers; [ nckx ];
14500 };
14501 };
14502
14503 webob = buildPythonPackage rec {
14504 version = "1.4";
14505 name = "webob-${version}";
14506
14507 src = pkgs.fetchurl {
14508 url = "http://pypi.python.org/packages/source/W/WebOb/WebOb-${version}.tar.gz";
14509 md5 = "8437607c0cc00c35f658f972516ffb55";
14510 };
14511
14512 propagatedBuildInputs = with self; [ nose ];
14513
14514 meta = {
14515 description = "WSGI request and response object";
14516 homepage = http://pythonpaste.org/webob/;
14517 platforms = platforms.all;
14518 };
14519 };
14520
14521
14522 websockify = buildPythonPackage rec {
14523 version = "0.3.0";
14524 name = "websockify-${version}";
14525
14526 src = pkgs.fetchurl {
14527 url = "http://pypi.python.org/packages/source/w/websockify/websockify-${version}.tar.gz";
14528 md5 = "29b6549d3421907de4bbd881ecc2e1b1";
14529 };
14530
14531 propagatedBuildInputs = with self; [ numpy ];
14532
14533 meta = {
14534 description = "WebSockets support for any application/server";
14535 homepage = https://github.com/kanaka/websockify;
14536 };
14537 };
14538
14539
14540 webtest = buildPythonPackage rec {
14541 version = "2.0.15";
14542 name = "webtest-${version}";
14543
14544 src = pkgs.fetchurl {
14545 url = "http://pypi.python.org/packages/source/W/WebTest/WebTest-${version}.zip";
14546 md5 = "49314bdba23f4d0bd807facb2a6d3f90";
14547 };
14548
14549 preConfigure = ''
14550 substituteInPlace setup.py --replace "nose<1.3.0" "nose"
14551 '';
14552
14553 # XXX: skipping two tests fails in python2.6
14554 doCheck = ! isPy26;
14555
14556 buildInputs = with self; optionals isPy26 [ ordereddict unittest2 ];
14557
14558 propagatedBuildInputs = with self; [
14559 nose
14560 webob
14561 six
14562 beautifulsoup4
14563 waitress
14564 mock
14565 pyquery
14566 wsgiproxy2
14567 paste_deploy
14568 coverage
14569 ];
14570
14571 meta = {
14572 description = "Helper to test WSGI applications";
14573 homepage = http://webtest.readthedocs.org/en/latest/;
14574 platforms = platforms.all;
14575 };
14576 };
14577
14578
14579 werkzeug = buildPythonPackage rec {
14580 name = "Werkzeug-0.9.6";
14581
14582 src = pkgs.fetchurl {
14583 url = "http://pypi.python.org/packages/source/W/Werkzeug/${name}.tar.gz";
14584 md5 = "f7afcadc03b0f2267bdc156c34586043";
14585 };
14586
14587 propagatedBuildInputs = with self; [ itsdangerous ];
14588
14589 doCheck = false; # tests fail, not sure why
14590
14591 meta = {
14592 homepage = http://werkzeug.pocoo.org/;
14593 description = "A WSGI utility library for Python";
14594 license = "BSD";
14595 };
14596 };
14597
14598
14599
14600 willie = pythonPackages.buildPythonPackage rec {
14601 name = "willie-5.2.0";
14602
14603 src = pkgs.fetchurl {
14604 url = "https://pypi.python.org/packages/source/w/willie/willie-5.2.0.tar.gz";
14605 md5 = "a19f8c34e10e3c2d0d915c894224e521";
14606 };
14607
14608 propagatedBuildInputs = with pythonPackages; [ feedparser pytz lxml praw pyenchant pygeoip backports_ssl_match_hostname_3_4_0_2 ];
14609
14610 meta = {
14611 description = "A simple, lightweight, open source, easy-to-use IRC utility bot, written in Python";
14612 homepage = http://willie.dftba.net/;
14613 license = licenses.efl20;
14614 };
14615 };
14616
14617 wokkel = buildPythonPackage (rec {
14618 url = "http://wokkel.ik.nu/releases/0.7.0/wokkel-0.7.0.tar.gz";
14619 name = nameFromURL url ".tar";
14620 src = pkgs.fetchurl {
14621 inherit url;
14622 sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml";
14623 };
14624
14625 propagatedBuildInputs = with self; [twisted dateutil];
14626
14627 meta = {
14628 description = "Some (mainly XMPP-related) additions to twisted";
14629 homepage = "http://wokkel.ik.nu/";
14630 license = licenses.mit;
14631 };
14632 });
14633
14634
14635 wsgiproxy2 = buildPythonPackage rec {
14636 name = "WSGIProxy2-0.1";
14637
14638 src = pkgs.fetchurl {
14639 url = "http://pypi.python.org/packages/source/W/WSGIProxy2/${name}.tar.gz";
14640 md5 = "157049212f1c81a8790efa31146fbabf";
14641 };
14642
14643 propagatedBuildInputs = with self; [ six webob ];
14644
14645 meta = {
14646 maintainers = with maintainers; [ garbas iElectric ];
14647 platforms = platforms.all;
14648 };
14649 };
14650
14651 wxPython = self.wxPython28;
14652
14653 wxPython28 = callPackage ../development/python-modules/wxPython/2.8.nix {
14654 wxGTK = pkgs.wxGTK28;
14655 };
14656
14657 wxPython30 = callPackage ../development/python-modules/wxPython/3.0.nix {
14658 wxGTK = pkgs.wxGTK30;
14659 };
14660
14661 xcaplib = buildPythonPackage rec {
14662 name = "python-xcaplib-${version}";
14663 version = "1.1.0";
14664
14665 src = pkgs.fetchurl {
14666 url = "http://download.ag-projects.com/XCAP/${name}.tar.gz";
14667 sha256 = "2f8ea6fe7d005104ef1d854aa87bd8ee85ca242a70cde42f409f8e5557f864b3";
14668 };
14669
14670 propagatedBuildInputs = with self; [ eventlib application ];
14671 };
14672
14673 xe = buildPythonPackage rec {
14674 url = "http://www.blarg.net/%7Esteveha/xe-0.7.4.tar.gz";
14675 name = stdenv.lib.nameFromURL url ".tar";
14676 src = pkgs.fetchurl {
14677 inherit url;
14678 sha256 = "0v9878cl0y9cczdsr6xjy8v9l139lc23h4m5f86p4kpf2wlnpi42";
14679 };
14680
14681 # error: invalid command 'test'
14682 doCheck = false;
14683
14684 meta = {
14685 homepage = "http://home.blarg.net/~steveha/xe.html";
14686 description = "XML elements";
14687 };
14688 };
14689
14690 xlib = buildPythonPackage (rec {
14691 name = "xlib-0.15rc1";
14692
14693 src = pkgs.fetchurl {
14694 url = "mirror://sourceforge/python-xlib/python-${name}.tar.bz2";
14695 sha256 = "0mvzz605pxzj7lfp2w6z4qglmr4rjza9xrb7sl8yn12cklzfky0m";
14696 };
14697
14698 # Tests require `pyutil' so disable them to avoid circular references.
14699 doCheck = false;
14700
14701 propagatedBuildInputs = with self; [ pkgs.xlibs.libX11 ];
14702
14703 meta = {
14704 description = "Fully functional X client library for Python programs";
14705
14706 homepage = http://python-xlib.sourceforge.net/;
14707
14708 license = licenses.gpl2Plus;
14709 };
14710 });
14711
14712 xmltodict = buildPythonPackage (rec {
14713 name = "xmltodict-0.9.2";
14714
14715 src = pkgs.fetchurl {
14716 url = "http://pypi.python.org/packages/source/x/xmltodict/${name}.tar.gz";
14717 sha256 = "00crqnjh1kbvcgfnn3b8c7vq30lf4ykkxp1xf3pf7mswr5l1wp97";
14718 };
14719
14720 buildInputs = with self; [ coverage nose ];
14721
14722 meta = {
14723 description = "Makes working with XML feel like you are working with JSON";
14724 homepage = https://github.com/martinblech/xmltodict;
14725 license = licenses.mit;
14726 };
14727 });
14728
14729 youtube-dl = callPackage ../tools/misc/youtube-dl {
14730 # Release versions don't need pandoc because the formatted man page
14731 # is included in the tarball.
14732 pandoc = null;
14733 };
14734
14735 youtube-dl-light = callPackage ../tools/misc/youtube-dl {
14736 # Release versions don't need pandoc because the formatted man page
14737 # is included in the tarball.
14738 ffmpeg = null;
14739 pandoc = null;
14740 };
14741
14742 zbase32 = buildPythonPackage (rec {
14743 name = "zbase32-1.1.2";
14744
14745 src = pkgs.fetchurl {
14746 url = "http://pypi.python.org/packages/source/z/zbase32/${name}.tar.gz";
14747 sha256 = "2f44b338f750bd37b56e7887591bf2f1965bfa79f163b6afcbccf28da642ec56";
14748 };
14749
14750 # Tests require `pyutil' so disable them to avoid circular references.
14751 doCheck = false;
14752
14753 buildInputs = with self; [ setuptoolsDarcs ];
14754
14755 meta = {
14756 description = "zbase32, a base32 encoder/decoder";
14757
14758 homepage = http://pypi.python.org/pypi/zbase32;
14759
14760 license = "BSD";
14761 };
14762 });
14763
14764
14765 zconfig = buildPythonPackage rec {
14766 name = "zconfig-${version}";
14767 version = "3.0.3";
14768
14769 src = pkgs.fetchurl {
14770 url = "http://pypi.python.org/packages/source/Z/ZConfig/ZConfig-${version}.tar.gz";
14771 md5 = "60a107c5857c3877368dfe5930559804";
14772 };
14773
14774 propagatedBuildInputs = with self; [ zope_testrunner ];
14775
14776 meta = {
14777 description = "Structured Configuration Library";
14778 homepage = http://pypi.python.org/pypi/ZConfig;
14779 license = licenses.zpt20;
14780 maintainers = with maintainers; [ goibhniu ];
14781 };
14782 };
14783
14784
14785 zc_lockfile = buildPythonPackage rec {
14786 name = "zc.lockfile-${version}";
14787 version = "1.0.2";
14788
14789 src = pkgs.fetchurl {
14790 url = "http://pypi.python.org/packages/source/z/zc.lockfile/${name}.tar.gz";
14791 md5 = "f099d4cf2583a0c7bea0146a44dc4d59";
14792 };
14793
14794 meta = {
14795 description = "Inter-process locks";
14796 homepage = http://www.python.org/pypi/zc.lockfile;
14797 license = licenses.zpt20;
14798 maintainers = with maintainers; [ goibhniu ];
14799 };
14800 };
14801
14802
14803 zdaemon = buildPythonPackage rec {
14804 name = "zdaemon-${version}";
14805 version = "4.0.0";
14806
14807 src = pkgs.fetchurl {
14808 url = "http://pypi.python.org/packages/source/z/zdaemon/${name}.tar.gz";
14809 md5 = "4056e2ea35855695ed15389d9c168b92";
14810 };
14811
14812 propagatedBuildInputs = [ self.zconfig ];
14813
14814 # too many deps..
14815 doCheck = false;
14816
14817 meta = {
14818 description = "A daemon process control library and tools for Unix-based systems";
14819 homepage = http://pypi.python.org/pypi/zdaemon;
14820 license = licenses.zpt20;
14821 maintainers = with maintainers; [ goibhniu ];
14822 };
14823 };
14824
14825
14826 zfec = buildPythonPackage (rec {
14827 name = "zfec-1.4.24";
14828 disabled = isPyPy;
14829
14830 src = pkgs.fetchurl {
14831 url = "http://pypi.python.org/packages/source/z/zfec/${name}.tar.gz";
14832 sha256 = "1ks94zlpy7n8sb8380gf90gx85qy0p9073wi1wngg6mccxp9xsg3";
14833 };
14834
14835 buildInputs = with self; [ setuptoolsDarcs ];
14836 propagatedBuildInputs = with self; [ pyutil argparse ];
14837
14838 meta = {
14839 homepage = http://allmydata.org/trac/zfec;
14840
14841 description = "Zfec, a fast erasure codec which can be used with the command-line, C, Python, or Haskell";
14842
14843 longDescription = ''
14844 Fast, portable, programmable erasure coding a.k.a. "forward
14845 error correction": the generation of redundant blocks of
14846 information such that if some blocks are lost then the
14847 original data can be recovered from the remaining blocks. The
14848 zfec package includes command-line tools, C API, Python API,
14849 and Haskell API.
14850 '';
14851
14852 license = licenses.gpl2Plus;
14853 };
14854 });
14855
14856 zodb3 = buildPythonPackage rec {
14857 name = "zodb3-${version}";
14858 version = "3.11.0";
14859 disabled = isPyPy;
14860
14861 src = pkgs.fetchurl {
14862 url = "http://pypi.python.org/packages/source/Z/ZODB3/ZODB3-${version}.tar.gz";
14863 md5 = "21975c1609296e7834e8cf4025af3039";
14864 };
14865
14866 propagatedBuildInputs = with self; [ manuel transaction zc_lockfile zconfig zdaemon zope_interface zope_event BTrees persistent ZEO ];
14867
14868 meta = {
14869 description = "An object-oriented database for Python";
14870 homepage = http://pypi.python.org/pypi/ZODB3;
14871 license = licenses.zpt20;
14872 maintainers = with maintainers; [ goibhniu ];
14873 };
14874 };
14875
14876 zodb = buildPythonPackage rec {
14877 name = "zodb-${version}";
14878 disabled = isPyPy;
14879
14880 version = "4.0.1";
14881
14882 src = pkgs.fetchurl {
14883 url = "http://pypi.python.org/packages/source/Z/ZODB/ZODB-${version}.tar.gz";
14884 md5 = "092d787524b095164231742c96b32f50";
14885 };
14886
14887 propagatedBuildInputs = with self; [ manuel transaction zc_lockfile zconfig zdaemon zope_interface persistent BTrees ]
14888 ++ optionals isPy3k [ zodbpickle ];
14889
14890 preCheck = if isPy3k then ''
14891 # test failure on py3.4
14892 rm src/ZODB/tests/testDB.py
14893 '' else "";
14894
14895 meta = {
14896 description = "An object-oriented database for Python";
14897 homepage = http://pypi.python.org/pypi/ZODB;
14898 license = licenses.zpt20;
14899 maintainers = with maintainers; [ goibhniu ];
14900 };
14901 };
14902
14903 zodbpickle = self.buildPythonPackage rec {
14904 name = "zodbpickle-0.5.2";
14905 disabled = isPyPy; # https://github.com/zopefoundation/zodbpickle/issues/10
14906
14907 src = pkgs.fetchurl {
14908 url = "https://pypi.python.org/packages/source/z/zodbpickle/${name}.tar.gz";
14909 md5 = "d401bd89f99ec8d56c22493e6f8c0443";
14910 };
14911
14912 # fails..
14913 doCheck = false;
14914
14915 meta = {
14916 homepage = http://pypi.python.org/pypi/zodbpickle;
14917 };
14918 };
14919
14920
14921 BTrees = self.buildPythonPackage rec {
14922 name = "BTrees-4.0.8";
14923
14924 patches = [ ./../development/python-modules/btrees_interger_overflow.patch ];
14925
14926 propagatedBuildInputs = with self; [ persistent zope_interface transaction ];
14927
14928 src = pkgs.fetchurl {
14929 url = "https://pypi.python.org/packages/source/B/BTrees/${name}.tar.gz";
14930 md5 = "7f5df4cf8dd50fb0c584c0929a406c92";
14931 };
14932
14933 meta = {
14934 description = "scalable persistent components";
14935 homepage = http://packages.python.org/BTrees;
14936 };
14937 };
14938
14939
14940 persistent = self.buildPythonPackage rec {
14941 name = "persistent-4.0.8";
14942
14943 propagatedBuildInputs = with self; [ zope_interface ];
14944
14945 src = pkgs.fetchurl {
14946 url = "https://pypi.python.org/packages/source/p/persistent/${name}.tar.gz";
14947 md5 = "2942f1ca7764b1bef8d48fa0d9a236b7";
14948 };
14949
14950 meta = {
14951 description = "automatic persistence for Python objects";
14952 homepage = http://www.zope.org/Products/ZODB;
14953 };
14954 };
14955
14956 xdot = buildPythonPackage rec {
14957 name = "xdot-0.6";
14958
14959 src = pkgs.fetchurl {
14960 url = "https://pypi.python.org/packages/source/x/xdot/xdot-0.6.tar.gz";
14961 md5 = "a8e5fc5208657b03ad1bd4c46de75724";
14962 };
14963
14964 propagatedBuildInputs = with self; [ pygtk pygobject pkgs.graphviz ];
14965
14966 meta = {
14967 description = "xdot.py is an interactive viewer for graphs written in Graphviz's dot";
14968 homepage = https://github.com/jrfonseca/xdot.py;
14969 license = licenses.lgpl3Plus;
14970 };
14971 };
14972
14973 zope_broken = buildPythonPackage rec {
14974 name = "zope.broken-3.6.0";
14975
14976 src = pkgs.fetchurl {
14977 url = "http://pypi.python.org/packages/source/z/zope.broken/${name}.zip";
14978 md5 = "eff24d7918099a3e899ee63a9c31bee6";
14979 };
14980
14981 buildInputs = with self; [ zope_interface ];
14982
14983 meta = {
14984 maintainers = with maintainers; [ goibhniu ];
14985 };
14986 };
14987
14988
14989 zope_browser = buildPythonPackage rec {
14990 name = "zope.browser-2.0.2";
14991
14992 src = pkgs.fetchurl {
14993 url = "http://pypi.python.org/packages/source/z/zope.browser/${name}.zip";
14994 sha256 = "0f9r5rn9lzgi4hvkhgb6vgw8kpz9sv16jsfb9ws4am8gbqcgv2iy";
14995 };
14996
14997 propagatedBuildInputs = with self; [ zope_interface ];
14998
14999 meta = {
15000 maintainers = with maintainers; [ goibhniu ];
15001 };
15002 };
15003
15004 zope_browserresource = buildPythonPackage rec {
15005 name = "zope.browserresource-4.0.1";
15006
15007 propagatedBuildInputs = with self; [
15008 zope_component zope_configuration zope_contenttype zope_i18n
15009 zope_interface zope_location zope_publisher zope_schema zope_traversing
15010 ];
15011
15012 # all tests fail
15013 doCheck = false;
15014
15015 src = pkgs.fetchurl {
15016 url = "https://pypi.python.org/packages/source/z/zope.browserresource/zope.browserresource-4.0.1.zip";
15017 md5 = "81bbe92c1f04725561470f89d73222c5";
15018 };
15019 };
15020
15021
15022
15023 zope_component = buildPythonPackage rec {
15024 name = "zope.component-4.2.1";
15025
15026 src = pkgs.fetchurl {
15027 url = "http://pypi.python.org/packages/source/z/zope.component/zope.component-4.2.1.tar.gz";
15028 sha256 = "1gzbr0j6c2h0cqnpi2cjss38wrz1bcwx8xahl3vykgz5laid15l6";
15029 };
15030
15031 propagatedBuildInputs = with self; [
15032 zope_configuration zope_event zope_i18nmessageid zope_interface
15033 zope_testing
15034 ];
15035
15036 # ignore tests because of a circular dependency on zope_security
15037 doCheck = false;
15038
15039 meta = {
15040 maintainers = with maintainers; [ goibhniu ];
15041 };
15042 };
15043
15044
15045 zope_configuration = buildPythonPackage rec {
15046 name = "zope.configuration-4.0.3";
15047
15048 src = pkgs.fetchurl {
15049 url = "http://pypi.python.org/packages/source/z/zope.configuration/zope.configuration-4.0.3.tar.gz";
15050 sha256 = "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n";
15051 };
15052
15053 propagatedBuildInputs = with self; [ zope_i18nmessageid zope_schema ];
15054
15055 meta = {
15056 maintainers = with maintainers; [ goibhniu ];
15057 };
15058 };
15059
15060
15061 zope_container = buildPythonPackage rec {
15062 name = "zope.container-4.0.0";
15063
15064 src = pkgs.fetchurl {
15065 url = "http://pypi.python.org/packages/source/z/zope.container/${name}.tar.gz";
15066 md5 = "b24d2303ece65a2d9ce23a5bd074c335";
15067 };
15068
15069 # a test is failing
15070 doCheck = false;
15071
15072 propagatedBuildInputs = with self; [
15073 zodb3 zope_broken zope_dottedname zope_publisher
15074 zope_filerepresentation zope_lifecycleevent zope_size
15075 zope_traversing
15076 ];
15077
15078 meta = {
15079 maintainers = with maintainers; [ goibhniu ];
15080 };
15081 };
15082
15083
15084 zope_contenttype = buildPythonPackage rec {
15085 name = "zope.contenttype-4.0.1";
15086
15087 src = pkgs.fetchurl {
15088 url = "http://pypi.python.org/packages/source/z/zope.contenttype/${name}.tar.gz";
15089 md5 = "171be44753e86742da8c81b3ad008ce0";
15090 };
15091
15092 meta = {
15093 maintainers = with maintainers; [ goibhniu ];
15094 };
15095 };
15096
15097
15098 zope_dottedname = buildPythonPackage rec {
15099 name = "zope.dottedname-3.4.6";
15100
15101 src = pkgs.fetchurl {
15102 url = "http://pypi.python.org/packages/source/z/zope.dottedname/${name}.tar.gz";
15103 md5 = "62d639f75b31d2d864fe5982cb23959c";
15104 };
15105 meta = {
15106 maintainers = with maintainers; [ goibhniu ];
15107 };
15108 };
15109
15110
15111 zope_event = buildPythonPackage rec {
15112 name = "zope.event-${version}";
15113 version = "4.0.3";
15114
15115 src = pkgs.fetchurl {
15116 url = "http://pypi.python.org/packages/source/z/zope.event/${name}.tar.gz";
15117 sha256 = "1w858k9kmgzfj36h65kp27m9slrmykvi5cjq6c119xqnaz5gdzgm";
15118 };
15119
15120 meta = {
15121 description = "An event publishing system";
15122 homepage = http://pypi.python.org/pypi/zope.event;
15123 license = licenses.zpt20;
15124 maintainers = with maintainers; [ goibhniu ];
15125 };
15126 };
15127
15128
15129 zope_exceptions = buildPythonPackage rec {
15130 name = "zope.exceptions-${version}";
15131 version = "4.0.5";
15132
15133 src = pkgs.fetchurl {
15134 url = "http://pypi.python.org/packages/source/z/zope.exceptions/${name}.tar.gz";
15135 md5 = "c95569fcb444ae541777de7ae5297492";
15136 };
15137
15138 propagatedBuildInputs = with self; [ zope_interface ];
15139
15140 meta = {
15141 description = "Exception interfaces and implementations";
15142 homepage = http://pypi.python.org/pypi/zope.exceptions;
15143 license = licenses.zpt20;
15144 maintainers = with maintainers; [ goibhniu ];
15145 };
15146 };
15147
15148
15149 zope_filerepresentation = buildPythonPackage rec {
15150 name = "zope.filerepresentation-3.6.1";
15151
15152 src = pkgs.fetchurl {
15153 url = "http://pypi.python.org/packages/source/z/zope.filerepresentation/${name}.tar.gz";
15154 md5 = "4a7a434094f4bfa99a7f22e75966c359";
15155 };
15156
15157 propagatedBuildInputs = with self; [ zope_schema ];
15158
15159 meta = {
15160 maintainers = with maintainers; [ goibhniu ];
15161 };
15162 };
15163
15164
15165 zope_i18n = buildPythonPackage rec {
15166 name = "zope.i18n-3.8.0";
15167
15168 src = pkgs.fetchurl {
15169 url = "http://pypi.python.org/packages/source/z/zope.i18n/${name}.tar.gz";
15170 sha256 = "045nnimmshibcq71yym2d8yrs6wzzhxq5gl7wxjnkpyjm5y0hfkm";
15171 };
15172
15173 propagatedBuildInputs = with self; [ pytz zope_component ];
15174
15175 meta = {
15176 maintainers = with maintainers; [ goibhniu ];
15177 };
15178 };
15179
15180
15181 zope_i18nmessageid = buildPythonPackage rec {
15182 name = "zope.i18nmessageid-4.0.3";
15183
15184 src = pkgs.fetchurl {
15185 url = "http://pypi.python.org/packages/source/z/zope.i18nmessageid/zope.i18nmessageid-4.0.3.tar.gz";
15186 sha256 = "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml";
15187 };
15188
15189 meta = {
15190 maintainers = with maintainers; [ goibhniu ];
15191 };
15192 };
15193
15194
15195 zope_lifecycleevent = buildPythonPackage rec {
15196 name = "zope.lifecycleevent-3.7.0";
15197
15198 src = pkgs.fetchurl {
15199 url = "http://pypi.python.org/packages/source/z/zope.lifecycleevent/${name}.tar.gz";
15200 sha256 = "0s5brphqzzz89cykg61gy7zcmz0ryq1jj2va7gh2n1b3cccllp95";
15201 };
15202
15203 propagatedBuildInputs = with self; [ zope_event zope_component ];
15204
15205 meta = {
15206 maintainers = with maintainers; [ goibhniu ];
15207 };
15208 };
15209
15210
15211 zope_location = buildPythonPackage rec {
15212 name = "zope.location-4.0.3";
15213
15214 src = pkgs.fetchurl {
15215 url = "http://pypi.python.org/packages/source/z/zope.location/zope.location-4.0.3.tar.gz";
15216 sha256 = "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74";
15217 };
15218
15219 propagatedBuildInputs = with self; [ zope_proxy ];
15220
15221 # ignore circular dependency on zope_schema
15222 preBuild = ''
15223 sed -i '/zope.schema/d' setup.py
15224 '';
15225
15226 doCheck = false;
15227
15228 meta = {
15229 maintainers = with maintainers; [ goibhniu ];
15230 };
15231 };
15232
15233
15234 zope_proxy = buildPythonPackage rec {
15235 name = "zope.proxy-4.1.4";
15236
15237 src = pkgs.fetchurl {
15238 url = "http://pypi.python.org/packages/source/z/zope.proxy/${name}.tar.gz";
15239 md5 = "3bcaf8b8512a99649ecf2f158c11d05b";
15240 };
15241
15242 propagatedBuildInputs = with self; [ zope_interface ];
15243
15244 meta = {
15245 maintainers = with maintainers; [ goibhniu ];
15246 };
15247 };
15248
15249
15250 zope_publisher = buildPythonPackage rec {
15251 name = "zope.publisher-3.12.6";
15252
15253 src = pkgs.fetchurl {
15254 url = "http://pypi.python.org/packages/source/z/zope.publisher/${name}.tar.gz";
15255 md5 = "495131970cc7cb14de8e517fb3857ade";
15256 };
15257
15258 propagatedBuildInputs = with self; [
15259 zope_browser zope_contenttype zope_i18n zope_security
15260 ];
15261
15262 meta = {
15263 maintainers = with maintainers; [ goibhniu ];
15264 };
15265 };
15266
15267
15268 zope_schema = buildPythonPackage rec {
15269 name = "zope.schema-4.4.2";
15270
15271 src = pkgs.fetchurl {
15272 url = "http://pypi.python.org/packages/source/z/zope.schema/${name}.tar.gz";
15273 sha256 = "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank";
15274 };
15275
15276 propagatedBuildInputs = with self; [ zope_location zope_event zope_interface zope_testing ] ++ optional isPy26 ordereddict;
15277
15278 meta = {
15279 maintainers = with maintainers; [ goibhniu ];
15280 };
15281 };
15282
15283
15284 zope_security = buildPythonPackage rec {
15285 name = "zope.security-4.0.1";
15286
15287 src = pkgs.fetchurl {
15288 url = "http://pypi.python.org/packages/source/z/zope.security/${name}.tar.gz";
15289 md5 = "27d1f2873a0ee9c1f485f7b8f22d8e1c";
15290 };
15291
15292 propagatedBuildInputs = with self; [
15293 zope_component zope_configuration zope_i18nmessageid zope_schema
15294 zope_proxy zope_testrunner
15295 ];
15296
15297 meta = {
15298 maintainers = with maintainers; [ goibhniu ];
15299 };
15300 };
15301
15302
15303 zope_size = buildPythonPackage rec {
15304 name = "zope.size-3.5.0";
15305
15306 src = pkgs.fetchurl {
15307 url = "http://pypi.python.org/packages/source/z/zope.size/${name}.tar.gz";
15308 sha256 = "006xfkhvmypwd3ww9gbba4zly7n9w30bpp1h74d53la7l7fiqk2f";
15309 };
15310
15311 propagatedBuildInputs = with self; [ zope_i18nmessageid zope_interface ];
15312
15313 meta = {
15314 maintainers = with maintainers; [ goibhniu ];
15315 };
15316 };
15317
15318
15319 zope_sqlalchemy = buildPythonPackage rec {
15320 name = "zope.sqlalchemy-0.7.5";
15321
15322 doCheck = !isPyPy; # https://github.com/zopefoundation/zope.sqlalchemy/issues/12
15323
15324 src = pkgs.fetchurl {
15325 url = "http://pypi.python.org/packages/source/z/zope.sqlalchemy/${name}.zip";
15326 md5 = "0a468bd5b8884cd29fb71acbf7eaa31e";
15327 };
15328
15329 buildInputs = with self; [ zope_testing zope_interface ];
15330 propagatedBuildInputs = with self; [ sqlalchemy9 transaction ];
15331
15332 meta = {
15333 maintainers = with maintainers; [ garbas iElectric ];
15334 platforms = platforms.all;
15335 };
15336 };
15337
15338
15339 zope_testing = buildPythonPackage rec {
15340 name = "zope.testing-${version}";
15341 version = "4.1.3";
15342
15343 src = pkgs.fetchurl {
15344 url = "http://pypi.python.org/packages/source/z/zope.testing/${name}.tar.gz";
15345 md5 = "6c73c5b668a67fdc116a25b884058ed9";
15346 };
15347
15348 doCheck = !isPyPy;
15349
15350 propagatedBuildInputs = with self; [ zope_interface zope_exceptions zope_location ];
15351
15352 meta = {
15353 description = "Zope testing helpers";
15354 homepage = http://pypi.python.org/pypi/zope.testing;
15355 license = licenses.zpt20;
15356 maintainers = with maintainers; [ goibhniu ];
15357 };
15358 };
15359
15360
15361 zope_testrunner = buildPythonPackage rec {
15362 name = "zope.testrunner-${version}";
15363 version = "4.4.3";
15364
15365 src = pkgs.fetchurl {
15366 url = "http://pypi.python.org/packages/source/z/zope.testrunner/${name}.zip";
15367 sha256 = "1dwk35kg0bmj2lzp4fd2bgp6dv64q5sda09bf0y8j63y53vqbsw8";
15368 };
15369
15370 propagatedBuildInputs = with self; [ zope_interface zope_exceptions zope_testing six ] ++ optional (!python.is_py3k or false) subunit;
15371
15372 doCheck = !isPy27;
15373
15374 meta = {
15375 description = "A flexible test runner with layer support";
15376 homepage = http://pypi.python.org/pypi/zope.testrunner;
15377 license = licenses.zpt20;
15378 maintainers = with maintainers; [ goibhniu ];
15379 };
15380 };
15381
15382
15383 zope_traversing = buildPythonPackage rec {
15384 name = "zope.traversing-4.0.0";
15385
15386 src = pkgs.fetchurl {
15387 url = "http://pypi.python.org/packages/source/z/zope.traversing/${name}.zip";
15388 md5 = "5cc40c552f953939f7c597ebbedd586f";
15389 };
15390
15391 propagatedBuildInputs = with self; [ zope_location zope_security zope_publisher transaction zope_tales ];
15392
15393 # circular dependency on zope_browserresource
15394 doCheck = false;
15395
15396 meta = {
15397 maintainers = with maintainers; [ goibhniu ];
15398 };
15399 };
15400
15401
15402 zope_interface = buildPythonPackage rec {
15403 name = "zope.interface-4.1.1";
15404
15405 src = pkgs.fetchurl {
15406 url = "http://pypi.python.org/packages/source/z/zope.interface/${name}.tar.gz";
15407 md5 = "edcd5f719c5eb2e18894c4d06e29b6c6";
15408 };
15409
15410 propagatedBuildInputs = with self; [ zope_event ];
15411
15412 meta = {
15413 description = "Zope.Interface";
15414 homepage = http://zope.org/Products/ZopeInterface;
15415 license = licenses.zpt20;
15416 maintainers = with maintainers; [ goibhniu ];
15417 };
15418 };
15419
15420 hgsvn = buildPythonPackage rec {
15421 name = "hgsvn-0.3.5";
15422 src = pkgs.fetchurl rec {
15423 url = "http://pypi.python.org/packages/source/h/hgsvn/${name}.zip";
15424 sha256 = "043yvkjf9hgm0xzhmwj1qk3fsmbgwm39f4wsqkscib9wfvxs8wbg";
15425 };
15426 disabled = isPy3k || isPyPy;
15427
15428 buildInputs = with self; [ pkgs.setuptools ];
15429 doCheck = false;
15430
15431 meta = {
15432 description = "HgSVN";
15433 homepage = http://pypi.python.org/pypi/hgsvn;
15434 };
15435 };
15436
15437 cliapp = buildPythonPackage rec {
15438 name = "cliapp-${version}";
15439 version = "1.20140719";
15440 disabled = isPy3k;
15441
15442 src = pkgs.fetchurl rec {
15443 url = "http://code.liw.fi/debian/pool/main/p/python-cliapp/python-cliapp_${version}.orig.tar.gz";
15444 sha256 = "0kxl2q85n4ggvbw2m8crl11x8n637mx6y3a3b5ydw8nhlsiqijgp";
15445 };
15446
15447 buildInputs = with self; [ sphinx ];
15448
15449 # error: invalid command 'test'
15450 doCheck = false;
15451
15452 meta = {
15453 homepage = http://liw.fi/cliapp/;
15454 description = "Python framework for Unix command line programs";
15455 maintainers = with maintainers; [ rickynils ];
15456 };
15457 };
15458
15459 # Remove tornado 3.x once pythonPackages.thumbor is updated to 5.x
15460 tornado_3 = buildPythonPackage rec {
15461 name = "tornado-3.2.2";
15462
15463 propagatedBuildInputs = with self; [ backports_ssl_match_hostname_3_4_0_2 ];
15464
15465 src = pkgs.fetchurl {
15466 url = "https://pypi.python.org/packages/source/t/tornado/${name}.tar.gz";
15467 sha256 = "13mq6nx98999zql8p2zlg4sj2hr2sxq9w11mqzi7rjfjs0z2sn8i";
15468 };
15469
15470 doCheck = false;
15471 };
15472 tornado = buildPythonPackage rec {
15473 name = "tornado-${version}";
15474 version = "4.2.1";
15475
15476 propagatedBuildInputs = with self; [ backports_ssl_match_hostname_3_4_0_2 certifi ];
15477
15478 src = pkgs.fetchurl {
15479 url = "https://pypi.python.org/packages/source/t/tornado/${name}.tar.gz";
15480 sha256 = "a16fcdc4f76b184cb82f4f9eaeeacef6113b524b26a2cb331222e4a7fa6f2969";
15481 };
15482 };
15483
15484 tokenlib = buildPythonPackage rec {
15485 name = "tokenlib-${version}";
15486 version = "0.3.1";
15487 src = pkgs.fetchgit {
15488 url = https://github.com/mozilla-services/tokenlib.git;
15489 rev = "refs/tags/${version}";
15490 sha256 = "0dmq41sy64jmkj7n49jgbpii5n5d41ci263lyhqbff5slr289m51";
15491 };
15492
15493 propagatedBuildInputs = with self; [ requests webob ];
15494 };
15495
15496 tornadokick = buildPythonPackage rec {
15497 name = "tornadokick-0.2.1";
15498
15499 propagatedBuildInputs = with self; [ tornado ];
15500
15501 src = pkgs.fetchurl {
15502 url = "https://pypi.python.org/packages/source/t/tornadokick/${name}.tar.gz";
15503 md5 = "95ee5a295ce3f361c6f843c4f39cbb8c";
15504 };
15505
15506 meta = {
15507 description = "A Toolkit for the Tornado Web Framework";
15508 homepage = http://github.com/multoncore/tornadokick;
15509 license = licenses.asl20;
15510 };
15511 };
15512
15513 screenkey = buildPythonPackage rec {
15514 version = "0.2-b3634a2c6eb6d6936c3b2c1ef5078bf3a84c40c6";
15515 name = "screenkey-${version}";
15516
15517 propagatedBuildInputs = with self; [ pygtk distutils_extra xlib pkgs.xorg.xmodmap ];
15518
15519 preConfigure = ''
15520 substituteInPlace setup.py --replace "/usr/share" "./share"
15521
15522 # disable the feature that binds a shortcut to turning on/off
15523 # screenkey. This is because keybinder is not packages in Nix as
15524 # of today.
15525 substituteInPlace Screenkey/screenkey.py \
15526 --replace "import keybinder" "" \
15527 --replace " keybinder.bind(self.options['hotkey'], self.hotkey_cb, show_item)" ""
15528 '';
15529
15530 src = pkgs.fetchgit {
15531 url = https://github.com/scs3jb/screenkey.git;
15532 rev = "b3634a2c6eb6d6936c3b2c1ef5078bf3a84c40c6";
15533 sha256 = "eb754917e98e03cb9d528eb5f57a08c88fa7a8172f92325a9fe796b2daf14db0";
15534 };
15535
15536 meta = {
15537 homepage = https://github.com/scs3jb/screenkey;
15538 description = "A screencast tool to show your keys";
15539 license = licenses.gpl3Plus;
15540 maintainers = with maintainers; [ DamienCassou ];
15541 platforms = platforms.linux;
15542 };
15543 };
15544
15545 tarman = buildPythonPackage rec {
15546 version = "0.1.3";
15547 name = "tarman-${version}";
15548
15549 disabled = isPy3k;
15550
15551 src = pkgs.fetchurl {
15552 url = "https://pypi.python.org/packages/source/t/tarman/tarman-${version}.zip";
15553 sha256 = "0ri6gj883k042xaxa2d5ymmhbw2bfcxdzhh4bz7700ibxwxxj62h";
15554 };
15555
15556 buildInputs = with self; [ unittest2 nose mock ];
15557 propagatedBuildInputs = with self; [ modules.curses libarchive ];
15558
15559 # tests are still failing
15560 doCheck = false;
15561 };
15562
15563
15564 libarchive = buildPythonPackage rec {
15565 version = "3.1.2-1";
15566 name = "libarchive-${version}";
15567 disabled = isPy3k;
15568
15569 src = pkgs.fetchurl {
15570 url = "http://python-libarchive.googlecode.com/files/python-libarchive-${version}.tar.gz";
15571 sha256 = "0j4ibc4mvq64ljya9max8832jafi04jciff9ia9qy0xhhlwkcx8x";
15572 };
15573
15574 propagatedBuildInputs = with self; [ pkgs.libarchive ];
15575 };
15576
15577 libarchive-c = buildPythonPackage rec {
15578 name = "libarchive-c-2.1";
15579
15580 src = pkgs.fetchurl {
15581 url = "https://pypi.python.org/packages/source/l/libarchive-c/${name}.tar.gz";
15582 sha256 = "089lrz6xyrfnk55v35vis6jyqyyl77w093057djyspnd2744wi2n";
15583 };
15584
15585 patchPhase = ''
15586 substituteInPlace libarchive/ffi.py --replace \
15587 "find_library('archive')" "'${pkgs.libarchive}/lib/libarchive.so'"
15588 '';
15589
15590 buildInputs = [ pkgs.libarchive ];
15591 };
15592
15593 pybrowserid = buildPythonPackage rec {
15594 name = "PyBrowserID-${version}";
15595 version = "0.9.2";
15596 disabled = isPy3k; # Errors in the test suite.
15597
15598 src = pkgs.fetchgit {
15599 url = https://github.com/mozilla/PyBrowserID.git;
15600 rev = "refs/tags/${version}";
15601 sha256 = "0nyqb0v8yrkqnrqsh1hlhvzr2pyvkxvkw701p3gpsvk29c0gb5n6";
15602 };
15603
15604 doCheck = false; # some tests use networking
15605
15606 buildInputs = with self; [ mock unittest2 ];
15607 propagatedBuildInputs = with self; [ requests ];
15608
15609 meta = {
15610 description = "Python library for the BrowserID Protocol";
15611 homepage = "https://github.com/mozilla/PyBrowserID";
15612 license = licenses.mpl20;
15613 };
15614 };
15615
15616 pyzmq = buildPythonPackage rec {
15617 name = "pyzmq-14.5.0";
15618 src = pkgs.fetchurl {
15619 url = "http://pypi.python.org/packages/source/p/pyzmq/${name}.tar.gz";
15620 sha256 = "1gbpgz4ngfw5x6zlsa1k0jwy5vd5wg9iz1shdx4zav256ib08vjx";
15621 };
15622 buildInputs = with self; [ pkgs.zeromq3 ];
15623 doCheck = false;
15624 };
15625
15626 tokenserver = buildPythonPackage rec {
15627 name = "tokenserver-${version}";
15628 version = "1.2.11";
15629
15630 src = pkgs.fetchgit {
15631 url = https://github.com/mozilla-services/tokenserver.git;
15632 rev = "refs/tags/${version}";
15633 sha256 = "1pjrw7xhhqx7h4s08h1lsaa499r2ymc41zdknjimn6zlqdjdk1fb";
15634 };
15635
15636 doCheck = false;
15637 propagatedBuildInputs = with self; [ cornice mozsvc pybrowserid tokenlib ];
15638
15639 patchPhase = ''
15640 sed -i "s|'testfixtures'||" setup.py
15641 '';
15642
15643 meta = {
15644 maintainers = [ ];
15645 platforms = platforms.all;
15646 };
15647 };
15648
15649 tissue = buildPythonPackage rec {
15650 name = "tissue-0.9.2";
15651 src = pkgs.fetchurl {
15652 url = "http://pypi.python.org/packages/source/t/tissue/${name}.tar.gz";
15653 md5 = "87dbcdafff41bfa1b424413f79aa9153";
15654 };
15655
15656 buildInputs = with self; [ nose ];
15657 propagatedBuildInputs = with self; [ pep8 ];
15658
15659 meta = {
15660 maintainers = with maintainers; [ garbas iElectric ];
15661 platforms = platforms.all;
15662 };
15663 };
15664
15665
15666 tracing = buildPythonPackage rec {
15667 name = "tracing-${version}";
15668 version = "0.8";
15669
15670 src = pkgs.fetchurl rec {
15671 url = "http://code.liw.fi/debian/pool/main/p/python-tracing/python-tracing_${version}.orig.tar.gz";
15672 sha256 = "1l4ybj5rvrrcxf8csyq7qx52izybd502pmx70zxp46gxqm60d2l0";
15673 };
15674
15675 buildInputs = with self; [ sphinx ];
15676
15677 # error: invalid command 'test'
15678 doCheck = false;
15679
15680 meta = {
15681 homepage = http://liw.fi/tracing/;
15682 description = "Python debug logging helper";
15683 maintainers = with maintainers; [ rickynils ];
15684 };
15685 };
15686
15687 translationstring = buildPythonPackage rec {
15688 name = "translationstring-1.3";
15689
15690 src = pkgs.fetchurl {
15691 url = "http://pypi.python.org/packages/source/t/translationstring/${name}.tar.gz";
15692 md5 = "a4b62e0f3c189c783a1685b3027f7c90";
15693 };
15694
15695 meta = {
15696 maintainers = with maintainers; [ garbas iElectric ];
15697 platforms = platforms.all;
15698 };
15699 };
15700
15701
15702 ttystatus = buildPythonPackage rec {
15703 name = "ttystatus-${version}";
15704 version = "0.23";
15705 disabled = isPy3k;
15706
15707 src = pkgs.fetchurl rec {
15708 url = "http://code.liw.fi/debian/pool/main/p/python-ttystatus/python-ttystatus_${version}.orig.tar.gz";
15709 sha256 = "0ymimviyjyh2iizqilg88g4p26f5vpq1zm3cvg7dr7q4y3gmik8y";
15710 };
15711
15712 buildInputs = with self; [ sphinx ];
15713
15714 # error: invalid command 'test'
15715 doCheck = false;
15716
15717 meta = {
15718 homepage = http://liw.fi/ttystatus/;
15719 description = "Progress and status updates on terminals for Python";
15720 maintainers = with maintainers; [ rickynils ];
15721 };
15722 };
15723
15724 larch = buildPythonPackage rec {
15725 name = "larch-${version}";
15726 version = "1.20131130";
15727
15728 src = pkgs.fetchurl rec {
15729 url = "http://code.liw.fi/debian/pool/main/p/python-larch/python-larch_${version}.orig.tar.gz";
15730 sha256 = "1hfanp9l6yc5348i3f5sb8c5s4r43y382hflnbl6cnz4pm8yh5r7";
15731 };
15732
15733 buildInputs = with self; [ sphinx ];
15734 propagatedBuildInputs = with self; [ tracing ttystatus cliapp ];
15735
15736 # error: invalid command 'test'
15737 doCheck = false;
15738
15739 meta = {
15740 homepage = http://liw.fi/larch/;
15741 description = "Python B-tree library";
15742 maintainers = with maintainers; [ rickynils ];
15743 };
15744 };
15745
15746
15747 websocket_client = buildPythonPackage rec {
15748 name = "websocket_client-0.32.0";
15749
15750 src = pkgs.fetchurl {
15751 url = "https://pypi.python.org/packages/source/w/websocket-client/${name}.tar.gz";
15752 md5 = "b07a897511a3c585251fe2ea85a9d9d9";
15753 };
15754
15755 propagatedBuildInputs = with self; [ six backports_ssl_match_hostname_3_4_0_2 unittest2 argparse ];
15756
15757 meta = {
15758 homepage = https://github.com/liris/websocket-client;
15759 description = "Websocket client for python";
15760 license = licenses.lgpl2;
15761 };
15762 };
15763
15764
15765 webhelpers = buildPythonPackage rec {
15766 name = "WebHelpers-1.3";
15767
15768 src = pkgs.fetchurl {
15769 url = "http://pypi.python.org/packages/source/W/WebHelpers/${name}.tar.gz";
15770 md5 = "32749ffadfc40fea51075a7def32588b";
15771 };
15772
15773 buildInputs = with self; [ routes markupsafe webob nose ];
15774
15775 # TODO: failing tests https://bitbucket.org/bbangert/webhelpers/pull-request/1/fix-error-on-webob-123/diff
15776 doCheck = false;
15777
15778 meta = {
15779 maintainers = with maintainers; [ garbas iElectric ];
15780 platforms = platforms.all;
15781 };
15782 };
15783
15784 whisper = buildPythonPackage rec {
15785 name = "whisper-${version}";
15786 version = "0.9.12";
15787
15788 src = pkgs.fetchurl {
15789 url = "https://pypi.python.org/packages/source/w/whisper/${name}.tar.gz";
15790 md5 = "5fac757cc4822ab0678dbe0d781d904e";
15791 };
15792
15793 # error: invalid command 'test'
15794 doCheck = false;
15795
15796 meta = {
15797 homepage = http://graphite.wikidot.com/;
15798 description = "Fixed size round-robin style database";
15799 maintainers = with maintainers; [ rickynils offline ];
15800 };
15801 };
15802
15803 carbon = buildPythonPackage rec {
15804 name = "carbon-${version}";
15805 version = "0.9.12";
15806
15807 src = pkgs.fetchurl {
15808 url = "https://pypi.python.org/packages/source/c/carbon/${name}.tar.gz";
15809 md5 = "66967d5a622fd29973838fcd10eb34f3";
15810 };
15811
15812 propagatedBuildInputs = with self; [ whisper txamqp zope_interface twisted ];
15813
15814 # error: invalid command 'test'
15815 doCheck = false;
15816
15817 meta = {
15818 homepage = http://graphite.wikidot.com/;
15819 description = "Backend data caching and persistence daemon for Graphite";
15820 maintainers = with maintainers; [ rickynils offline ];
15821 };
15822 };
15823
15824
15825 ujson = buildPythonPackage rec {
15826 name = "ujson-1.33";
15827
15828 disabled = isPyPy;
15829
15830 src = pkgs.fetchurl {
15831 url = "https://pypi.python.org/packages/source/u/ujson/${name}.zip";
15832 md5 = "8148a2493fff78940feab1e11dc0a893";
15833 };
15834
15835 meta = {
15836 homepage = http://pypi.python.org/pypi/ujson;
15837 description = "Ultra fast JSON encoder and decoder for Python";
15838 license = licenses.bsd3;
15839 };
15840 };
15841
15842
15843 unidecode = buildPythonPackage rec {
15844 name = "Unidecode-0.04.12";
15845
15846 src = pkgs.fetchurl {
15847 url = "http://pypi.python.org/packages/source/U/Unidecode/${name}.tar.gz";
15848 md5 = "351dc98f4512bdd2e93f7a6c498730eb";
15849 };
15850
15851 meta = {
15852 homepage = http://pypi.python.org/pypi/Unidecode/;
15853 description = "ASCII transliterations of Unicode text";
15854 license = licenses.gpl2;
15855 maintainers = with maintainers; [ iElectric ];
15856 };
15857 };
15858
15859
15860 pyusb = buildPythonPackage rec {
15861 name = "pyusb-1.0.0b2";
15862
15863 src = pkgs.fetchurl {
15864 url = "https://pypi.python.org/packages/source/p/pyusb/${name}.tar.gz";
15865 md5 = "5cc9c7dd77b4d12fcc22fee3b39844bc";
15866 };
15867
15868 # Fix the USB backend library lookup
15869 postPatch = ''
15870 libusb=${pkgs.libusb1}/lib/libusb-1.0.so
15871 test -f $libusb || { echo "ERROR: $libusb doesn't exist, please update/fix this build expression."; exit 1; }
15872 sed -i -e "s|libname = .*|libname = \"$libusb\"|" usb/backend/libusb1.py
15873 '';
15874
15875 meta = {
15876 description = "Python USB access module (wraps libusb 1.0)"; # can use other backends
15877 homepage = http://pyusb.sourceforge.net/;
15878 license = licenses.bsd3;
15879 maintainers = with maintainers; [ bjornfor ];
15880 };
15881 };
15882
15883
15884 usbtmc = buildPythonPackage rec {
15885 name = "usbtmc-${version}";
15886 version = "0.6";
15887
15888 src = pkgs.fetchurl {
15889 url = "https://github.com/python-ivi/python-usbtmc/archive/v${version}.tar.gz";
15890 sha256 = "1wnw6ndc3s1i8zpbikz5zc40ijvpraqdb0xn8zmqlyn95xxfizw2";
15891 };
15892
15893 propagatedBuildInputs = with self; [ pyusb ];
15894
15895 meta = {
15896 description = "Python implementation of the USBTMC instrument control protocol";
15897 homepage = http://alexforencich.com/wiki/en/python-usbtmc/start;
15898 license = licenses.mit;
15899 maintainers = with maintainers; [ bjornfor ];
15900 };
15901 };
15902
15903
15904 txamqp = buildPythonPackage rec {
15905 name = "txamqp-${version}";
15906 version = "0.3";
15907
15908 src = pkgs.fetchurl rec {
15909 url = "https://launchpad.net/txamqp/trunk/${version}/+download/python-txamqp_${version}.orig.tar.gz";
15910 sha256 = "1r2ha0r7g14i4b5figv2spizjrmgfpspdbl1m031lw9px2hhm463";
15911 };
15912
15913 buildInputs = with self; [ twisted ];
15914
15915 meta = {
15916 homepage = https://launchpad.net/txamqp;
15917 description = "Library for communicating with AMQP peers and brokers using Twisted";
15918 maintainers = with maintainers; [ rickynils ];
15919 };
15920 };
15921
15922 versiontools = buildPythonPackage rec {
15923 name = "versiontools-1.9.1";
15924 doCheck = (!isPy3k);
15925
15926 src = pkgs.fetchurl {
15927 url = "https://pypi.python.org/packages/source/v/versiontools/${name}.tar.gz";
15928 sha256 = "1xhl6kl7f4srgnw6zw4lr8j2z5vmrbaa83nzn2c9r2m1hwl36sd9";
15929 };
15930
15931 };
15932
15933 graphite_web = buildPythonPackage rec {
15934 name = "graphite-web-${version}";
15935 version = "0.9.12";
15936
15937 src = pkgs.fetchurl rec {
15938 url = "https://pypi.python.org/packages/source/g/graphite-web/${name}.tar.gz";
15939 md5 = "8edbb61f1ffe11c181bd2cb9ec977c72";
15940 };
15941
15942 propagatedBuildInputs = with self; [ django_1_3 django_tagging modules.sqlite3 whisper pkgs.pycairo ldap memcached ];
15943
15944 postInstall = ''
15945 wrapProgram $out/bin/run-graphite-devel-server.py \
15946 --prefix PATH : ${pkgs.which}/bin
15947 '';
15948
15949 preConfigure = ''
15950 substituteInPlace webapp/graphite/thirdparty/pytz/__init__.py --replace '/usr/share/zoneinfo' '/etc/zoneinfo'
15951 substituteInPlace webapp/graphite/settings.py --replace "join(WEBAPP_DIR, 'content')" "join('$out', 'webapp', 'content')"
15952 cp webapp/graphite/manage.py bin/manage-graphite.py
15953 substituteInPlace bin/manage-graphite.py --replace 'settings' 'graphite.settings'
15954 '';
15955
15956 # error: invalid command 'test'
15957 doCheck = false;
15958
15959 meta = {
15960 homepage = http://graphite.wikidot.com/;
15961 description = "Enterprise scalable realtime graphing";
15962 maintainers = with maintainers; [ rickynils offline ];
15963 };
15964 };
15965
15966 graphite_api = buildPythonPackage rec {
15967 name = "graphite-api-1.0.1";
15968 disabled = isPyPy;
15969
15970 src = pkgs.fetchgit {
15971 url = "https://github.com/brutasse/graphite-api.git";
15972 rev = "b6f75e8a08fae695c094fece6de611b893fc65fb";
15973 sha256 = "41b90d5f35e99a020a6b1b77938690652521d1841b3165574fcfcee807ce4e6a";
15974 };
15975
15976 checkPhase = "nosetests";
15977
15978 propagatedBuildInputs = with self; [
15979 flask
15980 flask_cache
15981 cairocffi
15982 pyparsing
15983 pytz
15984 pyyaml
15985 raven
15986 six
15987 structlog
15988 tzlocal
15989 ];
15990
15991 buildInputs = with self; [
15992 nose
15993 mock
15994 ];
15995
15996 LD_LIBRARY_PATH = "${pkgs.cairo}/lib";
15997
15998 meta = {
15999 description = "Graphite-web, without the interface. Just the rendering HTTP API";
16000 homepage = https://github.com/brutasse/graphite-api;
16001 license = licenses.asl20;
16002 };
16003 };
16004
16005 graphite_beacon = buildPythonPackage rec {
16006 name = "graphite_beacon-0.22.1";
16007
16008 src = pkgs.fetchurl {
16009 url = "https://pypi.python.org/packages/source/g/graphite_beacon/${name}.tar.gz";
16010 md5 = "3d7b2bf8a41b6c3ec5ba2c14db321096";
16011 };
16012
16013 propagatedBuildInputs = [ self.tornado ];
16014
16015 preBuild = "> requirements.txt";
16016
16017 meta = {
16018 description = "A simple alerting application for Graphite metrics";
16019 homepage = https://github.com/klen/graphite-beacon;
16020 maintainers = [ maintainers.offline ];
16021 license = licenses.mit;
16022 };
16023 };
16024
16025 graphite_influxdb = buildPythonPackage rec {
16026 name = "graphite-influxdb-0.3";
16027
16028 src = pkgs.fetchgit {
16029 url = "https://github.com/vimeo/graphite-influxdb.git";
16030 rev = "2273d12a24e1d804685a36debfd4224b7416b62f";
16031 sha256 = "e386eaf190793d3ad0a42a74b9e137a968a51fc3806f602ff756e09c0c0648a8";
16032 };
16033
16034 propagatedBuildInputs = with self; [ influxdb graphite_api ];
16035
16036 passthru.moduleName = "graphite_influxdb.InfluxdbFinder";
16037
16038 meta = {
16039 description = "An influxdb backend for Graphite-web and graphite-api";
16040 homepage = https://github.com/vimeo/graphite-influxdb;
16041 license = licenses.asl20;
16042 };
16043 };
16044
16045 graphite_pager = buildPythonPackage rec {
16046 name = "graphite-pager-${version}";
16047 version = "2bbfe91220ec1e0ca1cdf4b5564386482a44ed7d";
16048
16049 src = pkgs.fetchgit {
16050 url = "https://github.com/offlinehacker/graphite-pager.git";
16051 sha256 = "aa932f941efe4ed89971fe7572218b020d1a144259739ef78db6397b968eef62";
16052 rev = version;
16053 };
16054
16055 buildInputs = with self; [ nose mock ];
16056 propagatedBuildInputs = with self; [
16057 jinja2 pyyaml redis requests pagerduty
16058 python_simple_hipchat pushbullet
16059 ];
16060
16061 patchPhase = "> requirements.txt";
16062 checkPhase = "nosetests";
16063
16064 meta = {
16065 description = "A simple alerting application for Graphite metrics";
16066 homepage = https://github.com/seatgeek/graphite-pager;
16067 maintainers = with maintainers; [ offline ];
16068 license = licenses.bsd2;
16069 };
16070 };
16071
16072
16073 pyspotify = buildPythonPackage rec {
16074 name = "pyspotify-${version}";
16075
16076 version = "1.12";
16077
16078 src = pkgs.fetchurl {
16079 url = "https://github.com/mopidy/pyspotify/archive/v${version}.tar.gz";
16080 sha256 = "0bj6p4hafj1yp0j5n1rxww39nvi3w6y3azadz8a8nxb3b4a8f1xn";
16081 };
16082
16083 buildInputs = with self; [ pkgs.libspotify ]
16084 ++ stdenv.lib.optional stdenv.isDarwin pkgs.install_name_tool;
16085
16086 # python zip complains about old timestamps
16087 preConfigure = ''
16088 find -print0 | xargs -0 touch
16089 '';
16090
16091 postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
16092 find "$out" -name _spotify.so -exec \
16093 install_name_tool -change \
16094 @loader_path/../Frameworks/libspotify.framework/libspotify \
16095 ${pkgs.libspotify}/lib/libspotify.dylib \
16096 {} \;
16097 '';
16098
16099 # There are no tests
16100 doCheck = false;
16101
16102 meta = {
16103 homepage = http://pyspotify.mopidy.com;
16104 description = "A Python interface to Spotify’s online music streaming service";
16105 license = licenses.unfree;
16106 maintainers = with maintainers; [ lovek323 rickynils ];
16107 platforms = platforms.unix;
16108 };
16109 };
16110
16111 pykka = buildPythonPackage rec {
16112 name = "pykka-${version}";
16113
16114 version = "1.2.0";
16115
16116 src = pkgs.fetchgit {
16117 url = "https://github.com/jodal/pykka.git";
16118 rev = "refs/tags/v${version}";
16119 sha256 = "17vv2q636zp2fvxrp7ckgnz1ifaffcj5vdxvfb4isd1d32c49amb";
16120 };
16121
16122 # There are no tests
16123 doCheck = false;
16124
16125 meta = {
16126 homepage = http://www.pykka.org;
16127 description = "A Python implementation of the actor model";
16128 maintainers = with maintainers; [ rickynils ];
16129 };
16130 };
16131
16132 ws4py = buildPythonPackage rec {
16133 name = "ws4py-${version}";
16134
16135 version = "git-20130303";
16136
16137 src = pkgs.fetchgit {
16138 url = "https://github.com/Lawouach/WebSocket-for-Python.git";
16139 rev = "ace276500ca7e4c357595e3773be151d37bcd6e2";
16140 sha256 = "04m4m3ncn7g4rb81xg5n28imns7rsq8d2w98gjpaib6vlmyly3g1";
16141 };
16142
16143 # python zip complains about old timestamps
16144 preConfigure = ''
16145 find -print0 | xargs -0 touch
16146 '';
16147
16148 # Tests depend on other packages
16149 doCheck = false;
16150
16151 meta = {
16152 homepage = https://ws4py.readthedocs.org;
16153 description = "A WebSocket package for Python";
16154 maintainers = with maintainers; [ rickynils ];
16155 };
16156 };
16157
16158 gdata = buildPythonPackage rec {
16159 name = "gdata-${version}";
16160 version = "2.0.17";
16161
16162 src = pkgs.fetchurl {
16163 url = "https://gdata-python-client.googlecode.com/files/${name}.tar.gz";
16164 # sha1 = "d2d9f60699611f95dd8c328691a2555e76191c0c";
16165 sha256 = "0bdaqmicpbj9v3p0swvyrqs7m35bzwdw1gy56d3k09np692jfwmd";
16166 };
16167
16168 # Fails with "error: invalid command 'test'"
16169 doCheck = false;
16170
16171 meta = {
16172 homepage = https://code.google.com/p/gdata-python-client/;
16173 description = "Python client library for Google data APIs";
16174 license = licenses.asl20;
16175 };
16176 };
16177
16178 IMAPClient = buildPythonPackage rec {
16179 name = "IMAPClient-${version}";
16180 version = "0.11";
16181 disabled = isPy34;
16182
16183 src = pkgs.fetchurl {
16184 url = "http://freshfoo.com/projects/IMAPClient/${name}.tar.gz";
16185 sha256 = "1w54h8gz25qf6ggazzp6xf7kvsyiadsjfkkk17gm0p6pmzvvccbn";
16186 };
16187
16188 buildInputs = with self; [ mock ];
16189
16190 preConfigure = ''
16191 sed -i '/distribute_setup/d' setup.py
16192 substituteInPlace setup.py --replace "mock==0.8.0" "mock"
16193 '';
16194
16195 meta = {
16196 homepage = http://imapclient.freshfoo.com/;
16197 description = "Easy-to-use, Pythonic and complete IMAP client library";
16198 license = licenses.bsd3;
16199 };
16200 };
16201
16202 Logbook = buildPythonPackage rec {
16203 name = "Logbook-${version}";
16204 version = "0.4.2";
16205
16206 src = pkgs.fetchurl {
16207 url = "https://pypi.python.org/packages/source/L/Logbook/${name}.tar.gz";
16208 # md5 = "143cb15af4c4a784ca785a1546ad1b93";
16209 sha256 = "1g2pnhxh7m64qsrs0ifwcmpfk7gqjvrawd8z66i001rsdnq778v0";
16210 };
16211
16212 meta = {
16213 homepage = http://pythonhosted.org/Logbook/;
16214 description = "A logging replacement for Python";
16215 license = licenses.bsd3;
16216 };
16217 };
16218
16219 libvirt = pkgs.stdenv.mkDerivation rec {
16220 name = "libvirt-python-${version}";
16221 version = "1.2.17";
16222
16223 src = pkgs.fetchurl {
16224 url = "http://libvirt.org/sources/python/${name}.tar.gz";
16225 sha256 = "1v9nkfik75bmcrdqzc8al8qf0dsaw56fzfv2kr8s4058290dplzl";
16226 };
16227
16228 buildInputs = with self; [ python pkgs.pkgconfig pkgs.libvirt lxml ];
16229
16230 buildPhase = "${python.interpreter} setup.py build";
16231
16232 installPhase = "${python.interpreter} setup.py install --prefix=$out";
16233
16234 meta = {
16235 homepage = http://www.libvirt.org/;
16236 description = "libvirt Python bindings";
16237 license = licenses.lgpl2;
16238 };
16239 };
16240
16241 searx = buildPythonPackage rec {
16242 name = "searx-0.7.0";
16243
16244 src = pkgs.fetchurl {
16245 url = "https://github.com/asciimoo/searx/archive/v0.7.0.tar.gz";
16246 sha256 = "0vq2zjdr1c8mr3zkycqq3732zf4pybbbrs3kzplqgf851k9zfpbw";
16247 };
16248
16249 propagatedBuildInputs = with self; [ pyyaml lxml grequests flaskbabel flask requests
16250 gevent speaklater Babel pytz dateutil pygments ];
16251
16252 meta = {
16253 homepage = https://github.com/asciimoo/searx;
16254 description = "A privacy-respecting, hackable metasearch engine";
16255 license = licenses.agpl3Plus;
16256 maintainers = with maintainers; [ matejc ];
16257 };
16258 };
16259
16260
16261 grequests = buildPythonPackage rec {
16262 name = "grequests-0.2.0";
16263
16264 src = pkgs.fetchurl {
16265 url = "http://pypi.python.org/packages/source/g/grequests/${name}.tar.gz";
16266 sha256 = "0lafzax5igbh8y4x0krizr573wjsxz7bhvwygiah6qwrzv83kv5c";
16267 };
16268
16269 buildInputs = with self; [ requests gevent ];
16270
16271 meta = {
16272 description = "Asynchronous HTTP requests";
16273 homepage = https://github.com/kennethreitz/grequests;
16274 license = "bsd";
16275 maintainers = with maintainers; [ matejc ];
16276 };
16277 };
16278
16279 flaskbabel = buildPythonPackage rec {
16280 name = "Flask-Babel-0.9";
16281
16282 src = pkgs.fetchurl {
16283 url = "http://pypi.python.org/packages/source/F/Flask-Babel/${name}.tar.gz";
16284 sha256 = "0k7vk4k54y55ma0nx2k5s0phfqbriwslhy5shh3b0d046q7ibzaa";
16285 };
16286
16287 buildInputs = with self; [ flask jinja2 speaklater Babel pytz ];
16288
16289 meta = {
16290 description = "Adds i18n/l10n support to Flask applications";
16291 homepage = https://github.com/mitsuhiko/flask-babel;
16292 license = "bsd";
16293 maintainers = with maintainers; [ matejc ];
16294 };
16295 };
16296
16297 speaklater = buildPythonPackage rec {
16298 name = "speaklater-1.3";
16299
16300 src = pkgs.fetchurl {
16301 url = "http://pypi.python.org/packages/source/s/speaklater/${name}.tar.gz";
16302 sha256 = "1ab5dbfzzgz6cnz4xlwx79gz83id4bhiw67k1cgqrlzfs0va7zjr";
16303 };
16304
16305 meta = {
16306 description = "implements a lazy string for python useful for use with gettext";
16307 homepage = https://github.com/mitsuhiko/speaklater;
16308 license = "bsd";
16309 maintainers = with maintainers; [ matejc ];
16310 };
16311 };
16312
16313 pushbullet = buildPythonPackage rec {
16314 name = "pushbullet.py-${version}";
16315 version = "0.5.0";
16316
16317 src = pkgs.fetchurl {
16318 url = "https://pypi.python.org/packages/source/p/pushbullet.py/pushbullet.py-0.5.0.tar.gz";
16319 md5 = "36c83ba5f7d5208bb86c00eba633f921";
16320 };
16321
16322 propagatedBuildInputs = with self; [requests websocket_client python_magic ];
16323 };
16324
16325 power = buildPythonPackage rec {
16326 name = "power-1.2";
16327
16328 src = pkgs.fetchurl {
16329 url = "http://pypi.python.org/packages/source/p/power/${name}.tar.gz";
16330 sha256 = "09a00af8357f63dbb1a1eb13b82e39ccc0a14d6d2e44e5b235afe60ce8ee8195";
16331 };
16332
16333 meta = {
16334 description = "Cross-platform system power status information";
16335 homepage = https://github.com/Kentzo/Power;
16336 license = licenses.mit;
16337 };
16338 };
16339
16340 udiskie = buildPythonPackage rec {
16341 version = "1.1.2";
16342 name = "udiskie-${version}";
16343
16344 src = pkgs.fetchurl {
16345 url = "https://github.com/coldfix/udiskie/archive/${version}.tar.gz";
16346 sha256 = "07fyvwp4rga47ayfsmb79p2784sqrih0sglwnd9c4x6g63xgljvb";
16347 };
16348
16349 preConfigure = ''
16350 export XDG_RUNTIME_DIR=/tmp
16351 '';
16352
16353 propagatedBuildInputs = with self; [ pkgs.gobjectIntrospection pkgs.gtk3 pyyaml pygobject3 pkgs.libnotify pkgs.udisks2 pkgs.gettext self.docopt ];
16354
16355 preFixup = ''
16356 wrapProgram "$out/bin/"* \
16357 --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH"
16358 '';
16359
16360 # tests require dbusmock
16361 doCheck = false;
16362
16363 meta = {
16364 description = "Removable disk automounter for udisks";
16365 license = licenses.mit;
16366 homepage = https://github.com/coldfix/udiskie;
16367 maintainers = with maintainers; [ AndersonTorres ];
16368 };
16369 };
16370
16371 pythonefl_1_15 = buildPythonPackage rec {
16372 name = "python-efl-${version}";
16373 version = "1.15.0";
16374 src = pkgs.fetchurl {
16375 url = "http://download.enlightenment.org/rel/bindings/python/${name}.tar.gz";
16376 sha256 = "1k3vb7pb70l2v1s2mzg91wvmncq93vb04vn60pzdlrnbcns0grhi";
16377 };
16378 preConfigure = ''
16379 export NIX_CFLAGS_COMPILE="$(pkg-config --cflags efl) -I${self.dbus}/include/dbus-1.0 $NIX_CFLAGS_COMPILE"
16380 '';
16381 buildInputs = with self; [ pkgs.pkgconfig pkgs.e19.efl pkgs.e19.elementary ];
16382 meta = {
16383 description = "Python bindings for EFL and Elementary";
16384 homepage = http://enlightenment.org/;
16385 maintainers = with maintainers; [ matejc tstrobel ftrvxmtrx ];
16386 platforms = platforms.linux;
16387 license = licenses.gpl3;
16388 };
16389 };
16390
16391 toposort = buildPythonPackage rec {
16392 name = "toposort-${version}";
16393 version = "1.1";
16394 src = pkgs.fetchurl {
16395 url = "https://pypi.python.org/packages/source/t/toposort/toposort-1.1.tar.gz";
16396 sha256 = "1izmirbwmd9xrk7rq83p486cvnsslfa5ljvl7rijj1r64zkcnf3a";
16397 };
16398 meta = {
16399 description = "A topological sort algorithm";
16400 homepage = https://pypi.python.org/pypi/toposort/1.1;
16401 maintainers = with maintainers; [ tstrobel ];
16402 platforms = platforms.linux;
16403 #license = licenses.apache;
16404 };
16405 };
16406
16407 snapperGUI = buildPythonPackage rec {
16408 name = "Snapper-GUI";
16409
16410 src = pkgs.fetchgit {
16411 url = "https://github.com/ricardomv/snapper-gui";
16412 rev = "11d98586b122180c75a86fccda45c4d7e3137591";
16413 sha256 = "7a9f86fc17dbf130526e70c3e925eac30e2c74d6b932efbf7e7cd9fbba6dc4b1";
16414 };
16415
16416 # no tests available
16417 doCheck = false;
16418
16419 propagatedBuildInputs = with self; [ pygobject3 dbus ];
16420
16421 meta = {
16422 homepage = https://github.com/ricardomv/snapper-gui;
16423 description = "Graphical frontend for snapper";
16424 license = licenses.gpl2;
16425 maintainers = with maintainers; [ tstrobel ];
16426 };
16427 };
16428
16429
16430 redNotebook = buildPythonPackage rec {
16431 name = "rednotebook-1.8.1";
16432
16433 src = pkgs.fetchurl {
16434 url = "mirror://sourceforge/rednotebook/${name}.tar.gz";
16435 sha256 = "00b7s4xpqpxsbzjvjx9qsx5d84m9pvn383c5di1nsfh35pig0rzn";
16436 };
16437
16438 # no tests available
16439 doCheck = false;
16440
16441 propagatedBuildInputs = with self; [ pygtk pywebkitgtk pyyaml chardet ];
16442
16443 meta = {
16444 homepage = http://rednotebook.sourceforge.net/index.html;
16445 description = "A modern journal that includes a calendar navigation, customizable templates, export functionality and word clouds";
16446 license = licenses.gpl2;
16447 maintainers = with maintainers; [ tstrobel ];
16448 };
16449 };
16450
16451
16452 moreItertools = buildPythonPackage rec {
16453 name = "more-itertools-2.2";
16454
16455 disabled = isPy3k;
16456
16457 src = pkgs.fetchurl {
16458 url = "https://github.com/erikrose/more-itertools/archive/2.2.tar.gz";
16459 sha256 = "4606417182e0a1289e23fb7f964a64ca9fdaafb7c1999034dc4fa0cc5850c478";
16460 };
16461
16462 propagatedBuildInputs = with self; [ nose ];
16463
16464 meta = {
16465 homepage = https://more-itertools.readthedocs.org;
16466 description = "Expansion of the itertools module";
16467 license = licenses.mit;
16468 };
16469 };
16470
16471
16472 uncertainties = buildPythonPackage rec {
16473 name = "uncertainties-2.4.6.1";
16474
16475 src = pkgs.fetchurl {
16476 url = "https://github.com/lebigot/uncertainties/archive/2.4.6.1.tar.gz";
16477 sha256 = "993ad1a380185ff9548510401ed89fe96cf1f18ca48b44657356c8dcd3ad5032";
16478 };
16479
16480 buildInputs = with self; [ nose numpy ];
16481
16482 meta = {
16483 homepage = "http://pythonhosted.org/uncertainties/";
16484 description = "Transparent calculations with uncertainties on the quantities involved (aka error propagation)";
16485 license = licenses.bsd3;
16486 };
16487 };
16488
16489
16490 funcy = buildPythonPackage rec {
16491 name = "funcy-1.4";
16492
16493 src = pkgs.fetchurl {
16494 url = "https://github.com/Suor/funcy/archive/1.4.tar.gz";
16495 sha256 = "694e29aa67d03a6ab006f1854740b65f4f87e581afb33853f80e647ddb5f24e7";
16496 };
16497
16498 meta = {
16499 description = "Collection of fancy functional tools focused on practicality";
16500 homepage = "http://funcy.readthedocs.org/";
16501 license = licenses.bsd3;
16502
16503 };
16504 };
16505
16506 boto-230 = buildPythonPackage rec {
16507 name = "boto-2.30.0";
16508 disabled = ! isPy27;
16509 src = pkgs.fetchurl {
16510 url = https://pypi.python.org/packages/source/b/boto/boto-2.30.0.tar.gz;
16511 sha256 = "12gl8azmx1vv8dbv9jhnsbhjpc2dd1ng0jlbcg734k6ggwq1h6hh";
16512 };
16513 doCheck = false;
16514 meta = {
16515 homepage = https://github.com/boto/boto;
16516 license = licenses.mit;
16517 description = "Python interface to Amazon Web Services";
16518 };
16519 };
16520
16521 gcs-oauth2-boto-plugin = buildPythonPackage rec {
16522 name = "gcs-oauth2-boto-plugin-1.8";
16523 disabled = ! isPy27;
16524 src = pkgs.fetchurl {
16525 url = https://pypi.python.org/packages/source/g/gcs-oauth2-boto-plugin/gcs-oauth2-boto-plugin-1.8.tar.gz;
16526 sha256 = "0jy62y5bmaf1mb735lqwry1s5nx2qqrxvl5sxip9yg4miih3qkyb";
16527 };
16528 propagatedBuildInputs = with self; [ boto-230 httplib2 google_api_python_client retry_decorator pkgs.pyopenssl socksipy-branch ];
16529 meta = {
16530 homepage = https://developers.google.com/storage/docs/gspythonlibrary;
16531 description = "Provides OAuth 2.0 credentials that can be used with Google Cloud Storage";
16532 license = licenses.asl20;
16533 };
16534 };
16535
16536 gsutil = buildPythonPackage rec {
16537 name = "gsutil-4.6";
16538 disabled = ! isPy27;
16539 meta = {
16540 homepage = https://developers.google.com/storage/docs/gsutil;
16541 description = "Google Cloud Storage Tool";
16542 maintainers = [ "Russell O'Connor <oconnorr@google.com>" ];
16543 license = licenses.asl20;
16544 };
16545 doCheck = false;
16546
16547 src = pkgs.fetchurl {
16548 url = https://pypi.python.org/packages/source/g/gsutil/gsutil-4.6.tar.gz;
16549 sha256 = "1i0clm60162rbk45ljr8nsw4ndkzjnwb7r440shcqjrvw8jq49mn";
16550 };
16551
16552 propagatedBuildInputs = with self; [ boto-230 crcmod httplib2 gcs-oauth2-boto-plugin google_api_python_client gflags
16553 retry_decorator pkgs.pyopenssl socksipy-branch crcmod ];
16554 };
16555
16556 pypi2nix = self.buildPythonPackage rec {
16557 rev = "04a68d8577acbceb88bdf51b1231a9dbdead7003";
16558 name = "pypi2nix-1.0_${rev}";
16559 disabled = ! isPy27;
16560
16561 src = pkgs.fetchurl {
16562 url = "https://github.com/garbas/pypi2nix/tarball/${rev}";
16563 name = "${name}.tar.bz";
16564 sha256 = "1fv85x2bz442iyxsvka2g75zibjcq48gp2fc7szaqcfqxq42syy9";
16565 };
16566
16567 doCheck = false;
16568
16569 meta = {
16570 homepage = https://github.com/garbas/pypi2nix;
16571 description = "";
16572 maintainers = with maintainers; [ garbas ];
16573 };
16574 };
16575
16576 svg2tikz = self.buildPythonPackage {
16577 name = "svg2tikz-1.0.0";
16578 disabled = ! isPy27;
16579
16580 propagatedBuildInputs = with self; [lxml];
16581
16582 src = pkgs.fetchgit {
16583 url = "https://github.com/kjellmf/svg2tikz";
16584 sha256 = "429428ec435e53672b85cdfbb89bb8af0ff9f8238f5d05970729e5177d252d5f";
16585 rev = "ad36f2c3818da13c4136d70a0fd8153acf8daef4";
16586 };
16587
16588 meta = {
16589 homepage = https://github.com/kjellmf/svg2tikz;
16590 description = "An SVG to TikZ converter";
16591 license = licenses.gpl2Plus;
16592 maintainers = with maintainers; [ gal_bolle ];
16593 };
16594 };
16595
16596 syncserver = buildPythonPackage rec {
16597 name = "syncserver-${version}";
16598 version = "1.5.0";
16599 disabled = ! isPy27;
16600
16601 src = pkgs.fetchgit {
16602 url = https://github.com/mozilla-services/syncserver.git;
16603 rev = "refs/tags/${version}";
16604 sha256 = "1xljylycxg7351hmqh7aa6fvvsjg06zvd4r7hcjqyd0k0sxvk7y6";
16605 };
16606
16607 buildInputs = with self; [ unittest2 ];
16608 propagatedBuildInputs = with self; [
16609 cornice gunicorn pyramid requests simplejson sqlalchemy9 mozsvc tokenserver
16610 serversyncstorage configparser
16611 ];
16612
16613 meta = {
16614 maintainers = [ ];
16615 platforms = platforms.all;
16616 };
16617 };
16618
16619 serversyncstorage = buildPythonPackage rec {
16620 name = "serversyncstorage-${version}";
16621 version = "1.5.11";
16622 disabled = ! isPy27;
16623 src = pkgs.fetchgit {
16624 url = https://github.com/mozilla-services/server-syncstorage.git;
16625 rev = "refs/tags/${version}";
16626 sha256 = "1byq2k2f36f1jli9599ygfm2qsb4adl9140sxjpgfjbznb74q90q";
16627 };
16628
16629 propagatedBuildInputs = with self; [
16630 pyramid sqlalchemy9 simplejson mozsvc cornice pyramid_hawkauth pymysql
16631 pymysqlsa umemcache wsgiproxy2 requests pybrowserid
16632 ];
16633
16634 doCheck = false; # lazy packager
16635 };
16636
16637
16638 thumbor = self.buildPythonPackage rec {
16639 name = "thumbor-4.0.4";
16640 disabled = ! isPy27;
16641
16642 propagatedBuildInputs = with self; [
16643 # Remove pythonPackages.tornado 3.x once thumbor is updated to 5.x
16644 tornado_3
16645 pycrypto
16646 pycurl
16647 pillow
16648 derpconf
16649 python_magic
16650 thumborPexif
16651 (pkgs.opencv.override {
16652 gtk = null;
16653 glib = null;
16654 xineLib = null;
16655 gstreamer = null;
16656 ffmpeg = null;
16657 })
16658 ];
16659
16660 src = pkgs.fetchurl {
16661 url = "https://pypi.python.org/packages/source/t/thumbor/${name}.tar.gz";
16662 md5 = "cf639a1cc57ee287b299ace450444408";
16663 };
16664
16665 meta = {
16666 description = "A smart imaging service";
16667 homepage = https://github.com/globocom/thumbor/wiki;
16668 license = licenses.mit;
16669 };
16670 };
16671
16672 thumborPexif = self.buildPythonPackage rec {
16673 name = "thumbor-pexif-0.14";
16674 disabled = ! isPy27;
16675
16676 src = pkgs.fetchurl {
16677 url = "https://pypi.python.org/packages/source/t/thumbor-pexif/${name}.tar.gz";
16678 md5 = "fb4cdb60f4a0bead5193fb483ccd3430";
16679 };
16680
16681 meta = {
16682 description = "Module to parse and edit the EXIF data tags in a JPEG image";
16683 homepage = http://www.benno.id.au/code/pexif/;
16684 license = licenses.mit;
16685 };
16686 };
16687
16688 pync = buildPythonPackage rec {
16689 version = "1.4";
16690 baseName = "pync";
16691 name = "${baseName}-${version}";
16692 disabled = ! isPy27;
16693
16694 src = pkgs.fetchurl {
16695 url = "https://pypi.python.org/packages/source/p/${baseName}/${name}.tar.gz";
16696 md5 = "5cc79077f386a17b539f1e51c05a3650";
16697 };
16698
16699 buildInputs = with self; [ pkgs.coreutils ];
16700
16701 propagatedBuildInputs = with self; [ dateutil ];
16702
16703 preInstall = stdenv.lib.optionalString stdenv.isDarwin ''
16704 sed -i 's|^\([ ]*\)self.bin_path.*$|\1self.bin_path = "${pkgs.terminal-notifier}/bin/terminal-notifier"|' build/lib/pync/TerminalNotifier.py
16705 '';
16706
16707 meta = {
16708 description = "Python Wrapper for Mac OS 10.8 Notification Center";
16709 homepage = https://pypi.python.org/pypi/pync/1.4;
16710 license = licenses.mit;
16711 platforms = platforms.darwin;
16712 maintainers = with maintainers; [ lovek323 ];
16713 };
16714 };
16715
16716 weboob = buildPythonPackage rec {
16717 name = "weboob-1.0";
16718 disabled = ! isPy27;
16719
16720 src = pkgs.fetchurl {
16721 url = "https://symlink.me/attachments/download/289/${name}.tar.gz";
16722 md5 = "38f832f1b8654441adafe8558faa7109";
16723 };
16724
16725 setupPyBuildFlags = ["--qt" "--xdg"];
16726
16727 propagatedBuildInputs = with self; [ pillow prettytable pyyaml dateutil gdata requests2 mechanize feedparser lxml pkgs.gnupg pyqt4 pkgs.libyaml simplejson cssselect futures ];
16728
16729 meta = {
16730 homepage = http://weboob.org;
16731 description = "Collection of applications and APIs to interact with websites without requiring the user to open a browser";
16732 license = licenses.agpl3;
16733 maintainers = with maintainers; [ DamienCassou ];
16734 };
16735 };
16736
16737 datadiff = buildPythonPackage rec {
16738 name = "datadiff-1.1.6";
16739 disabled = ! isPy27;
16740
16741 src = pkgs.fetchurl {
16742 url = "https://pypi.python.org/packages/source/d/datadiff/datadiff-1.1.6.zip";
16743 md5 = "c34a690db75eead148aa5fa89e575d1e";
16744 };
16745
16746 buildInputs = with self; [ nose ];
16747
16748 meta = {
16749 description = "DataDiff";
16750 homepage = http://sourceforge.net/projects/datadiff/;
16751 license = licenses.asl20;
16752 };
16753 };
16754
16755 termcolor = buildPythonPackage rec {
16756 name = "termcolor-1.1.0";
16757 disabled = ! isPy27;
16758
16759 src = pkgs.fetchurl {
16760 url = "https://pypi.python.org/packages/source/t/termcolor/termcolor-1.1.0.tar.gz";
16761 md5 = "043e89644f8909d462fbbfa511c768df";
16762 };
16763
16764 meta = {
16765 description = "Termcolor";
16766 homepage = http://pypi.python.org/pypi/termcolor;
16767 license = licenses.mit;
16768 };
16769 };
16770
16771 html2text = buildPythonPackage rec {
16772 name = "html2text-2014.12.29";
16773 disabled = ! isPy27;
16774
16775 src = pkgs.fetchurl {
16776 url = "https://pypi.python.org/packages/source/h/html2text/html2text-2014.12.29.tar.gz";
16777 md5 = "c5bd796bdf7d1bfa43f55f1e2b5e4826";
16778 };
16779
16780 propagatedBuildInputs = with pythonPackages; [ ];
16781
16782 meta = {
16783 homepage = https://github.com/Alir3z4/html2text/;
16784 };
16785 };
16786
16787 pychart = buildPythonPackage rec {
16788 name = "pychart-1.39";
16789 disabled = ! isPy27;
16790
16791 src = pkgs.fetchurl {
16792 url = "http://download.gna.org/pychart/PyChart-1.39.tar.gz";
16793 sha256 = "882650928776a7ca72e67054a9e0ac98f78645f279c0cfb5910db28f03f07c2e";
16794 };
16795
16796 meta = {
16797 description = "Library for creating high quality encapsulated Postscript, PDF, PNG, or SVG charts";
16798 homepage = http://home.gna.org/pychart/;
16799 license = licenses.gpl2;
16800 };
16801 };
16802
16803 parsimonious = buildPythonPackage rec {
16804 name = "parsimonious-0.6.0";
16805 disabled = ! isPy27;
16806 src = pkgs.fetchurl {
16807 url = "https://github.com/erikrose/parsimonious/archive/0.6.tar.gz";
16808 sha256 = "7ad992448b69a3f3d943bac0be132bced3f13937c8ca150ba2fd1d7b6534f846";
16809 };
16810
16811 propagatedBuildInputs = with self; [ nose ];
16812
16813 meta = {
16814 homepage = "https://github.com/erikrose/parsimonious";
16815 description = "Fast arbitrary-lookahead packrat parser written in pure Python";
16816 license = licenses.mit;
16817 };
16818 };
16819
16820 networkx = buildPythonPackage rec {
16821 name = "networkx-1.9.1";
16822 disabled = ! isPy27;
16823
16824 src = pkgs.fetchurl {
16825 url = "https://pypi.python.org/packages/source/n/networkx/networkx-1.9.1.tar.gz";
16826 sha256 = "6380eb38d0b5770d7e50813c8a48ff7c373b2187b4220339c1adce803df01c59";
16827 };
16828
16829 propagatedBuildInputs = with self; [ nose decorator ];
16830
16831 meta = {
16832 homepage = "https://networkx.github.io/";
16833 description = "Library for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks";
16834 license = licenses.bsd3;
16835 };
16836 };
16837
16838 basemap = buildPythonPackage rec {
16839 name = "basemap-1.0.7";
16840 disabled = ! isPy27;
16841
16842 src = pkgs.fetchurl {
16843 url = "mirror://sourceforge/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz";
16844 sha256 = "0ca522zirj5sj10vg3fshlmgi615zy5gw2assapcj91vsvhc4zp0";
16845 };
16846
16847 propagatedBuildInputs = with self; [ numpy matplotlib pillow ];
16848 buildInputs = with self; with pkgs ; [ setuptools geos proj ];
16849
16850 # Standard configurePhase from `buildPythonPackage` seems to break the setup.py script
16851 configurePhase = ''
16852 export GEOS_DIR=${pkgs.geos}
16853 '';
16854
16855 # The installer does not support the '--old-and-unmanageable' option
16856 installPhase = ''
16857 ${python.interpreter} setup.py install --prefix $out
16858 '';
16859
16860 # The 'check' target is not supported by the `setup.py` script.
16861 # TODO : do the post install checks (`cd examples && ${python.interpreter} run_all.py`)
16862 doCheck = false;
16863
16864 meta = {
16865 homepage = "http://matplotlib.org/basemap/";
16866 description = "Plot data on map projections with matplotlib";
16867 longDescription = ''
16868 An add-on toolkit for matplotlib that lets you plot data on map projections with
16869 coastlines, lakes, rivers and political boundaries. See
16870 http://matplotlib.github.com/basemap/users/examples.html for examples of what it can do.
16871 '';
16872 license = with licenses; [ mit gpl2 ];
16873 };
16874 };
16875
16876 dicttoxml = buildPythonPackage rec {
16877 name = "dicttoxml-1.6.4";
16878
16879 src = pkgs.fetchurl {
16880 url = "https://pypi.python.org/packages/source/d/dicttoxml/dicttoxml-1.6.4.tar.gz";
16881 md5 = "154b47d2b7405280b871a81502a05657";
16882 };
16883
16884 propagatedBuildInputs = with self; [ ];
16885
16886 meta = {
16887 description = "Summary";
16888 homepage = https://github.com/quandyfactory/dicttoxml;
16889 };
16890 };
16891
16892
16893 markdown2 = buildPythonPackage rec {
16894 name = "markdown2-${version}";
16895 version = "2.3.0";
16896
16897 src = pkgs.fetchurl {
16898 url = "https://pypi.python.org/packages/source/m/markdown2/${name}.zip";
16899 sha256 = "073zyx3caqa9zlzxa82k9k2nhhn8c5imqpgp5nwqnh0fgaj9pqn8";
16900 };
16901 propagatedBuildInputs = with self; [];
16902 meta = {
16903 description = "A fast and complete Python implementation of Markdown";
16904 homepage = https://github.com/trentm/python-markdown2;
16905 license = licenses.mit;
16906 maintainers = with maintainers; [ hbunke ];
16907 };
16908 };
16909
16910
16911 evernote = buildPythonPackage rec {
16912 name = "evernote-${version}";
16913 version = "1.25.0";
16914 disabled = ! isPy27; #some dependencies do not work with py3
16915
16916 src = pkgs.fetchurl {
16917 url = "https://pypi.python.org/packages/source/e/evernote/${name}.tar.gz";
16918 sha256 = "1lwlg6fpi3530245jzham1400a5b855bm4sbdyck229h9kg1v02d";
16919 };
16920
16921 propagatedBuildInputs = with self; [ oauth2 ];
16922
16923 meta = {
16924 description = "Evernote SDK for Python";
16925 homepage = http://dev.evernote.com;
16926 license = licenses.asl20;
16927 maintainers = with maintainers; [ hbunke ];
16928 };
16929 };
16930
16931 thrift = buildPythonPackage rec {
16932 name = "thrift-${version}";
16933 version = "0.9.2";
16934
16935 src = pkgs.fetchurl {
16936 url = "https://pypi.python.org/packages/source/t/thrift/${name}.tar.gz";
16937 sha256 = "1yla6wg18x2a0l0lrvkp1v464hqhff98ck8pnv8d5j9kn3j6bxh8";
16938 };
16939
16940 meta = {
16941 description = "Python bindings for the Apache Thrift RPC system";
16942 homepage = http://thrift.apache.org/;
16943 license = licenses.asl20;
16944 maintainers = with maintainers; [ hbunke ];
16945
16946 };
16947 };
16948
16949 geeknote = buildPythonPackage rec {
16950 version = "2015-03-02";
16951 name = "geeknote-${version}";
16952 disabled = ! isPy27;
16953
16954 src = pkgs.fetchFromGitHub {
16955 owner = "VitaliyRodnenko";
16956 repo = "geeknote";
16957 rev = "7ea2255bb6";
16958 sha256 = "0lw3m8g7r8r7dxhqih08x0i6agd201q2ig35a59rd4vygr3xqw2j";
16959 };
16960
16961 /* build with tests fails with "Can not create application dirictory :
16962 /homeless-shelter/.geeknotebuilder". */
16963 doCheck = false;
16964
16965 propagatedBuildInputs = with self; [
16966 thrift
16967 beautifulsoup4
16968 markdown2
16969 sqlalchemy
16970 html2text
16971 evernote
16972 ];
16973
16974 meta = {
16975 description = "Work with Evernote from command line";
16976 homepage = http://www.geeknote.me;
16977 license = licenses.gpl1;
16978 maintainers = with maintainers; [ hbunke ];
16979
16980 };
16981 };
16982
16983 trollius = buildPythonPackage rec {
16984 version = "1.0.4";
16985 name = "trollius-${version}";
16986 disabled = isPy34;
16987
16988 src = pkgs.fetchurl {
16989 url = "https://pypi.python.org/packages/source/t/trollius/${name}.tar.gz";
16990 md5 = "3631a464d49d0cbfd30ab2918ef2b783";
16991 };
16992
16993 buildInputs = with self; [ mock ]
16994 ++ optional isPy26 unittest2;
16995
16996 propagatedBuildInputs = with self; []
16997 ++ optional isPy26 ordereddict
16998 ++ optional (isPy26 || isPy27 || isPyPy) futures;
16999
17000 # Some of the tests fail on darwin with `error: AF_UNIX path too long'
17001 # because of the *long* path names for sockets
17002 patchPhase = optionalString stdenv.isDarwin ''
17003 sed -i -e "s|test_create_ssl_unix_connection|skip_test_create_ssl_unix_connection|" tests/test_events.py
17004 sed -i -e "s|test_create_unix_connection|skip_test_create_unix_connection|" tests/test_events.py
17005 sed -i -e "s|test_create_unix_connection|skip_test_create_unix_connection|" tests/test_events.py
17006 sed -i -e "s|test_create_unix_connection|skip_test_create_unix_connection|" tests/test_events.py
17007 sed -i -e "s|test_create_unix_server_existing_path_nonsock|skip_test_create_unix_server_existing_path_nonsock|" tests/test_unix_events.py
17008 sed -i -e "s|test_create_unix_server_existing_path_sock|skip_test_create_unix_server_existing_path_sock|" tests/test_unix_events.py
17009 sed -i -e "s|test_create_unix_server_ssl_verified|skip_test_create_unix_server_ssl_verified|" tests/test_events.py
17010 sed -i -e "s|test_create_unix_server_ssl_verified|skip_test_create_unix_server_ssl_verified|" tests/test_events.py
17011 sed -i -e "s|test_create_unix_server_ssl_verified|skip_test_create_unix_server_ssl_verified|" tests/test_events.py
17012 sed -i -e "s|test_create_unix_server_ssl_verify_failed|skip_test_create_unix_server_ssl_verify_failed|" tests/test_events.py
17013 sed -i -e "s|test_create_unix_server_ssl_verify_failed|skip_test_create_unix_server_ssl_verify_failed|" tests/test_events.py
17014 sed -i -e "s|test_create_unix_server_ssl_verify_failed|skip_test_create_unix_server_ssl_verify_failed|" tests/test_events.py
17015 sed -i -e "s|test_create_unix_server_ssl|skip_test_create_unix_server_ssl|" tests/test_events.py
17016 sed -i -e "s|test_create_unix_server_ssl|skip_test_create_unix_server_ssl|" tests/test_events.py
17017 sed -i -e "s|test_create_unix_server_ssl|skip_test_create_unix_server_ssl|" tests/test_events.py
17018 sed -i -e "s|test_create_unix_server|skip_test_create_unix_server|" tests/test_events.py
17019 sed -i -e "s|test_create_unix_server|skip_test_create_unix_server|" tests/test_events.py
17020 sed -i -e "s|test_create_unix_server|skip_test_create_unix_server|" tests/test_events.py
17021 sed -i -e "s|test_open_unix_connection_error|skip_test_open_unix_connection_error|" tests/test_streams.py
17022 sed -i -e "s|test_open_unix_connection_no_loop_ssl|skip_test_open_unix_connection_no_loop_ssl|" tests/test_streams.py
17023 sed -i -e "s|test_open_unix_connection|skip_test_open_unix_connection|" tests/test_streams.py
17024 sed -i -e "s|test_start_unix_server|skip_test_start_unix_server|" tests/test_streams.py
17025 sed -i -e "s|test_unix_sock_client_ops|skip_test_unix_sock_client_ops|" tests/test_events.py
17026 sed -i -e "s|test_unix_sock_client_ops|skip_test_unix_sock_client_ops|" tests/test_events.py
17027 sed -i -e "s|test_unix_sock_client_ops|skip_test_unix_sock_client_ops|" tests/test_events.py
17028 '' + optionalString isPy26 ''
17029 sed -i -e "s|test_env_var_debug|skip_test_env_var_debug|" tests/test_tasks.py
17030 '';
17031
17032 meta = {
17033 description = "Port of the Tulip project (asyncio module, PEP 3156) on Python 2";
17034 homepage = "https://bitbucket.org/enovance/trollius";
17035 license = licenses.asl20;
17036 maintainers = with maintainers; [ garbas ];
17037 };
17038 };
17039
17040 neovim = buildPythonPackage rec {
17041 version = "0.0.36";
17042 name = "neovim-${version}";
17043
17044 src = pkgs.fetchurl {
17045 url = "https://pypi.python.org/packages/source/n/neovim/${name}.tar.gz";
17046 md5 = "8cdad23402e29c7c5a1e85770e976edf";
17047 };
17048
17049 propagatedBuildInputs = with self; [ msgpack ]
17050 ++ optional (!isPyPy) greenlet
17051 ++ optional (!isPy34) trollius;
17052
17053 meta = {
17054 description = "Python client for Neovim";
17055 homepage = "https://github.com/neovim/python-client";
17056 license = licenses.asl20;
17057 maintainers = with maintainers; [ garbas ];
17058 };
17059 };
17060
17061 ghp-import = buildPythonPackage rec {
17062 version = "0.4.1";
17063 name = "ghp-import-${version}";
17064 src = pkgs.fetchurl {
17065 url = "https://pypi.python.org/packages/source/g/ghp-import/${name}.tar.gz";
17066 md5 = "99e018372990c03ab355aa62c34965c5";
17067 };
17068 disabled = isPyPy;
17069 buildInputs = [ pkgs.glibcLocales ];
17070 preConfigure = ''
17071 export LC_ALL="en_US.UTF-8"
17072 '';
17073 meta = {
17074 description = "Copy your docs directly to the gh-pages branch.";
17075 homepage = "http://github.com/davisp/ghp-import";
17076 license = "Tumbolia Public License";
17077 maintainers = with maintainers; [ garbas ];
17078 };
17079 };
17080
17081 typogrify = buildPythonPackage rec {
17082 name = "typogrify-2.0.7";
17083 src = pkgs.fetchurl {
17084 url = "https://pypi.python.org/packages/source/t/typogrify/${name}.tar.gz";
17085 md5 = "63f38f80531996f187d2894cc497ba08";
17086 };
17087 disabled = isPyPy;
17088 propagatedBuildInputs = with self; [ smartypants ];
17089 meta = {
17090 description = "Filters to enhance web typography, including support for Django & Jinja templates";
17091 homepage = "https://github.com/mintchaos/typogrify";
17092 license = licenses.bsd3;
17093 maintainers = with maintainers; [ garbas ];
17094 };
17095 };
17096
17097 smartypants = buildPythonPackage rec {
17098 version = "1.8.6";
17099 name = "smartypants-${version}";
17100 src = pkgs.fetchhg {
17101 url = "https://bitbucket.org/livibetter/smartypants.py";
17102 rev = "v${version}";
17103 sha256 = "1cmzz44d2hm6y8jj2xcq1wfr26760gi7iq92ha8xbhb1axzd7nq6";
17104 };
17105 disabled = isPyPy;
17106 buildInputs = with self; [ ]; #docutils pygments ];
17107 meta = {
17108 description = "Python with the SmartyPants";
17109 homepage = "https://bitbucket.org/livibetter/smartypants.py";
17110 license = licenses.bsd3;
17111 maintainers = with maintainers; [ garbas ];
17112 };
17113 };
17114
17115 pypeg2 = buildPythonPackage rec {
17116 version = "2.15.1";
17117 name = "pypeg2-${version}";
17118
17119 src = pkgs.fetchurl {
17120 url = "https://pypi.python.org/packages/source/p/pyPEG2/pyPEG2-${version}.tar.gz";
17121 sha256 = "f4814a5f9c84bbb0794bef8d2a5871f4aed25366791c55e2162681873ad8bd21";
17122 };
17123
17124 meta = {
17125 description = "PEG parser interpreter in Python";
17126 homepage = http://fdik.org/pyPEG;
17127 license = licenses.gpl2;
17128 };
17129 };
17130
17131 jenkins-job-builder = buildPythonPackage rec {
17132 name = "jenkins-job-builder-1.2.0";
17133 disabled = ! (isPy26 || isPy27);
17134
17135 src = pkgs.fetchurl {
17136 url = "https://pypi.python.org/packages/source/j/jenkins-job-builder/${name}.tar.gz";
17137 md5 = "79e44ef0d3fffc19f415d8c0caac6b7b";
17138 };
17139
17140 # pbr required for jenkins-job-builder is <1.0.0 while many of the test
17141 # dependencies require pbr>=1.1
17142 doCheck = false;
17143
17144 buildInputs = with self; [
17145 pip
17146 ];
17147
17148 propagatedBuildInputs = with self; [
17149 pbr
17150 python-jenkins
17151 pyyaml
17152 six
17153 ] ++ optionals isPy26 [
17154 argparse
17155 ordereddict
17156 ];
17157
17158 meta = {
17159 description = "Jenkins Job Builder is a system for configuring Jenkins jobs using simple YAML files stored in Git.";
17160 homepage = "http://docs.openstack.org/infra/system-config/jjb.html";
17161 license = licenses.asl20;
17162 maintainers = with maintainers; [ garbas ];
17163 };
17164 };
17165
17166 dot2tex = buildPythonPackage rec {
17167 name = "dot2tex-2.9.0";
17168
17169 src = pkgs.fetchurl {
17170 url = "https://pypi.python.org/packages/source/d/dot2tex/dot2tex-2.9.0.tar.gz";
17171 md5 = "2dbaeac905424d0410751235bde4b8b2";
17172 };
17173
17174 propagatedBuildInputs = with self; [
17175 pyparsing
17176 ];
17177
17178 meta = {
17179 description = "Convert graphs generated by Graphviz to LaTeX friendly formats";
17180 homepage = "https://github.com/kjellmf/dot2tex";
17181 license = licenses.mit;
17182 };
17183 };
17184
17185 poezio = buildPythonPackage rec {
17186 name = "poezio-${version}";
17187 version = "0.9";
17188
17189 namePrefix = "";
17190 disabled = (!isPy34);
17191 propagatedBuildInputs = with self ; [ aiodns slixmpp ];
17192
17193 patches =
17194 let patch_base = ../development/python-modules/poezio ;
17195 in [ "${patch_base}/make_default_config_writable.patch"
17196 ];
17197
17198 src = pkgs.fetchurl {
17199 url = "http://dev.louiz.org/attachments/download/91/${name}.tar.xz";
17200 sha256 = "1vc7zn4rp0ds0cdh1xcmbwx6w2qh4pnpzi5mdnj3rpl7xdr6jqzi";
17201 };
17202
17203 meta = {
17204 description = "Free console XMPP client";
17205 homepage = http://poez.io;
17206 license = licenses.mit;
17207 maintainers = [ maintainers.lsix ];
17208 };
17209 };
17210
17211 xcffib = buildPythonPackage rec {
17212 version = "0.3.2";
17213 name = "xcffib-${version}";
17214
17215 src = pkgs.fetchurl {
17216 url = "https://pypi.python.org/packages/source/x/xcffib/${name}.tar.gz";
17217 md5 = "fa13f3fee67c83016a1242982a7c8bda";
17218 };
17219
17220 propagatedBuildInputs = [ self.cffi self.six ];
17221
17222 meta = {
17223 description = "A drop in replacement for xpyb, an XCB python binding";
17224 homepage = "https://github.com/tych0/xcffib";
17225 license = licenses.asl20;
17226 maintainers = with maintainers; [ kamilchm ];
17227 };
17228 };
17229
17230 pafy = buildPythonPackage rec {
17231 name = "pafy-${version}";
17232 version = "0.3.74";
17233
17234 src = pkgs.fetchurl {
17235 url = "https://pypi.python.org/packages/source/p/pafy/${name}.tar.gz";
17236 md5 = "fbf0e7f85914eaf35f87837232eec09c";
17237 };
17238
17239 propagatedBuildInputs = with self; [ youtube-dl ];
17240
17241 meta = with stdenv.lib; {
17242 description = "A library to download YouTube content and retrieve metadata";
17243 homepage = http://np1.github.io/pafy/;
17244 license = licenses.lgpl3Plus;
17245 maintainers = with maintainers; [ odi ];
17246 };
17247 };
17248
17249 suds = buildPythonPackage rec {
17250 name = "suds-0.4";
17251 disabled = isPy3k;
17252
17253 src = pkgs.fetchurl {
17254 url = "https://pypi.python.org/packages/source/s/suds/suds-0.4.tar.gz";
17255 md5 = "b7502de662341ed7275b673e6bd73191";
17256 };
17257
17258 meta = with stdenv.lib; {
17259 description = "Lightweight SOAP client";
17260 homepage = https://fedorahosted.org/suds;
17261 license = licenses.lgpl3Plus;
17262 };
17263 };
17264
17265 mps-youtube = buildPythonPackage rec {
17266 name = "mps-youtube-${version}";
17267 version = "0.2.5";
17268
17269 disabled = (!isPy3k);
17270
17271 src = pkgs.fetchFromGitHub {
17272 owner = "mps-youtube";
17273 repo = "mps-youtube";
17274 rev = "7e457d2b4700387b88a3c96579e13cb76ca1f06b";
17275 sha256 = "1811vlhgfi4rasjfsfdl7x174s75zk3x08p2z05wfcvinflfgxly";
17276 };
17277
17278 propagatedBuildInputs = with self; [ pafy ];
17279
17280 meta = with stdenv.lib; {
17281 description = "Terminal based YouTube player and downloader";
17282 homepage = http://github.com/np1/mps-youtube;
17283 license = licenses.gpl3;
17284 maintainers = with maintainers; [ odi ];
17285 };
17286 };
17287
17288 d2to1 = buildPythonPackage rec {
17289 name = "d2to1-${version}";
17290 version = "0.2.11";
17291
17292 buildInputs = with self; [ nose ];
17293 src = pkgs.fetchurl {
17294 url = "https://pypi.python.org/packages/source/d/d2to1/d2to1-${version}.tar.gz";
17295 sha256 = "1a5z367b7dpd6dgi0w8pymb68aj2pblk8w04l2c8hibhj8dpl2b4";
17296 };
17297
17298 meta = {
17299 description = "Support for distutils2-like setup.cfg files as package metadata";
17300 homepage = https://pypi.python.org/pypi/d2to1;
17301 license = licenses.bsd2;
17302 maintainers = [ maintainers.makefu ];
17303 };
17304 };
17305
17306 ovh = buildPythonPackage rec {
17307 name = "ovh-${version}";
17308 version = "0.3.5";
17309 doCheck = false; #test needs packages too explicit
17310 buildInputs = with self; [ d2to1 ];
17311 propagatedBuildInputs = with self; [ requests2 ];
17312
17313 src = pkgs.fetchurl {
17314 url = "https://pypi.python.org/packages/source/o/ovh/ovh-${version}.tar.gz";
17315 sha256 = "1y74lrdlgbb786mwas7ynphimfi00dgr67ncjq20kdf31jg5415n";
17316 };
17317
17318 meta = {
17319 description = "Thin wrapper around OVH's APIs";
17320 homepage = https://pypi.python.org/pypi/ovh;
17321 license = licenses.bsd2;
17322 maintainers = [ maintainers.makefu ];
17323 };
17324 };
17325
17326}; in pythonPackages