diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1f84bf222200..9121b35dbdc6 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -964,6 +964,37 @@ let }; }; + bleach = buildPythonPackage rec { + version = "v1.4"; + name = "bleach-${version}"; + + src = pkgs.fetchurl { + url = "http://github.com/jsocol/bleach/archive/${version}.tar.gz"; + sha256 = "19v0zhvchz89w179rwkc4ah3cj2gbcng9alwa2yla89691g8b0b0"; + }; + + propagatedBuildInputs = with self; [ six html5lib ]; + + meta = with stdenv.lib; { + description = "An easy, HTML5, whitelisting HTML sanitizer."; + longDescription = '' + Bleach is an HTML sanitizing library that escapes or strips markup and + attributes based on a white list. Bleach can also linkify text safely, + applying filters that Django's urlize filter cannot, and optionally + setting rel attributes, even on links already in the text. + + Bleach is intended for sanitizing text from untrusted sources. If you + find yourself jumping through hoops to allow your site administrators + to do lots of things, you're probably outside the use cases. Either + trust those users, or don't. + ''; + homepage = https://github.com/jsocol/bleach; + downloadPage = https://github.com/jsocol/bleach/releases; + license = licenses.asl20; + maintainers = with maintainers; [ prikhi ]; + platforms = platforms.linux; + }; + }; blinker = buildPythonPackage rec { name = "blinker-${version}"; @@ -4054,6 +4085,35 @@ let }; }; + filebrowser_safe = buildPythonPackage rec { + version = "0.3.6"; + name = "filebrowser_safe-${version}"; + + src = pkgs.fetchurl { + url = "http://pypi.python.org/packages/source/f/filebrowser_safe/${name}.tar.gz"; + md5 = "12a1ad3a1ed6a9377e758c4fa7fee570"; + }; + + meta = with stdenv.lib; { + description = "A snapshot of django-filebrowser for the Mezzanine CMS"; + longDescription = '' + filebrowser_safe was created to provide a snapshot of the FileBrowser + asset manager for Django, to be referenced as a dependency for the + Mezzanine CMS for Django. + + At the time of filebrowser_safe's creation, FileBrowser was incorrectly + packaged on PyPI, and had also dropped compatibility with Django 1.1 - + filebrowser_safe was therefore created to address these specific + issues. + ''; + homepage = https://github.com/stephenmcd/filebrowser-safe; + downloadPage = https://pypi.python.org/pypi/filebrowser_safe/; + license = licenses.free; + maintainers = with maintainers; [ prikhi ]; + platforms = platforms.linux; + }; + }; + flake8 = buildPythonPackage (rec { name = "flake8-2.1.0"; @@ -4142,6 +4202,34 @@ let }; }; + grappelli_safe = buildPythonPackage rec { + version = "0.3.13"; + name = "grappelli_safe-${version}"; + + src = pkgs.fetchurl { + url = "http://pypi.python.org/packages/source/g/grappelli_safe/${name}.tar.gz"; + md5 = "5c8c681a0b1df94ecd6dc0b3a8b80892"; + }; + + meta = with stdenv.lib; { + description = "A snapshot of django-grappelli for the Mezzanine CMS"; + longDescription = '' + grappelli_safe was created to provide a snapshot of the Grappelli admin + skin for Django, to be referenced as a dependency for the Mezzanine CMS + for Django. + + At the time of grappelli_safe's creation, Grappelli was incorrectly + packaged on PyPI, and had also dropped compatibility with Django 1.1 - + grappelli_safe was therefore created to address these specific issues. + ''; + homepage = https://github.com/stephenmcd/grappelli-safe; + downloadPage = http://pypi.python.org/pypi/grappelli_safe/; + license = licenses.free; + maintainers = with maintainers; [ prikhi ]; + platforms = platforms.linux; + }; + }; + python_tvrage = buildPythonPackage (rec { version = "0.4.1"; name = "tvrage-${version}"; @@ -4293,6 +4381,39 @@ let }; }); + future = buildPythonPackage rec { + version = "v0.14.3"; + name = "future-${version}"; + + src = pkgs.fetchurl { + url = "http://github.com/PythonCharmers/python-future/archive/${version}.tar.gz"; + sha256 = "0hgp9kq7h4ipw8ax5xvvkyh3bkqw361d3rndvb9xix01h9j9mi3p"; + }; + + propagatedBuildInputs = with self; optionals isPy26 [ importlib argparse ]; + doCheck = false; + + meta = with stdenv.lib; { + description = "Clean single-source support for Python 3 and 2"; + longDescription = '' + python-future is the missing compatibility layer between Python 2 and + Python 3. It allows you to use a single, clean Python 3.x-compatible + codebase to support both Python 2 and Python 3 with minimal overhead. + + It provides future and past packages with backports and forward ports + of features from Python 3 and 2. It also comes with futurize and + pasteurize, customized 2to3-based scripts that helps you to convert + either Py2 or Py3 code easily to support both Python 2 and 3 in a + single clean Py3-style codebase, module by module. + ''; + homepage = https://python-future.org; + downloadPage = https://github.com/PythonCharmers/python-future/releases; + license = licenses.mit; + maintainers = with maintainers; [ prikhi ]; + platforms = platforms.linux; + }; + }; + futures = buildPythonPackage rec { name = "futures-2.1.6"; @@ -4709,18 +4830,32 @@ let html5lib = buildPythonPackage (rec { - name = "html5lib-0.95"; + version = "0.999"; + name = "html5lib-${version}"; src = pkgs.fetchurl { - url = "http://pypi.python.org/packages/source/h/html5lib/${name}.tar.gz"; - md5 = "fe607f9917d81763e842f818f23464ee"; + url = "http://github.com/html5lib/html5lib-python/archive/${version}.tar.gz"; + sha256 = "1kxl36p0csssaf37zbbc9p4h8l1s7yb1qnfv3d4nixplvrxqkybp"; }; - meta = { - homepage = http://code.google.com/p/html5lib/; + buildInputs = with self; [ nose flake8 ]; + propagatedBuildInputs = with self; [ + six + ] ++ optionals isPy26 [ ordereddict ]; + + checkPhase = "nosetests"; + + meta = with stdenv.lib; { + homepage = https://github.com/html5lib/html5lib-python; + downloadPage = https://github.com/html5lib/html5lib-python/releases; description = "HTML parser based on WHAT-WG HTML5 specification"; - license = stdenv.lib.licenses.mit; - maintainers = [ stdenv.lib.maintainers.iElectric ]; + longDescription = '' + html5lib is a pure-python library for parsing HTML. It is designed to + conform to the WHATWG HTML specification, as is implemented by all + major web browsers. + ''; + license = licenses.mit; + maintainers = with maintainers; [ iElectric prikhi ]; }; }); @@ -5461,6 +5596,58 @@ let }; }; + mezzanine = buildPythonPackage rec { + version = "3.1.10"; + name = "mezzanine-${version}"; + + src = pkgs.fetchurl { + url = "https://github.com/stephenmcd/mezzanine/archive/${version}.tar.gz"; + sha256 = "1cd7d3dji8q4mvcnf9asxn8j109pd5g5d5shr6xvn0iwr35qprgi"; + }; + + buildInputs = with self; [ pyflakes pep8 ]; + propagatedBuildInputs = with self; [ + django_1_6 filebrowser_safe grappelli_safe bleach tzlocal beautifulsoup4 + requests2 requests_oauthlib future pillow modules.sqlite3 + ]; + + # Tests Fail Due to Syntax Warning, Fixed for v3.1.11+ + doCheck = false; + # sed calls will be unecessary in v3.1.11+ + preConfigure = '' + sed -i 's/future == 0.9.0/future>=0.9.0/' setup.py + sed -i 's/tzlocal == 1.0/tzlocal>=1.0/' setup.py + sed -i 's/pep8==1.4.1/pep8>=1.4.1/' setup.py + sed -i 's/pyflakes==0.6.1/pyflakes>=0.6.1/' setup.py + export LC_ALL="en_US.UTF-8" + ''; + + meta = with stdenv.lib; { + description = '' + A content management platform built using the Django framework. + ''; + longDescription = '' + Mezzanine is a powerful, consistent, and flexible content management + platform. Built using the Django framework, Mezzanine provides a + simple yet highly extensible architecture that encourages diving in and + hacking on the code. Mezzanine is BSD licensed and supported by a + diverse and active community. + + In some ways, Mezzanine resembles tools such as Wordpress that provide + an intuitive interface for managing pages, blog posts, form data, store + products, and other types of content. But Mezzanine is also different. + Unlike many other platforms that make extensive use of modules or + reusable applications, Mezzanine provides most of its functionality by + default. This approach yields a more integrated and efficient platform. + ''; + homepage = http://mezzanine.jupo.org/; + downloadPage = https://github.com/stephenmcd/mezzanine/releases; + license = licenses.free; + maintainers = with maintainers; [ prikhi ]; + platforms = platforms.linux; + }; + }; + minimock = buildPythonPackage rec { version = "1.2.8"; name = "minimock-${version}"; @@ -6293,20 +6480,23 @@ let oauthlib = buildPythonPackage rec { - name = "oauthlib-0.5.0"; + version = "0.7.2"; + name = "oauthlib-${version}"; src = pkgs.fetchurl { - url = "http://pypi.python.org/packages/source/o/oauthlib/${name}.tar.gz"; - md5 = "d12c507de33403ebdf290fbffdb98213"; + url = "https://github.com/idan/oauthlib/archive/${version}.tar.gz"; + sha256 = "08b7swyswhxh90k9mp54rk1qks2l2s2pdcjap6x118y27p7dhp4h"; }; buildInputs = with self; [ mock nose unittest2 ]; - propagatedBuildInputs = with self; [ pycrypto ]; + propagatedBuildInputs = with self; [ pycrypto blinker pyjwt ]; meta = { homepage = https://github.com/idan/oauthlib; + downloadPage = https://github.com/idan/oauthlib/releases; description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic"; + maintainers = with maintainers; [ prikhi ]; }; }; @@ -6599,11 +6789,11 @@ let pelican = buildPythonPackage rec { name = "pelican-${version}"; - version = "3.4.0"; + version = "3.5.0"; src = pkgs.fetchurl { url = "https://pypi.python.org/packages/source/p/pelican/${name}.tar.gz"; - md5 = "8e57bdd075503903125b14621b1e533d"; + sha256 = "0dl8i26sa20iijlg3z9gxn3p6f1d9v44b9742929xfaqwj4amvdp"; }; preConfigure = '' @@ -6615,13 +6805,16 @@ let #buildInputs = [nose mock]; doCheck = false; - propagatedBuildInputs = with self; [jinja2 pygments docutils pytz unidecode six dateutil feedgenerator blinker pillow beautifulsoup4]; + propagatedBuildInputs = with self; [ + jinja2 pygments docutils pytz unidecode six dateutil feedgenerator + blinker pillow beautifulsoup4 + ]; meta = { homepage = http://getpelican.com/; description = "A tool to generate a static blog from reStructuredText or Markdown input files"; license = licenses.agpl3; - maintainers = [ stdenv.lib.maintainers.offline ]; + maintainers = with stdenv.lib.maintainers; [ offline prikhi ]; }; }; @@ -6788,7 +6981,10 @@ let md5 = "56b6614499aacb7d6b5983c4914daea7"; }; - buildInputs = with self; [ pkgs.freetype pkgs.libjpeg pkgs.zlib pkgs.libtiff pkgs.libwebp pkgs.tcl ]; + buildInputs = with self; [ + pkgs.freetype pkgs.libjpeg pkgs.zlib pkgs.libtiff pkgs.libwebp pkgs.tcl ] + ++ optionals (isPy26 || isPyPy) [ pkgs.lcms2 ] + ++ optionals (isPyPy) [ pkgs.tk pkgs.xlibs.libX11 ]; # NOTE: we use LCMS_ROOT as WEBP root since there is not other setting for webp. preConfigure = '' @@ -6815,7 +7011,7 @@ let license = "http://www.pythonware.com/products/pil/license.htm"; - maintainers = [ stdenv.lib.maintainers.goibhniu ]; + maintainers = with stdenv.lib.maintainers; [ goibhniu prikhi ]; }; }; @@ -7507,6 +7703,27 @@ let }; }; + pyjwt = buildPythonPackage rec { + version = "0.3.2"; + name = "pyjwt-${version}"; + + src = pkgs.fetchurl { + url = "http://github.com/progrium/pyjwt/archive/${version}.tar.gz"; + sha256 = "118rzhpyvx1h4hslms4fdizyv6mnyd4g34fv089lvs116pj08k9c"; + }; + + propagatedBuildInputs = with self; [ pycrypto ecdsa ]; + + meta = with stdenv.lib; { + description = "JSON Web Token implementation in Python"; + longDescription = "A Python implementation of JSON Web Token draft 01."; + homepage = https://github.com/progrium/pyjwt; + downloadPage = https://github.com/progrium/pyjwt/releases; + license = licenses.mit; + maintainers = with maintainers; [ prikhi ]; + platforms = platforms.linux; + }; + }; pykickstart = buildPythonPackage rec { name = "pykickstart-${version}"; @@ -8314,18 +8531,21 @@ let requests_oauthlib = buildPythonPackage rec { - name = "requests-oauthlib-0.3.2"; + version = "v0.4.1"; + name = "requests-oauthlib-${version}"; src = pkgs.fetchurl { - url = "http://pypi.python.org/packages/source/r/requests-oauthlib/${name}.tar.gz"; - md5 = "35b3b750493c231145c39db0216813e7"; + url = "http://github.com/requests/requests-oauthlib/archive/${version}.tar.gz"; + sha256 = "0vx252nzq5h9m9brwnw2ph8aj526y26jr2dqcafzzcdx6z4l8vj4"; }; - propagatedBuildInputs = with self; [ oauthlib requests ]; + doCheck = false; # Internet tests fail when building in chroot + propagatedBuildInputs = with self; [ oauthlib requests2 ]; meta = { description = "OAuthlib authentication support for Requests"; homepage = https://github.com/requests/requests-oauthlib; + maintainers = with maintainers; [ prikhi ]; }; };