diff options
Diffstat (limited to 'pkgs/top-level/python-packages.nix')
-rw-r--r-- | pkgs/top-level/python-packages.nix | 1059 |
1 files changed, 936 insertions, 123 deletions
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 346648c94d3b..08b0281e66c6 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1,8 +1,84 @@ -{ pkgs, python, buildPythonPackage }: +{ pkgs, python }: + +let pythonPackages = python.modules // rec { + + inherit python; -rec { inherit (pkgs) fetchurl fetchsvn stdenv; + + buildPythonPackage = import ../development/python-modules/generic { + inherit (pkgs) lib; + inherit python wrapPython setuptools; + }; + + + setuptools = import ../development/python-modules/setuptools { + inherit (pkgs) stdenv fetchurl; + inherit python wrapPython; + }; + + + wrapPython = pkgs.makeSetupHook + { deps = pkgs.makeWrapper; + substitutions.libPrefix = python.libPrefix; + } + ../development/python-modules/generic/wrap.sh; + + + anyjson = buildPythonPackage rec { + name = "anyjson-0.3.1"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/a/anyjson/${name}.tar.gz"; + md5 = "2b53b5d53fc40af4da7268d3c3e35a50"; + }; + + buildInputs = [ nose ]; + + meta = { + homepage = http://pypi.python.org/pypi/anyjson/; + description = "Wrapper that selects the best available JSON implementation"; + }; + }; + + + amqplib = buildPythonPackage rec { + name = "amqplib-0.6.1"; + + src = fetchurl { + url = "http://py-amqplib.googlecode.com/files/${name}.tgz"; + sha1 = "f124e5e4a6644bf6d1734032a01ac44db1b25a29"; + }; + + doCheck = false; + + meta = { + homepage = http://code.google.com/p/py-amqplib/; + description = "Python client for the Advanced Message Queuing Procotol (AMQP)"; + }; + }; + + + apsw = buildPythonPackage rec { + name = "apsw-3.7.6.2-r1"; + + src = fetchurl { + url = "http://apsw.googlecode.com/files/${name}.zip"; + sha1 = "fa4aec08e59fa5964197f59ba42408d64031675b"; + }; + + buildInputs = [ pkgs.unzip pkgs.sqlite ]; + + doCheck = false; + + meta = { + description = "A Python wrapper for the SQLite embedded relational database engine"; + homepage = http://code.google.com/p/apsw/; + }; + }; + + argparse = buildPythonPackage (rec { name = "argparse-1.1"; @@ -34,6 +110,16 @@ rec { }; }); + astng = buildPythonPackage rec { + name = "logilab-astng-0.21.1"; + + src = fetchurl { + url = "http://ftp.logilab.org/pub/astng/${name}.tar.gz"; + sha256 = "0rqp2vwrnv6gkzdd96j078h1sz26plh49cmnyswy2wb6l4wans67"; + }; + propagatedBuildInputs = [logilabCommon]; + }; + beautifulsoap = buildPythonPackage (rec { name = "beautifulsoap-3.0.8"; @@ -54,12 +140,38 @@ rec { }; }); - boto = buildPythonPackage (rec { + + # euca2ools (and maybe Nova) needs boto 1.9, 2.0 doesn't work. + boto_1_9 = buildPythonPackage (rec { name = "boto-1.9b"; src = fetchurl { url = "http://boto.googlecode.com/files/${name}.tar.gz"; - sha256 = "0kir3ddm79rxdf7wb5czmxpbnqzgj3j966q4mach29kkb98p48wz"; + sha1 = "00a033b0a593c3ca82927867950f73d88b831155"; + }; + + meta = { + homepage = http://code.google.com/p/boto/; + + license = "bsd"; + + description = "Python interface to Amazon Web Services"; + + longDescription = '' + The boto module is an integrated interface to current and + future infrastructural services offered by Amazon Web + Services. This includes S3, SQS, EC2, among others. + ''; + }; + }); + + + boto = buildPythonPackage (rec { + name = "boto-2.0b4"; + + src = fetchurl { + url = "http://boto.googlecode.com/files/${name}.tar.gz"; + sha1 = "3e1deab58b8432d01baef1d37f17cbf6fa999f8d"; }; meta = { @@ -77,6 +189,46 @@ rec { }; }); + + carrot = buildPythonPackage rec { + name = "carrot-0.10.7"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/c/carrot/${name}.tar.gz"; + md5 = "530a0614de3a669314c3acd4995c54d5"; + }; + + buildInputs = [ nose ]; + + propagatedBuildInputs = [ amqplib anyjson ]; + + doCheck = false; # depends on the network + + meta = { + homepage = http://pypi.python.org/pypi/carrot; + description = "AMQP Messaging Framework for Python"; + }; + }; + + + cheetah = buildPythonPackage rec { + version = "2.4.4"; + name = "cheetah-${version}"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/C/Cheetah/Cheetah-${version}.tar.gz"; + md5 = "853917116e731afbc8c8a43c37e6ddba"; + }; + + propagatedBuildInputs = [ markdown ]; + + meta = { + homepage = http://www.cheetahtemplate.org/; + description = "A template engine and code generation tool"; + }; + }; + + cherrypy = buildPythonPackage (rec { name = "cherrypy-3.1.2"; @@ -133,18 +285,23 @@ rec { }); darcsver = buildPythonPackage (rec { - name = "darcsver-1.5.1"; + name = "darcsver-1.7.2"; src = fetchurl { url = "http://pypi.python.org/packages/source/d/darcsver/${name}.tar.gz"; - sha256 = "e643d607f27e4b8cc96565432ff1abdc2af5e9061c70798e2f33e78c07b66b3a"; + md5 = "94ca7e8c9ea0f69c0f3fc6f9fc88f65a"; }; + buildInputs = [ mock ]; + # Note: We don't actually need to provide Darcs as a build input. # Darcsver will DTRT when Darcs isn't available. See news.gmane.org # http://thread.gmane.org/gmane.comp.file-systems.tahoe.devel/3200 for a # discussion. + # Gives "ValueError: Empty module name" with no clue as to why. + doCheck = false; + meta = { description = "Darcsver, generate a version number from Darcs history"; @@ -171,6 +328,74 @@ rec { }; }); + + decorator = buildPythonPackage rec { + name = "decorator-3.3.1"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/d/decorator/${name}.tar.gz"; + md5 = "a8fc62acd705f487a71bc406e19e0cc6"; + }; + + meta = { + homepage = http://pypi.python.org/pypi/decorator; + }; + }; + + + distutils_extra = buildPythonPackage rec { + name = "distutils-extra-2.26"; + + src = fetchurl { + url = "http://launchpad.net/python-distutils-extra/trunk/2.26/+download/python-${name}.tar.gz"; + md5 = "7caded30a45907b5cdb10ac4182846eb"; + }; + + meta = { + homepage = https://launchpad.net/python-distutils-extra; + description = "Enhancements to Python's distutils"; + }; + }; + + + dtopt = buildPythonPackage rec { + name = "dtopt-0.1"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/d/dtopt/${name}.tar.gz"; + md5 = "9a41317149e926fcc408086aedee6bab"; + }; + + meta = { + description = "Add options to doctest examples while they are running"; + homepage = http://pypi.python.org/pypi/dtopt; + }; + }; + + + eventlet = buildPythonPackage rec { + name = "eventlet-0.9.16"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/e/eventlet/${name}.tar.gz"; + md5 = "4728e3bd7f72763c1e5dccac0296f8ea"; + }; + + buildInputs = [ nose httplib2 ]; + + propagatedBuildInputs = [ greenlet ]; + + PYTHON_EGG_CACHE = "`pwd`/.egg-cache"; + + doCheck = false; # !!! fix; tests access the network + + meta = { + homepage = http://pypi.python.org/pypi/eventlet/; + description = "A concurrent networking library for Python"; + }; + }; + + flup = buildPythonPackage (rec { name = "flup-1.0.2"; @@ -219,21 +444,13 @@ rec { }); genshi = buildPythonPackage { - name = "genshi-0.5.1"; + name = "genshi-0.6"; src = fetchurl { - url = http://ftp.edgewall.com/pub/genshi/Genshi-0.5.1.tar.bz2; - sha256 = "1g2xw3zvgz59ilv7mrdlnvfl6ph8lwflwd4jr6zwrca2zhj7d8rs"; + url = http://ftp.edgewall.com/pub/genshi/Genshi-0.6.tar.gz; + sha256 = "0jrajyppdzb3swcxv3w1mpp88vcy7400gy1v2h2gm3pq0dmggaij"; }; - patches = - [ # Fix `make check' (http://bugs.gentoo.org/276299) - (fetchurl { - url = "http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/dev-python/genshi/files/genshi-0.5.1_test_fix.patch?rev=1.1"; - sha256 = "019skkas07lc2kjy5br5jhhf9dqfy4fs389m5f4ws3fc62fklwhk"; - }) - ]; - buildInputs = [ pkgs.setuptools ]; meta = { @@ -249,6 +466,111 @@ rec { }; }; + genzshcomp = buildPythonPackage { + name = "genzshcomp-0.2.2"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/g/genzshcomp/genzshcomp-0.2.2.tar.gz"; + sha256 = "0bhiyx41kilvy04cgjbvjy2r4b6l7zz31fbrg3l6lvnqm26nihb0"; + }; + + buildInputs = [ pkgs.setuptools ]; + + meta = { + description = "automatically generated zsh completion function for Python's option parser modules"; + license = "BSD"; + maintainers = [ stdenv.lib.maintainers.simons ]; + platforms = python.meta.platforms; + }; + }; + + + gflags = buildPythonPackage rec { + name = "gflags-1.5.1"; + + src = fetchurl { + url = "http://python-gflags.googlecode.com/files/python-${name}.tar.gz"; + sha256 = "1p8blsc3z1wasi9dhbjij7m2czps17dll3cpj37v97fv5ww7al9v"; + }; + + meta = { + homepage = http://code.google.com/p/python-gflags/; + description = "A module for command line handling, similar to Google's gflags for C++"; + }; + }; + + + glance = buildPythonPackage rec { + name = "glance-0.1.7"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/g/glance/${name}.tar.gz"; + md5 = "e733713ccd23e4a6253386a47971cfb5"; + }; + + buildInputs = [ nose mox ]; + + propagatedBuildInputs = [ gflags sqlalchemy webob routes eventlet python.modules.ssl ]; + + PYTHON_EGG_CACHE = "`pwd`/.egg-cache"; + + meta = { + homepage = https://launchpad.net/glance; + description = "Services for discovering, registering, and retrieving virtual machine images"; + }; + }; + + + greenlet = buildPythonPackage rec { + name = "greenlet-0.3.1"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/g/greenlet/${name}.tar.gz"; + md5 = "8d75d7f3f659e915e286e1b0fa0e1c4d"; + }; + + meta = { + homepage = http://pypi.python.org/pypi/greenlet; + description = "Module for lightweight in-process concurrent programming"; + }; + }; + + + httplib2 = buildPythonPackage rec { + name = "httplib2-0.6.0"; + + src = fetchurl { + url = "http://httplib2.googlecode.com/files/${name}.tar.gz"; + sha256 = "134pldyxayc0x4akzzvkciz2kj1w2dsim1xvd9b1qrpmba70dpjq"; + }; + + doCheck = false; # doesn't have a test + + meta = { + homepage = http://code.google.com/p/httplib2/; + description = "A comprehensive HTTP client library"; + }; + }; + + + ipy = buildPythonPackage rec { + version = "0.74"; + name = "ipy-${version}"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/I/IPy/IPy-${version}.tar.gz"; + md5 = "f4f7ddc7c5e55a47222a5cc6c0a87b6d"; + }; + + doCheck = false; + + meta = { + description = "Class and tools for handling of IPv4 and IPv6 addresses and networks"; + homepage = http://pypi.python.org/pypi/IPy; + }; + }; + + jinja2 = buildPythonPackage { name = "jinja2-2.2.1"; @@ -269,6 +591,7 @@ rec { }; }; + libcloud = buildPythonPackage (rec { name = "libcloud-0.3.1"; @@ -287,6 +610,33 @@ rec { }; }); + + lockfile = buildPythonPackage rec { + name = "lockfile-0.9.1"; + + src = fetchurl { + url = "http://pylockfile.googlecode.com/files/${name}.tar.gz"; + sha1 = "1eebaee375641c9f29aeb21768f917dd2b985752"; + }; + + doCheck = false; # no tests + + meta = { + homepage = http://code.google.com/p/pylockfile/; + description = "Platform-independent advisory file locking capability for Python applications"; + }; + }; + + logilabCommon = buildPythonPackage rec { + name = "logilab-common-0.56.0"; + + src = fetchurl { + url = "http://ftp.logilab.org/pub/common/${name}.tar.gz"; + sha256 = "14p557nqypbd10d8k7qs6jlm58pksiwh86wvvl0axyki00hj6971"; + }; + propagatedBuildInputs = [unittest2]; + }; + lxml = buildPythonPackage ( rec { name = "lxml-2.2.2"; @@ -304,6 +654,66 @@ rec { }; }); + + magic = pkgs.stdenv.mkDerivation rec { + name = "python-${pkgs.file.name}"; + + src = pkgs.file.src; + + buildInputs = [ python pkgs.file ]; + + configurePhase = "cd python"; + + buildPhase = "python setup.py build"; + + installPhase = "python setup.py install --prefix=$out"; + + meta = { + description = "A Python wrapper around libmagic"; + homepage = http://www.darwinsys.com/file/; + }; + }; + + + m2crypto = buildPythonPackage rec { + version = "0.21.1"; + name = "m2crypto-${version}"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-${version}.tar.gz"; + md5 = "f93d8462ff7646397a9f77a2fe602d17"; + }; + + buildInputs = [ pkgs.swig pkgs.openssl ]; + + buildPhase = "python setup.py build_ext --openssl=${pkgs.openssl}"; + + doCheck = false; # another test that depends on the network. + + meta = { + description = "A Python crypto and SSL toolkit"; + homepage = http://chandlerproject.org/Projects/MeTooCrypto; + }; + }; + + + markdown = buildPythonPackage rec { + version = "2.0.3"; + name = "markdown-${version}"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/M/Markdown/Markdown-2.0.3.tar.gz"; + md5 = "751e8055be2433dfd1a82e0fb1b12f13"; + }; + + doCheck = false; + + meta = { + homepage = http://www.freewisdom.org/projects/python-markdown; + }; + }; + + matplotlib = buildPythonPackage ( rec { name = "matplotlib-0.99.1.2"; @@ -341,25 +751,16 @@ rec { }; }); + mock = buildPythonPackage (rec { - name = "mock-0.1.0"; + name = "mock-0.7.0"; src = fetchurl { - url = "mirror://sourceforge/python-mock/pythonmock-0.1.0.zip"; - sha256 = "0r17f8sjq6pjlfh2sq2x80bd5r6y9sb3n5l05x5sf25iaba7sg9z"; + url = "http://pypi.python.org/packages/source/m/mock/${name}.tar.gz"; + md5 = "be029f8c963c55250a452c400e10cf42"; }; - buildInputs = [ pkgs.unzip ]; - - phases = "unpackPhase"; - - unpackPhase = - '' mkdir "${name}" - unzip "$src" - - ensureDir "$out/lib/${python.libPrefix}/site-packages" - cp -v mock.py "$out/lib/${python.libPrefix}/site-packages" - ''; + buildInputs = [ unittest2 ]; meta = { description = "Mock objects for Python"; @@ -370,24 +771,23 @@ rec { }; }); - mock060 = pkgs.lowPrio (buildPythonPackage (rec { - # TODO: This appears to be an unofficially hacked version of 'mock' - # from above. This could probably replace the previous - # package, but I don't have time to test that right now. - name = "mock-0.6.0"; + + mox = buildPythonPackage rec { + name = "mox-0.5.3"; src = fetchurl { - url = "http://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-dep-sdists/${name}.tar.bz2"; - sha256 = "1vwxzr2sjyl3x5jqgz9swpmp6cyhmwmab65akysfglf6acmn3czf"; + url = "http://pymox.googlecode.com/files/${name}.tar.gz"; + sha1 = "b71aeaacf31898c3b38d8b9ca5bcc0664499c0de"; }; - doCheck = false; # Package doesn't have any tests. + + doCheck = false; meta = { - description = "Mock objects for Python, provided by tahoe-lafs.org"; - homepage = "http://python-mock.sourceforge.net/"; - license = "mBSD"; + homepage = http://code.google.com/p/pymox/; + description = "A mock object framework for Python."; }; - })); + }; + mutagen = buildPythonPackage (rec { name = "mutagen-1.20"; @@ -405,6 +805,26 @@ rec { }); + MySQL_python = buildPythonPackage { + name = "MySQL-python-1.2.3"; + + doCheck = false; + + src = fetchurl { + url = mirror://sourceforge/mysql-python/MySQL-python-1.2.3.tar.gz; + sha256 = "0vkyg9dmj29hzk7fy77f42p7bfj28skyzsjsjry4wqr3z6xnzrkx"; + }; + + propagatedBuildInputs = [ pkgs.mysql pkgs.zlib nose ]; + + meta = { + description = "MySQL database binding for Python"; + + homepage = http://sourceforge.net/projects/mysql-python; + }; + }; + + namebench = buildPythonPackage (rec { name = "namebench-1.0.5"; @@ -438,6 +858,24 @@ rec { }; }); + + netaddr = buildPythonPackage rec { + name = "netaddr-0.7.5"; + + src = fetchurl { + url = "https://github.com/downloads/drkjam/netaddr/${name}.tar.gz"; + sha256 = "0ssxic389rdc79zkz8dxcjpqdi5qs80h12khkag410cl9cwk11f2"; + }; + + doCheck = false; # there is no test command + + meta = { + homepage = https://github.com/drkjam/netaddr/; + description = "A network address manipulation library for Python"; + }; + }; + + nevow = buildPythonPackage (rec { name = "nevow-${version}"; version = "0.10.0"; @@ -480,13 +918,20 @@ rec { }); nose = buildPythonPackage { - name = "nose-0.11.3"; - + name = "nose-1.0.0"; + src = fetchurl { - url = http://python-nose.googlecode.com/files/nose-0.11.3.tar.gz; - sha256 = "1hl3lbwdfl2a64q3dxc73kbiks4iwx5cixlbavyryd8xdr7iziww"; + url = http://somethingaboutorange.com/mrl/projects/nose/nose-1.0.0.tar.gz; + sha256 = "0qm6q232h5r071gwfkiszkmfqc60k7abl15bk495lcdkk62m91db"; }; - + + # Fails with ‘This platform lacks a functioning sem_open + # implementation, therefore, the required synchronization + # primitives needed will not function, see issue 3770.’ However, + # our Python does seem to be built with the necessary + # functionality. + doCheck = false; + meta = { description = "A unittest-based testing framework for python that makes writing and running tests easier"; }; @@ -502,6 +947,8 @@ rec { buildInputs = [ python pkgs.pkgconfig pkgs.libnotify pkgs.pygobject pkgs.pygtk pkgs.gtkLibs.glib pkgs.gtkLibs.gtk pkgs.dbus_glib ]; + postInstall = "cd $out/lib/python*/site-packages && ln -s gtk-*/pynotify ."; + meta = { description = "Python bindings for libnotify"; homepage = http://www.galago-project.org/; @@ -533,6 +980,28 @@ rec { }; }); + optfunc = buildPythonPackage ( rec { + name = "optfunc-git"; + + src = pkgs.fetchgit { + url = "http://github.com/simonw/optfunc.git"; + rev = "e3fa034a545ed94ac5a039cf5b170c7d0ee21b7b"; + }; + + installCommand = '' + dest=$(toPythonPath $out)/optfunc + ensureDir $dest + cp * $dest/ + ''; + + doCheck = false; + + meta = { + description = "A new experimental interface to optparse which works by introspecting a function definition"; + homepage = "http://simonwillison.net/2009/May/28/optfunc/"; + }; + }); + ply = buildPythonPackage (rec { name = "ply-3.2"; @@ -600,6 +1069,46 @@ rec { }; }; + + paste = buildPythonPackage rec { + name = "paste-1.7.5.1"; + + src = fetchurl { + url = http://pypi.python.org/packages/source/P/Paste/Paste-1.7.5.1.tar.gz; + md5 = "7ea5fabed7dca48eb46dc613c4b6c4ed"; + }; + + buildInputs = [ nose ]; + + doCheck = false; # some files required by the test seem to be missing + + meta = { + description = "Tools for using a Web Server Gateway Interface stack"; + homepage = http://pythonpaste.org/; + }; + }; + + + paste_deploy = buildPythonPackage rec { + version = "1.3.4"; + name = "paste-deploy-${version}"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/P/PasteDeploy/PasteDeploy-${version}.tar.gz"; + md5 = "eb4b3e2543d54401249c2cbd9f2d014f"; + }; + + buildInputs = [ nose ]; + + doCheck = false; # can't find "FakeEgg.app", apparently missing from the tarball + + meta = { + description = "Load, configure, and compose WSGI applications and servers"; + homepage = http://pythonpaste.org/deploy/; + }; + }; + + pexpect = buildPythonPackage { name = "pexpect-2.3"; @@ -636,6 +1145,22 @@ rec { }; }; + + prettytable = buildPythonPackage rec { + name = "prettytable-0.5"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/P/PrettyTable/${name}.tar.gz"; + md5 = "13a6930d775395f393afd86948afa4fa"; + }; + + meta = { + description = "Simple Python library for easily displaying tabular data in a visually appealing ASCII table format"; + homepage = http://code.google.com/p/prettytable/; + }; + }; + + psycopg2 = buildPythonPackage rec { name = "psycopg2-2.0.13"; @@ -699,6 +1224,79 @@ rec { }; }); + + pycurl = + let libcurl = pkgs.stdenv.lib.overrideDerivation pkgs.curl + (oldAttrs: { + configureFlags = + (if oldAttrs ? configureFlags then oldAttrs.configureFlags else "" ) + + " --enable-static"; + }); + in + buildPythonPackage (rec { + name = "pycurl-7.19.0"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/p/pycryptopp/${name}.tar.gz"; + sha256 = "0hh6icdbp7svcq0p57zf520ifzhn7jw64x07k99j7h57qpy2sy7b"; + }; + + buildInputs = [ libcurl ]; + + doCheck = false; + + postInstall = '' + find $out -name easy-install.pth | xargs rm -v + find $out -name 'site.py*' | xargs rm -v + ''; + + meta = { + homepage = http://pycurl.sourceforge.net/; + + description = "Python wrapper for libcurl"; + + platforms = stdenv.lib.platforms.linux; + }; + }); + + pylint = buildPythonPackage rec { + name = "pylint-0.23.0"; + + src = fetchurl { + url = "http://ftp.logilab.org/pub/pylint/${name}.tar.gz"; + sha256 = "07091avcc2b374i5f3blszmawjcin8xssjfryz91qbxybb8r7c6d"; + }; + propagatedBuildInputs = [astng]; + }; + + pymacs = pkgs.stdenv.mkDerivation rec { + version = "v0.24-beta2"; + name = "Pymacs-${version}"; + + src = fetchurl { + url = "https://github.com/pinard/Pymacs/tarball/${version}"; + name = "${name}.tar.gz"; + sha256 = "0nzb3wrxwy0cmmj087pszkwgj2v22x0y5m4vxb6axz94zfl02r8j"; + }; + + buildInputs = [ python ]; + + configurePhase = '' + python p4 -C p4config.py *.in Pymacs contrib tests + ''; + + installPhase = '' + python setup.py install --prefix=$out + ''; + + meta = with stdenv.lib; { + description = "Emacs Lisp to Python interface"; + homepage = http://pymacs.progiciels-bpi.ca; + license = licenses.gpl2; + maintainers = [ maintainers.goibhniu ]; + }; + }; + pyopengl = let version = "3.0.0b5"; in @@ -781,6 +1379,54 @@ rec { }; }); + + pysvn = pkgs.stdenv.mkDerivation { + name = "pysvn-1.7.2"; + + src = fetchurl { + url = "http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.2.tar.gz"; + sha256 = "2b2980d200515e754e00a12d99dbce25c1ea90fddf8cba2bfa354c9305c5e455"; + }; + + buildInputs = [ python pkgs.subversion pkgs.apr pkgs.aprutil pkgs.expat pkgs.neon pkgs.openssl ] + ++ (if stdenv.isLinux then [pkgs.e2fsprogs] else []); + + # There seems to be no way to pass that path to configure. + NIX_CFLAGS_COMPILE="-I${pkgs.aprutil}/include/apr-1"; + + configurePhase = '' + cd Source + python setup.py backport + python setup.py configure \ + --apr-inc-dir=${pkgs.apr}/include/apr-1 \ + --apr-lib-dir=${pkgs.apr}/lib \ + --svn-root-dir=${pkgs.subversion} + '' + (if !stdenv.isDarwin then "" else '' + sed -i -e 's|libpython2.7.dylib|lib/libpython2.7.dylib|' Makefile + ''); + + # The regression test suite expects locale support, which our glibc + # doesn't have by default. + doCheck = false; + checkPhase = "make -C ../Tests"; + + installPhase = '' + dest=$(toPythonPath $out)/pysvn + ensureDir $dest + cp pysvn/__init__.py $dest/ + cp pysvn/_pysvn*.so $dest/ + ensureDir $out/share/doc + mv -v ../Docs $out/share/doc/pysvn-1.7.2 + rm -v $out/share/doc/pysvn-1.7.2/generate_cpp_docs_from_html_docs.py + ''; + + meta = { + description = "Python bindings for Subversion"; + homepage = "http://pysvn.tigris.org/"; + }; + }; + + pyutil = buildPythonPackage (rec { name = "pyutil-1.7.9"; @@ -853,94 +1499,88 @@ rec { }; }); - pysvn = pkgs.stdenv.mkDerivation { - name = "pysvn-1.7.2"; + rope = pkgs.stdenv.mkDerivation rec { + version = "0.9.3"; + name = "rope-${version}"; src = fetchurl { - url = "http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.2.tar.gz"; - sha256 = "2b2980d200515e754e00a12d99dbce25c1ea90fddf8cba2bfa354c9305c5e455"; + url = "http://pypi.python.org/packages/source/r/rope/${name}.tar.gz"; + sha256 = "1092rlsfna7rm1jkdanilsmw7rr3hlkgyji02xfd02wfcm8xa2i7"; }; - buildInputs = [ python pkgs.subversion pkgs.apr pkgs.aprutil pkgs.expat pkgs.neon pkgs.openssl ] - ++ (if stdenv.isLinux then [pkgs.e2fsprogs] else []); + buildInputs = [ python ]; - # There seems to be no way to pass that path to configure. - NIX_CFLAGS_COMPILE="-I${pkgs.aprutil}/include/apr-1"; + installPhase = '' + python setup.py install --prefix=$out + ''; - configurePhase = '' - cd Source - python setup.py backport - python setup.py configure \ - --apr-inc-dir=${pkgs.apr}/include/apr-1 \ - --apr-lib-dir=${pkgs.apr}/lib \ - --svn-root-dir=${pkgs.subversion} - '' + (if !stdenv.isDarwin then "" else '' - sed -i -e 's|libpython2.7.dylib|lib/libpython2.7.dylib|' Makefile - ''); + meta = with stdenv.lib; { + description = "python refactoring library"; + homepage = http://rope.sf.net; + maintainers = [ maintainers.goibhniu ]; + license = licenses.gpl2; + }; + }; - # The regression test suite expects locale support, which our glibc - # doesn't have by default. - doCheck = false; - checkPhase = "make -C ../Tests"; + ropemacs = pkgs.stdenv.mkDerivation rec { + version = "0.6"; + name = "ropemacs-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/rope/${name}.tar.gz"; + sha256 = "1afqybmjn7fqkwx8y8kx1kfx181ix73cbq3a0d5n7ryjm7k1r0s4"; + }; + + buildInputs = [ python ]; installPhase = '' - dest=$(toPythonPath $out)/pysvn - ensureDir $dest - cp pysvn/__init__.py $dest/ - cp pysvn/_pysvn*.so $dest/ - ensureDir $out/share/doc - mv -v ../Docs $out/share/doc/pysvn-1.7.2 - rm -v $out/share/doc/pysvn-1.7.2/generate_cpp_docs_from_html_docs.py + python setup.py install --prefix=$out ''; - meta = { - description = "Python bindings for Subversion"; - homepage = "http://pysvn.tigris.org/"; - }; + meta = with stdenv.lib; { + description = "a plugin for performing python refactorings in emacs"; + homepage = http://rope.sf.net/ropemacs.html; + maintainers = [ maintainers.goibhniu ]; + license = licenses.gpl2; + }; }; - magic = buildPythonPackage rec { - name = "magic-0.3.1"; + + routes = buildPythonPackage rec { + name = "routes-1.12.3"; src = fetchurl { - url = "http://pypi.python.org/packages/source/p/python-magic/python-${name}.tar.gz"; - md5 = "397cff81d2502e81fd3830a61ca2ad2c"; + url = http://pypi.python.org/packages/source/R/Routes/Routes-1.12.3.tar.gz; + md5 = "9740ff424ff6b841632c784a38fb2be3"; }; - preConfigure = - '' - # Ensure that the module can find libmagic by hard-coding the - # path to libmagic.so. Maybe there is a nicer way. - substituteInPlace magic.py --replace \ - "ctypes.util.find_library('magic')" \ - "'${pkgs.file}/lib/libmagic.so'" - ''; + propagatedBuildInputs = [ paste webtest ]; meta = { - description = "A Python wrapper around libmagic"; - homepage = https://github.com/ahupp/python-magic; + description = "A Python re-implementation of the Rails routes system for mapping URLs to application actions"; + homepage = http://routes.groovie.org/; }; }; - - MySQL_python = buildPythonPackage { - name = "MySQL-python-1.2.3"; - - doCheck = false; - + + + scripttest = buildPythonPackage rec { + version = "1.1.1"; + name = "scripttest-${version}"; + src = fetchurl { - url = mirror://sourceforge/mysql-python/MySQL-python-1.2.3.tar.gz; - sha256 = "0vkyg9dmj29hzk7fy77f42p7bfj28skyzsjsjry4wqr3z6xnzrkx"; + url = "http://pypi.python.org/packages/source/S/ScriptTest/ScriptTest-${version}.tar.gz"; + md5 = "592ce890764c3f546d35b4d7c40c32ef"; }; - - propagatedBuildInputs = [ pkgs.mysql pkgs.zlib nose ]; - - meta = { - description = "MySQL database binding for Python"; - homepage = http://sourceforge.net/projects/mysql-python; + buildInputs = [ nose ]; + + meta = { + description = "A library for testing interactive command-line applications"; + homepage = http://pypi.python.org/pypi/ScriptTest/; }; }; + setuptoolsDarcs = buildPythonPackage { name = "setuptools-darcs-1.2.9"; @@ -963,11 +1603,11 @@ rec { }; setuptoolsTrial = buildPythonPackage { - name = "setuptools-trial-0.5.9"; + name = "setuptools-trial-0.5.12"; src = fetchurl { - url = "http://pypi.python.org/packages/source/s/setuptools_trial/setuptools_trial-0.5.9.tar.gz"; - sha256 = "4e3b5a183b9cf6ff637777c9852dfe8eaab156289e7a578525d68b1cfb3c9f29"; + url = "http://pypi.python.org/packages/source/s/setuptools_trial/setuptools_trial-0.5.12.tar.gz"; + md5 = "f16f4237c9ee483a0cd13208849d96ad"; }; propagatedBuildInputs = [ twisted ]; @@ -982,11 +1622,11 @@ rec { }; simplejson = buildPythonPackage (rec { - name = "simplejson-2.1.1"; + name = "simplejson-2.1.3"; src = fetchurl { url = "http://pypi.python.org/packages/source/s/simplejson/${name}.tar.gz"; - sha256 = "8c1c833c5b997bf7b75bf9a02a2d2884b8427816228eac0fb84791be44d2f612"; + md5 = "58d9b1d8fa17ea4ce205cea088607e02"; }; meta = { @@ -1006,19 +1646,84 @@ rec { }; }); + + sqlalchemy = buildPythonPackage { + name = "sqlalchemy-0.6.6"; + + src = fetchurl { + url = mirror://sourceforge/sqlalchemy/0.6.6/SQLAlchemy-0.6.6.tar.gz; + sha256 = "0inj9b66pi447cw500mqn7d09dij20ic3k5bnyhj6rpdl2l83a0l"; + }; + + buildInputs = [ nose ]; + + propagatedBuildInputs = [ python.modules.sqlite3 ]; + + meta = { + homepage = http://www.sqlalchemy.org/; + description = "A Python SQL toolkit and Object Relational Mapper"; + }; + }; + + + sqlalchemy_migrate = buildPythonPackage rec { + name = "sqlalchemy-migrate-0.6.1"; + + src = fetchurl { + url = "http://sqlalchemy-migrate.googlecode.com/files/${name}.tar.gz"; + sha1 = "17168b5fa066bd56fd93f26345525377e8a83d8a"; + }; + + buildInputs = [ nose unittest2 scripttest ]; + + propagatedBuildInputs = [ tempita decorator sqlalchemy ]; + + preCheck = + '' + echo sqlite:///__tmp__ > test_db.cfg + ''; + + # Some tests fail with "unexpected keyword argument 'script_path'". + doCheck = false; + + meta = { + homepage = http://code.google.com/p/sqlalchemy-migrate/; + description = "Schema migration tools for SQLAlchemy"; + }; + }; + + + tempita = buildPythonPackage rec { + version = "0.4"; + name = "tempita-${version}"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/T/Tempita/Tempita-${version}.tar.gz"; + md5 = "0abe015a72e748d0c6284679a497426c"; + }; + + buildInputs = [ nose ]; + + meta = { + homepage = http://pythonpaste.org/tempita/; + description = "A very small text templating language"; + }; + }; + + trac = buildPythonPackage { - name = "trac-0.11.5"; + name = "trac-0.12.2"; src = fetchurl { - url = http://ftp.edgewall.com/pub/trac/Trac-0.11.5.tar.gz; - sha256 = "cc3362ecc533abc1755dd78e2d096d1413bc975abc3185318f4821458cd6a8ac"; + url = http://ftp.edgewall.com/pub/trac/Trac-0.12.2.tar.gz; + sha256 = "1ihf5031pc1wpwbxpfzzz2bcpwww795n5y22baglyim1lalivd65"; }; doCheck = false; PYTHON_EGG_CACHE = "`pwd`/.egg-cache"; - propagatedBuildInputs = [ genshi pkgs.setuptools ]; + propagatedBuildInputs = [ genshi pkgs.setuptools python.modules.sqlite3 ]; meta = { description = "Enhanced wiki and issue tracking system for software development projects"; @@ -1027,12 +1732,12 @@ rec { }; }; - twisted = buildPythonPackage { - name = "twisted-10.1.0"; + twisted = buildPythonPackage rec { + name = "twisted-10.2.0"; src = fetchurl { - url = http://tmrc.mit.edu/mirror/twisted/Twisted/10.1/Twisted-10.1.0.tar.bz2; - sha256 = "eda6e0e9e5ef6f6c19ab75bcb094f83a12ee25fe589fbcddf946e8a655c8070b"; + url = http://tmrc.mit.edu/mirror/twisted/Twisted/10.2/Twisted-10.2.0.tar.bz2; + sha256 = "110c30z622jn14yany1sxfaqj5qx20n9rc9zqacxlwma30fdcbjn"; }; propagatedBuildInputs = [ zopeInterface ]; @@ -1060,6 +1765,96 @@ rec { }; }; + + unittest2 = buildPythonPackage rec { + name = "unittest2-0.5.1"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/u/unittest2/${name}.tar.gz"; + md5 = "a0af5cac92bbbfa0c3b0e99571390e0f"; + }; + + meta = { + description = "A backport of the new features added to the unittest testing framework in Python 2.7"; + homepage = http://pypi.python.org/pypi/unittest2; + }; + }; + + + vnc2flv = buildPythonPackage rec { + name = "vnc2flv-20100207"; + namePrefix = ""; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/v/vnc2flv/${name}.tar.gz"; + md5 = "8492e46496e187b49fe5569b5639804e"; + }; + + doCheck = false; + + meta = { + description = "Tool to record VNC sessions to Flash Video"; + homepage = http://www.unixuser.org/~euske/python/vnc2flv/; + }; + }; + + + webob = buildPythonPackage rec { + version = "1.0.6"; + name = "webob-${version}"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/W/WebOb/WebOb-${version}.zip"; + md5 = "8e46dd755f6998d471bfbcb4def897ff"; + }; + + buildInputs = [ pkgs.unzip ]; + + # The test requires "webtest", which is a cyclic dependency. (WTF?) + doCheck = false; + + meta = { + description = "WSGI request and response object"; + homepage = http://pythonpaste.org/webob/; + }; + }; + + + webtest = buildPythonPackage rec { + version = "1.2.3"; + name = "webtest-${version}"; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/W/WebTest/WebTest-${version}.tar.gz"; + md5 = "585f9331467e6d99acaba4051c1c5878"; + }; + + propagatedBuildInputs = [ nose webob dtopt ]; + + meta = { + description = "Helper to test WSGI applications"; + homepage = http://pythonpaste.org/webtest/; + }; + }; + + + wxPython = wxPython28; + + + wxPython26 = import ../development/python-modules/wxPython/2.6.nix { + inherit (pkgs) stdenv fetchurl pkgconfig; + inherit pythonPackages; + wxGTK = pkgs.wxGTK26; + }; + + + wxPython28 = import ../development/python-modules/wxPython/2.8.nix { + inherit (pkgs) stdenv fetchurl pkgconfig; + inherit pythonPackages; + wxGTK = pkgs.wxGTK28; + }; + + zbase32 = buildPythonPackage (rec { name = "zbase32-1.1.2"; @@ -1126,4 +1921,22 @@ rec { license = "ZPL"; }; }; -} + + hgsvn = buildPythonPackage rec { + name = "hgsvn-0.1.8"; + src = fetchurl rec { + name = "hgsvn-0.1.8.tar.gz"; + url = "http://pypi.python.org/packages/source/h/hgsvn/${name}.tar.gz#md5=56209eae48b955754e09185712123428"; + sha256 = "18a7bj1i0m4shkxmdvw1ci5i0isq5vqf0bpwgrhnk305rijvbpch"; + }; + + buildInputs = [ pkgs.setuptools ]; + doCheck = false; + + meta = { + description = "HgSVN"; + homepage = http://pypi.python.org/pypi/hgsvn; + }; + }; + +}; in pythonPackages |